New layout preferences to maximize editor control space

see issue 759
This commit is contained in:
Oliver Duis
2011-06-10 20:38:42 +02:00
parent bc0a8d56f4
commit 5182f3e513
6 changed files with 38 additions and 6 deletions

View File

@@ -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

View File

@@ -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);
}

View File

@@ -136,6 +136,8 @@ void Options::setDefaults () {
tabbedUI = true; // was false;
multiDisplayMode = 0;
tunnelMetaData = false;
histogramPosition = 2;
showProfileSelector = true;
cutOverlayBrush = std::vector<double> (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<int> crvopen = crvOpen;
//keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen);

View File

@@ -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 ();

View File

@@ -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 );

View File

@@ -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;