Added editor layout with vertical tabs to save space; see issue #381
This commit is contained in:
@@ -321,6 +321,7 @@ MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E
|
|||||||
MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
|
MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
|
||||||
MAIN_FRAME_BATCHQUEUE;Batch Queue
|
MAIN_FRAME_BATCHQUEUE;Batch Queue
|
||||||
MAIN_FRAME_FILEBROWSER;File Browser
|
MAIN_FRAME_FILEBROWSER;File Browser
|
||||||
|
MAIN_FRAME_EDITOR;Editor
|
||||||
MAIN_FRAME_PLACES;Places
|
MAIN_FRAME_PLACES;Places
|
||||||
MAIN_FRAME_PLACES_ADD;Add
|
MAIN_FRAME_PLACES_ADD;Add
|
||||||
MAIN_FRAME_PLACES_DEL;Del
|
MAIN_FRAME_PLACES_DEL;Del
|
||||||
@@ -502,6 +503,7 @@ PREFERENCES_SHOWDATETIME;Show date and time
|
|||||||
PREFERENCES_SHOWONLYRAW;Show only RAW files
|
PREFERENCES_SHOWONLYRAW;Show only RAW files
|
||||||
PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
|
PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
|
||||||
PREFERENCES_SINGLETAB;Single tab mode
|
PREFERENCES_SINGLETAB;Single tab mode
|
||||||
|
PREFERENCES_SINGLETABVERTAB;Single tab mode, vertical tabs
|
||||||
PREFERENCES_STARTUPIMDIR;Image directory at startup
|
PREFERENCES_STARTUPIMDIR;Image directory at startup
|
||||||
PREFERENCES_TAB_BROWSER;File Browser
|
PREFERENCES_TAB_BROWSER;File Browser
|
||||||
PREFERENCES_TAB_COLORMGR;Color Management
|
PREFERENCES_TAB_COLORMGR;Color Management
|
||||||
|
@@ -167,20 +167,42 @@ void BatchQueuePanel::arrangementButtonPressed () {
|
|||||||
void BatchQueuePanel::updateTab (int qsize)
|
void BatchQueuePanel::updateTab (int qsize)
|
||||||
{
|
{
|
||||||
Gtk::Notebook *nb =(Gtk::Notebook *)(this->get_parent());
|
Gtk::Notebook *nb =(Gtk::Notebook *)(this->get_parent());
|
||||||
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
|
|
||||||
|
if (options.mainNBVertical) {
|
||||||
|
Gtk::VBox* vbb = Gtk::manage (new Gtk::VBox ());
|
||||||
|
Gtk::Label* l;
|
||||||
|
|
||||||
if(!qsize ){
|
if(!qsize ){
|
||||||
|
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
|
||||||
|
l=new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE"));
|
||||||
|
} else if( start->get_active () ){
|
||||||
|
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
|
||||||
|
l=new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]");
|
||||||
|
} else {
|
||||||
|
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
|
||||||
|
l=new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" );
|
||||||
|
}
|
||||||
|
l->set_angle (90);
|
||||||
|
vbb->pack_start (*l);
|
||||||
|
vbb->set_spacing (2);
|
||||||
|
vbb->show_all ();
|
||||||
|
nb->set_tab_label(*this,*vbb);
|
||||||
|
} else {
|
||||||
|
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
|
||||||
|
if (!qsize ) {
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
|
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )));
|
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )));
|
||||||
}else if( start->get_active () ){
|
} else if ( start->get_active () ){
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
|
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
|
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
|
||||||
}else{
|
} else {
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
|
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
|
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
|
||||||
}
|
}
|
||||||
hbb->set_spacing (2);
|
hbb->set_spacing (2);
|
||||||
hbb->show_all ();
|
hbb->show_all ();
|
||||||
nb->set_tab_label(*this,*hbb);
|
nb->set_tab_label(*this,*hbb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BatchQueuePanel::queueSizeChanged (int qsize)
|
void BatchQueuePanel::queueSizeChanged (int qsize)
|
||||||
|
@@ -268,6 +268,7 @@ if (keyFile.has_group ("GUI")) {
|
|||||||
if (keyFile.has_key ("GUI", "ShowHistory")) showHistory = keyFile.get_boolean ("GUI", "ShowHistory");
|
if (keyFile.has_key ("GUI", "ShowHistory")) showHistory = keyFile.get_boolean ("GUI", "ShowHistory");
|
||||||
if (keyFile.has_key ("GUI", "ShowFilePanelState")) showFilePanelState= keyFile.get_integer ("GUI", "ShowFilePanelState");
|
if (keyFile.has_key ("GUI", "ShowFilePanelState")) showFilePanelState= keyFile.get_integer ("GUI", "ShowFilePanelState");
|
||||||
if (keyFile.has_key ("GUI", "ShowInfo")) showInfo = keyFile.get_boolean ("GUI", "ShowInfo");
|
if (keyFile.has_key ("GUI", "ShowInfo")) showInfo = keyFile.get_boolean ("GUI", "ShowInfo");
|
||||||
|
if (keyFile.has_key ("GUI", "MainNBVertical")) mainNBVertical = keyFile.get_boolean ("GUI", "MainNBVertical");
|
||||||
if (keyFile.has_key ("GUI", "ShowClippedHighlights"))showClippedHighlights = keyFile.get_boolean ("GUI", "ShowClippedHighlights");
|
if (keyFile.has_key ("GUI", "ShowClippedHighlights"))showClippedHighlights = keyFile.get_boolean ("GUI", "ShowClippedHighlights");
|
||||||
if (keyFile.has_key ("GUI", "ShowClippedShadows")) showClippedShadows= keyFile.get_boolean ("GUI", "ShowClippedShadows");
|
if (keyFile.has_key ("GUI", "ShowClippedShadows")) showClippedShadows= keyFile.get_boolean ("GUI", "ShowClippedShadows");
|
||||||
if (keyFile.has_key ("GUI", "FrameColor")) bgcolor = keyFile.get_integer ("GUI", "FrameColor");
|
if (keyFile.has_key ("GUI", "FrameColor")) bgcolor = keyFile.get_integer ("GUI", "FrameColor");
|
||||||
@@ -400,6 +401,7 @@ int Options::saveToFile (Glib::ustring fname) {
|
|||||||
keyFile.set_boolean ("GUI", "ShowHistory", showHistory);
|
keyFile.set_boolean ("GUI", "ShowHistory", showHistory);
|
||||||
keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState);
|
keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState);
|
||||||
keyFile.set_boolean ("GUI", "ShowInfo", showInfo);
|
keyFile.set_boolean ("GUI", "ShowInfo", showInfo);
|
||||||
|
keyFile.set_boolean ("GUI", "MainNBVertical", mainNBVertical);
|
||||||
keyFile.set_boolean ("GUI", "ShowClippedHighlights", showClippedHighlights);
|
keyFile.set_boolean ("GUI", "ShowClippedHighlights", showClippedHighlights);
|
||||||
keyFile.set_boolean ("GUI", "ShowClippedShadows", showClippedShadows);
|
keyFile.set_boolean ("GUI", "ShowClippedShadows", showClippedShadows);
|
||||||
keyFile.set_integer ("GUI", "FrameColor", bgcolor);
|
keyFile.set_integer ("GUI", "FrameColor", bgcolor);
|
||||||
|
@@ -88,6 +88,7 @@ class Options {
|
|||||||
bool showHistory;
|
bool showHistory;
|
||||||
int showFilePanelState; // 0: normal, 1: maximized, 2: normal, 3: hidden
|
int showFilePanelState; // 0: normal, 1: maximized, 2: normal, 3: hidden
|
||||||
bool showInfo;
|
bool showInfo;
|
||||||
|
bool mainNBVertical; // main notebook vertical tabs?
|
||||||
int cropDPI;
|
int cropDPI;
|
||||||
bool showClippedHighlights;
|
bool showClippedHighlights;
|
||||||
bool showClippedShadows;
|
bool showClippedShadows;
|
||||||
|
@@ -329,12 +329,16 @@ Gtk::Widget* Preferences::getGeneralPanel () {
|
|||||||
editorLayout = new Gtk::ComboBoxText ();
|
editorLayout = new Gtk::ComboBoxText ();
|
||||||
|
|
||||||
editorLayout->append_text (M("PREFERENCES_SINGLETAB"));
|
editorLayout->append_text (M("PREFERENCES_SINGLETAB"));
|
||||||
|
editorLayout->append_text (M("PREFERENCES_SINGLETABVERTAB"));
|
||||||
editorLayout->append_text (M("PREFERENCES_MULTITAB"));
|
editorLayout->append_text (M("PREFERENCES_MULTITAB"));
|
||||||
editorLayout->append_text (M("PREFERENCES_MULTITABDUALMON"));
|
editorLayout->append_text (M("PREFERENCES_MULTITABDUALMON"));
|
||||||
editorLayout->set_active (1);
|
editorLayout->set_active (2);
|
||||||
|
|
||||||
hbworkflow->pack_start (*flayoutlab, Gtk::PACK_SHRINK, 4);
|
hbworkflow->pack_start (*flayoutlab, Gtk::PACK_SHRINK, 4);
|
||||||
hbworkflow->pack_start (*editorLayout);
|
hbworkflow->pack_start (*editorLayout);
|
||||||
|
Gtk::Label* lNextStart = new Gtk::Label (Glib::ustring(" (") + M("PREFERENCES_APPLNEXTSTARTUP") + ")");
|
||||||
|
hbworkflow->pack_end (*lNextStart, Gtk::PACK_SHRINK, 4);
|
||||||
|
|
||||||
fworklflow->add (*hbworkflow);
|
fworklflow->add (*hbworkflow);
|
||||||
mvbsd->pack_start (*fworklflow, Gtk::PACK_SHRINK, 4);
|
mvbsd->pack_start (*fworklflow, Gtk::PACK_SHRINK, 4);
|
||||||
|
|
||||||
@@ -352,7 +356,7 @@ Gtk::Widget* Preferences::getGeneralPanel () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Gtk::Label* langw = new Gtk::Label (Glib::ustring("(") + M("PREFERENCES_APPLNEXTSTARTUP") + ")");
|
Gtk::Label* langw = new Gtk::Label (Glib::ustring(" (") + M("PREFERENCES_APPLNEXTSTARTUP") + ")");
|
||||||
hblang->pack_start (*langlab, Gtk::PACK_SHRINK, 4);
|
hblang->pack_start (*langlab, Gtk::PACK_SHRINK, 4);
|
||||||
hblang->pack_start (*languages);
|
hblang->pack_start (*languages);
|
||||||
hblang->pack_end (*langw, Gtk::PACK_SHRINK, 4);
|
hblang->pack_end (*langw, Gtk::PACK_SHRINK, 4);
|
||||||
@@ -777,8 +781,9 @@ void Preferences::storePreferences () {
|
|||||||
moptions.baBehav[adjs->get_value (behavColumns.addsetid)] = adjs->get_value (behavColumns.badd);
|
moptions.baBehav[adjs->get_value (behavColumns.addsetid)] = adjs->get_value (behavColumns.badd);
|
||||||
|
|
||||||
int editorMode=editorLayout->get_active_row_number();
|
int editorMode=editorLayout->get_active_row_number();
|
||||||
moptions.tabbedUI = (editorMode>0);
|
moptions.tabbedUI = (editorMode>1);
|
||||||
moptions.multiDisplayMode = editorMode==2 ? 1:0;
|
moptions.multiDisplayMode = editorMode==3 ? 1:0;
|
||||||
|
moptions.mainNBVertical = editorMode==1;
|
||||||
|
|
||||||
moptions.overwriteOutputFile = chOverwriteOutputFile->get_active ();
|
moptions.overwriteOutputFile = chOverwriteOutputFile->get_active ();
|
||||||
}
|
}
|
||||||
@@ -861,9 +866,9 @@ void Preferences::fillPreferences () {
|
|||||||
loadParamsPreference->set_active (moptions.paramsLoadLocation);
|
loadParamsPreference->set_active (moptions.paramsLoadLocation);
|
||||||
|
|
||||||
if (!moptions.tabbedUI)
|
if (!moptions.tabbedUI)
|
||||||
editorLayout->set_active(0);
|
editorLayout->set_active(moptions.mainNBVertical ? 1 : 0);
|
||||||
else
|
else
|
||||||
editorLayout->set_active(moptions.multiDisplayMode ? 2 : 1);
|
editorLayout->set_active(moptions.multiDisplayMode ? 3 : 2);
|
||||||
|
|
||||||
darkFrameDir->set_filename( moptions.rtSettings.darkFramesPath );
|
darkFrameDir->set_filename( moptions.rtSettings.darkFramesPath );
|
||||||
updateDFinfos();
|
updateDFinfos();
|
||||||
|
@@ -55,34 +55,56 @@ RTWindow::RTWindow () {
|
|||||||
fpanel->setParent (this);
|
fpanel->setParent (this);
|
||||||
|
|
||||||
// decorate tab
|
// decorate tab
|
||||||
|
if (options.mainNBVertical) {
|
||||||
|
mainNB->set_tab_pos (Gtk::POS_LEFT);
|
||||||
|
|
||||||
|
Gtk::VBox* vbf = Gtk::manage (new Gtk::VBox ());
|
||||||
|
vbf->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU)));
|
||||||
|
Gtk::Label* l=new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_FILEBROWSER"));
|
||||||
|
l->set_angle (90);
|
||||||
|
vbf->pack_start (*l);
|
||||||
|
vbf->set_spacing (2);
|
||||||
|
vbf->show_all ();
|
||||||
|
mainNB->append_page (*fpanel, *vbf);
|
||||||
|
} else {
|
||||||
Gtk::HBox* hbf = Gtk::manage (new Gtk::HBox ());
|
Gtk::HBox* hbf = Gtk::manage (new Gtk::HBox ());
|
||||||
hbf->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU)));
|
hbf->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU)));
|
||||||
hbf->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER"))));
|
hbf->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER"))));
|
||||||
hbf->set_spacing (2);
|
hbf->set_spacing (2);
|
||||||
hbf->show_all ();
|
hbf->show_all ();
|
||||||
mainNB->append_page (*fpanel, *hbf);
|
mainNB->append_page (*fpanel, *hbf);
|
||||||
|
}
|
||||||
|
|
||||||
bpanel = new BatchQueuePanel ();
|
bpanel = new BatchQueuePanel ();
|
||||||
bpanel->setParent (this);
|
bpanel->setParent (this);
|
||||||
|
|
||||||
// decorate tab
|
// decorate tab, the label is unimportant since its updated in batchqueuepanel anyway
|
||||||
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
|
Gtk::Label* lbq = new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE"));
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::EXECUTE, Gtk::ICON_SIZE_MENU)));
|
mainNB->append_page (*bpanel, *lbq);
|
||||||
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE"))));
|
|
||||||
hbb->set_spacing (2);
|
|
||||||
hbb->show_all ();
|
|
||||||
mainNB->append_page (*bpanel, *hbb);
|
|
||||||
|
|
||||||
|
|
||||||
epanel = new EditorPanel (fpanel);
|
epanel = new EditorPanel (fpanel);
|
||||||
epanel->setParent (this);
|
epanel->setParent (this);
|
||||||
|
|
||||||
// decorate tab
|
// decorate tab
|
||||||
|
if (options.mainNBVertical) {
|
||||||
|
Gtk::VBox* vbe = Gtk::manage (new Gtk::VBox ());
|
||||||
|
vbe->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/logoicon16.png")));
|
||||||
|
Gtk::Label* l=new Gtk::Label( Glib::ustring(" ") + M("MAIN_FRAME_EDITOR") );
|
||||||
|
//l->set_markup(Glib::ustring("<b>Editor</b>")); Bold difficult to read
|
||||||
|
l->set_angle (90);
|
||||||
|
vbe->pack_start (*l);
|
||||||
|
vbe->set_spacing (2);
|
||||||
|
vbe->show_all ();
|
||||||
|
mainNB->append_page (*epanel, *vbe);
|
||||||
|
} else {
|
||||||
Gtk::HBox* hbe = Gtk::manage (new Gtk::HBox ());
|
Gtk::HBox* hbe = Gtk::manage (new Gtk::HBox ());
|
||||||
hbe->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::EXECUTE, Gtk::ICON_SIZE_MENU)));
|
hbe->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/logoicon16.png")));
|
||||||
hbe->pack_start (*Gtk::manage (new Gtk::Label("Editor")));
|
hbe->pack_start (*Gtk::manage (new Gtk::Label(M("MAIN_FRAME_EDITOR"))));
|
||||||
hbe->set_spacing (2);
|
hbe->set_spacing (2);
|
||||||
hbe->show_all ();
|
hbe->show_all ();
|
||||||
mainNB->append_page (*epanel, *hbe);
|
mainNB->append_page (*epanel, *hbe);
|
||||||
|
}
|
||||||
|
|
||||||
mainNB->set_current_page (mainNB->page_num (*fpanel));
|
mainNB->set_current_page (mainNB->page_num (*fpanel));
|
||||||
|
|
||||||
signal_key_press_event().connect( sigc::mem_fun(*this, &RTWindow::keyPressed) );
|
signal_key_press_event().connect( sigc::mem_fun(*this, &RTWindow::keyPressed) );
|
||||||
|
Reference in New Issue
Block a user