diff --git a/rtdata/languages/default b/rtdata/languages/default index 79d16ca57..8f708248f 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -578,6 +578,7 @@ PREFERENCES_FORRAW;For RAW files PREFERENCES_GIMPPATH;GIMP installation directory PREFERENCES_GTKTHEME;GTK default PREFERENCES_HINT;Hint +PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left pane PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights PREFERENCES_ICCDIR;Directory of ICC profiles PREFERENCES_IMPROCPARAMS;Default image processing parameters @@ -620,6 +621,7 @@ PREFERENCES_SET;SET PREFERENCES_SHOWBASICEXIF;Show basic Exif info PREFERENCES_SHOWDATETIME;Show date and time PREFERENCES_SHOWONLYRAW;Show only RAW files +PREFERENCES_SHOWPROFILESELECTOR;Show profile selector PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows PREFERENCES_SINGLETAB;Single tab mode PREFERENCES_SINGLETABVERTAB;Single tab mode, vertical tabs @@ -638,7 +640,7 @@ PREFERENCES_TAB_SOUND;Sounds PREFERENCES_THUMBSIZE;Thumbnail Size PREFERENCES_TUNNELMETADATA;Copy IPTC/XMP unchanged to output file (when tagging with other program) PREFERENCES_USESYSTEMTHEME; Use System Theme -PREFERENCES_WORKFLOW;Workflow +PREFERENCES_WORKFLOW;Layout PROFILEPANEL_FILEDLGFILTERANY;Any files PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles PROFILEPANEL_LABEL;Postprocessing Profiles diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 7eda254e7..2b91f88ca 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -47,9 +47,11 @@ EditorPanel::EditorPanel (FilePanel* filePanel) : beforePreviewHandler(NULL), be leftbox->set_border_width (2); leftbox->set_size_request(100,250); + if (options.histogramPosition>0) { histogramPanel = Gtk::manage (new HistogramPanel ()); histogramPanel->set_size_request (-1, 150); -// leftbox->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 4); + if (options.histogramPosition==1) leftbox->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 4); + } else histogramPanel = NULL; profilep = Gtk::manage (new ProfilePanel ()); Gtk::Frame* ppframe = Gtk::manage (new Gtk::Frame ()); @@ -155,8 +157,9 @@ EditorPanel::EditorPanel (FilePanel* filePanel) : beforePreviewHandler(NULL), be vboxright->set_size_request(100,250); vboxright->set_border_width (2); - vboxright->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); - vboxright->pack_start (*ppframe, Gtk::PACK_SHRINK, 2); + + if (options.histogramPosition==2) vboxright->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); + if (options.showProfileSelector) vboxright->pack_start (*ppframe, Gtk::PACK_SHRINK, 2); // main notebook vboxright->pack_start (*tpc->toolPanelNotebook); @@ -1272,7 +1275,7 @@ void EditorPanel::beforeAfterToggled () { void EditorPanel::histogramChanged (LUTu & histRed, LUTu & histGreen, LUTu & histBlue, LUTu & histLuma, LUTu & histToneCurve, LUTu & histLCurve, LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw) { - histogramPanel->histogramChanged (histRed, histGreen, histBlue, histLuma, histRedRaw, histGreenRaw, histBlueRaw); + if (histogramPanel) histogramPanel->histogramChanged (histRed, histGreen, histBlue, histLuma, histRedRaw, histGreenRaw, histBlueRaw); tpc->updateCurveBackgroundHistogram (histToneCurve, histLCurve); } diff --git a/rtgui/options.cc b/rtgui/options.cc index e11b14e50..6f7104fd8 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -136,6 +136,8 @@ void Options::setDefaults () { tabbedUI = true; // was false; multiDisplayMode = 0; tunnelMetaData = false; + histogramPosition = 2; + showProfileSelector = true; cutOverlayBrush = std::vector (4); cutOverlayBrush[3] = 0.667; @@ -314,6 +316,8 @@ if (keyFile.has_group ("GUI")) { if (keyFile.has_key ("GUI", "MultiDisplayMode")) multiDisplayMode = keyFile.get_integer ("GUI", "MultiDisplayMode"); //if (keyFile.has_key ("GUI", "CurvePanelsExpanded")) crvOpen = keyFile.get_integer_list ("GUI", "CurvePanelsExpanded"); if (keyFile.has_key ("GUI", "CutOverlayBrush")) cutOverlayBrush = keyFile.get_double_list ("GUI", "CutOverlayBrush"); + if (keyFile.has_key ("GUI", "HistogramPosition")) histogramPosition = keyFile.get_integer ("GUI", "HistogramPosition"); + if (keyFile.has_key ("GUI", "ShowProfileSelector")) showProfileSelector = keyFile.get_boolean ("GUI", "ShowProfileSelector"); } @@ -463,6 +467,8 @@ int Options::saveToFile (Glib::ustring fname) { keyFile.set_integer_list ("GUI", "ToolPanelsExpanded", tpopen); keyFile.set_integer ("GUI", "MultiDisplayMode", multiDisplayMode); keyFile.set_double_list ("GUI", "CutOverlayBrush", cutOverlayBrush); + keyFile.set_integer ("GUI", "HistogramPosition", histogramPosition); + keyFile.set_boolean ("GUI", "ShowProfileSelector", showProfileSelector); //Glib::ArrayHandle crvopen = crvOpen; //keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen); diff --git a/rtgui/options.h b/rtgui/options.h index db604bd71..15a16a6c9 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -144,6 +144,8 @@ class Options { Glib::ustring sndLngEditProcDone; double sndLngEditProcDoneSecs; // Minimum processing time seconds till the sound is played bool tunnelMetaData; // Pass through IPTC and XMP unchanged + int histogramPosition; // 0=disabled, 1=left pane, 2=right pane + bool showProfileSelector; Options (); diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 7856505d0..14f8955fc 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -392,7 +392,17 @@ Gtk::Widget* Preferences::getGeneralPanel () { Gtk::Label* lNextStart = Gtk::manage( new Gtk::Label (Glib::ustring(" (") + M("PREFERENCES_APPLNEXTSTARTUP") + ")") ); hbworkflow->pack_end (*lNextStart, Gtk::PACK_SHRINK, 4); - fworklflow->add (*hbworkflow); + Gtk::VBox* vbworkflow = Gtk::manage( new Gtk::VBox () ); + vbworkflow->pack_start (*hbworkflow, Gtk::PACK_SHRINK, 4); + + Gtk::HBox* hbworkflow2 = Gtk::manage( new Gtk::HBox () ); + ckbHistogramPositionLeft = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_HISTOGRAMPOSITIONLEFT")) ); + hbworkflow2->pack_start (*ckbHistogramPositionLeft, Gtk::PACK_SHRINK, 4); + ckbShowProfileSelector = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_SHOWPROFILESELECTOR")) ); + hbworkflow2->pack_start (*ckbShowProfileSelector, Gtk::PACK_SHRINK, 4); + vbworkflow->pack_start (*hbworkflow2, Gtk::PACK_SHRINK, 4); + + fworklflow->add (*vbworkflow); mvbsd->pack_start (*fworklflow, Gtk::PACK_SHRINK, 4); Gtk::Frame* flang = Gtk::manage( new Gtk::Frame (M("PREFERENCES_DEFAULTLANG")) ); @@ -930,6 +940,8 @@ void Preferences::storePreferences () { moptions.multiDisplayMode = editorMode==3 ? 1:0; moptions.mainNBVertical = editorMode==1; + moptions.histogramPosition = ckbHistogramPositionLeft->get_active() ? 1 : 2; + moptions.showProfileSelector = ckbShowProfileSelector->get_active(); moptions.overwriteOutputFile = chOverwriteOutputFile->get_active (); // Sounds @@ -1032,6 +1044,10 @@ void Preferences::fillPreferences () { else editorLayout->set_active(moptions.multiDisplayMode ? 3 : 2); + ckbHistogramPositionLeft->set_active(moptions.histogramPosition==1); + ckbShowProfileSelector->set_active(moptions.showProfileSelector); + + //darkFrameDir->set_filename( moptions.rtSettings.darkFramesPath ); //updateDFinfos(); darkFrameDir->set_current_folder( moptions.rtSettings.darkFramesPath ); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 6c27d9e07..41054fd34 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -120,6 +120,9 @@ class Preferences : public Gtk::Dialog { Gtk::Entry* txtCustProfBuilderPath; + Gtk::CheckButton* ckbHistogramPositionLeft; + Gtk::CheckButton* ckbShowProfileSelector; + Options moptions; sigc::connection tconn, sconn, fconn, usethcon, addc, setc, dfconn, ffconn, autoMonProfileConn;