diff --git a/rtdata/images/logoicon_wind_16.png b/rtdata/images/logoicon_wind_16.png
new file mode 100644
index 000000000..811e2cbeb
Binary files /dev/null and b/rtdata/images/logoicon_wind_16.png differ
diff --git a/rtdata/languages/default b/rtdata/languages/default
index 7d5ff0026..70a7fbe76 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -72,7 +72,7 @@ FILEBROWSER_CURRENT_NAME;Current name:
FILEBROWSER_DARKFRAME;Dark frame
FILEBROWSER_DELETEDLGLABEL;File delete confirmation
FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files?
-FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files INCLUDING a batch processed version?
+FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files INCLUDING a Queue processed version?
FILEBROWSER_EMPTYTRASH;Empty Trash
FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash
FILEBROWSER_EXIFFILTERAPPLY;Apply
@@ -95,18 +95,21 @@ FILEBROWSER_POPUPCOLORLABEL3;Label: Green
FILEBROWSER_POPUPCOLORLABEL4;Label: Blue
FILEBROWSER_POPUPCOLORLABEL5;Label: Purple
FILEBROWSER_POPUPCOPYTO;Copy to...
+FILEBROWSER_POPUPFILEOPERATIONS;File Operations
FILEBROWSER_POPUPMOVEEND;Move to end of queue
FILEBROWSER_POPUPMOVEHEAD;Move to head of queue
FILEBROWSER_POPUPMOVETO;Move to...
FILEBROWSER_POPUPOPEN;Open
-FILEBROWSER_POPUPPROCESS;Put to processing queue
+FILEBROWSER_POPUPPROCESS;Put to Queue
+FILEBROWSER_POPUPPROFILEOPERATIONS;Profile Operations
+FILEBROWSER_POPUPRANK;Rank
FILEBROWSER_POPUPRANK1;Rank 1 *
FILEBROWSER_POPUPRANK2;Rank 2 **
FILEBROWSER_POPUPRANK3;Rank 3 ***
FILEBROWSER_POPUPRANK4;Rank 4 ****
FILEBROWSER_POPUPRANK5;Rank 5 *****
-FILEBROWSER_POPUPREMOVE;Remove from filesystem
-FILEBROWSER_POPUPREMOVEINCLPROC;Remove from filesystem & batch result
+FILEBROWSER_POPUPREMOVE;Delete
+FILEBROWSER_POPUPREMOVEINCLPROC;Delete (with output from queue)
FILEBROWSER_POPUPREMOVESUBMENU;Remove
FILEBROWSER_POPUPRENAME;Rename
FILEBROWSER_POPUPSELECTALL;Select all
@@ -387,14 +390,14 @@ IPTCPANEL_TRANSREFERENCEHINT;A code representing the location of original transm
MAIN_BUTTON_EXIT;Exit
MAIN_BUTTON_FULLSCREEN;Fullscreen
MAIN_BUTTON_PREFERENCES;Preferences
-MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue Ctrl+Q
-MAIN_BUTTON_QUEUE;Put to queue
+MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue Ctrl+Q
+MAIN_BUTTON_QUEUE;Put to Queue
MAIN_BUTTON_SAVE_TOOLTIP;Save current image Ctrl+S
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor Ctrl+E
MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels m
MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
-MAIN_FRAME_BATCHQUEUE;Batch Queue
-MAIN_FRAME_BATCHQUEUE_TOOLTIP; Batch Queue Ctrl-F3
+MAIN_FRAME_BATCHQUEUE;Queue
+MAIN_FRAME_BATCHQUEUE_TOOLTIP; Processing Queue Ctrl-F3
MAIN_FRAME_EDITOR;Editor
MAIN_FRAME_EDITOR_TOOLTIP; Editor Ctrl-F4
MAIN_FRAME_FILEBROWSER;File Browser
@@ -593,6 +596,11 @@ PREFERENCES_INTENT_RELATIVE;Relative Colorimetric
PREFERENCES_INTENT_SATURATION;Saturation
PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show RAW internal thumbnail if unedited
PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
+PREFERENCES_MENUOPTIONS;Menu Options
+PREFERENCES_MENUGROUPRANK;Group Ranking
+PREFERENCES_MENUGROUPLABEL;Group Labeling
+PREFERENCES_MENUGROUPFILEOPERATIONS;Group File Operations
+PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group Profile Operations
PREFERENCES_METADATA;Metadata
PREFERENCES_MONITORICC;Monitor Profile
PREFERENCES_MULTITAB;Multiple tabs mode
@@ -631,7 +639,7 @@ PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
PREFERENCES_SINGLETAB;Single tab mode
PREFERENCES_SINGLETABVERTAB;Single tab mode, vertical tabs
PREFERENCES_SLIMUI;Slim interface
-PREFERENCES_SND_BATCHQUEUEDONE;Batch queue done
+PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
PREFERENCES_SND_HELP;Either enter filepath or nothing (for no sound). On Windows use "SystemDefault", "SystemAsterisk" etc. for system sounds.
PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done
PREFERENCES_SND_TRESHOLDSECS;after secs
diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc
index 93bc2f702..61191217d 100644
--- a/rtgui/filebrowser.cc
+++ b/rtgui/filebrowser.cc
@@ -45,52 +45,135 @@ FileBrowser::FileBrowser ()
int p = 0;
pmenu = new Gtk::Menu ();
pmenu->attach (*Gtk::manage(open = new Gtk::MenuItem (M("FILEBROWSER_POPUPOPEN"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(develop = new Gtk::MenuItem (M("FILEBROWSER_POPUPPROCESS"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[0] = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNRANK"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[1] = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK1"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[2] = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK2"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[3] = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK3"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[4] = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK4"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rank[5] = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK5"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
-
- pmenu->attach (*Gtk::manage(colorlabel[0] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL0"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(colorlabel[1] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL1"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(colorlabel[2] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL2"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(colorlabel[3] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL3"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(colorlabel[4] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL4"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(colorlabel[5] = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCOLORLABEL5"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(develop = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPPROCESS"))), 0, 1, p, p+1); p++;
+ develop->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/processing.png")));
+ pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p+1); p++;
+
+ /***********************
+ * rank
+ ***********************/
+ if (options.menuGroupRank){
+ pmenu->attach (*Gtk::manage(menuRank = new Gtk::MenuItem (M("FILEBROWSER_POPUPRANK"))), 0, 1, p, p+1); p++;
+ Gtk::Menu* submenuRank = Gtk::manage (new Gtk::Menu ());
+ submenuRank->attach (*Gtk::manage(rank[0] = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNRANK"))), 0, 1, p, p+1); p++;
+ for (int i=1; i<=5; i++){
+ submenuRank->attach (*Gtk::manage(rank[i] = new Gtk::MenuItem (M(Glib::ustring::compose("%1%2","FILEBROWSER_POPUPRANK",i)))), 0, 1, p, p+1); p++;
+ }
+ submenuRank->show_all ();
+ menuRank->set_submenu (*submenuRank);
+ }
+ else{
+ pmenu->attach (*Gtk::manage(rank[0] = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNRANK"))), 0, 1, p, p+1); p++;
+ for (int i=1; i<=5; i++){
+ pmenu->attach (*Gtk::manage(rank[i] = new Gtk::MenuItem (M(Glib::ustring::compose("%1%2","FILEBROWSER_POPUPRANK",i)))), 0, 1, p, p+1); p++;
+ }
+ pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ }
+
+ if (!options.menuGroupRank || !options.menuGroupLabel) // separate Rank and Color Labels if either is not grouped
+ pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+
+ /***********************
+ * color labels
+ ***********************/
+ if (options.menuGroupLabel){
+ pmenu->attach (*Gtk::manage(menuLabel = new Gtk::MenuItem (M("FILEBROWSER_POPUPCOLORLABEL"))), 0, 1, p, p+1); p++;
+ Gtk::Menu* submenuLabel = Gtk::manage (new Gtk::Menu ());
+
+ for (int i=0; i<=5; i++){
+ submenuLabel->attach (*Gtk::manage(colorlabel[i] = new Gtk::ImageMenuItem (M(Glib::ustring::compose("%1%2","FILEBROWSER_POPUPCOLORLABEL",i)))), 0, 1, p, p+1); p++;
+ }
+ submenuLabel->show_all ();
+ menuLabel->set_submenu (*submenuLabel);
+ }
+ else{
+ for (int i=0; i<=5; i++){
+ pmenu->attach (*Gtk::manage(colorlabel[i] = new Gtk::ImageMenuItem (M(Glib::ustring::compose("%1%2","FILEBROWSER_POPUPCOLORLABEL",i)))), 0, 1, p, p+1); p++;
+ }
+ }
for (int i=1; i<=5; i++){//set color label images
colorlabel[i]->set_image(*Gtk::manage(new Gtk::Image (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",i,".png"))));
}
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(trash = new Gtk::MenuItem (M("FILEBROWSER_POPUPTRASH"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(untrash = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNTRASH"))), 0, 1, p, p+1); p++;
+
+ /***********************
+ * File Operations
+ * *********************/
+ if (options.menuGroupFileOperations){
+ pmenu->attach (*Gtk::manage(menuFileOperations = new Gtk::MenuItem (M("FILEBROWSER_POPUPFILEOPERATIONS"))), 0, 1, p, p+1); p++;
+ Gtk::Menu* submenuFileOperations = Gtk::manage (new Gtk::Menu ());
+
+ submenuFileOperations->attach (*Gtk::manage(trash = new Gtk::MenuItem (M("FILEBROWSER_POPUPTRASH"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(untrash = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNTRASH"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(rename = new Gtk::MenuItem (M("FILEBROWSER_POPUPRENAME"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(remove = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVE"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(removeInclProc = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVEINCLPROC"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(copyTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPCOPYTO"))), 0, 1, p, p+1); p++;
+ submenuFileOperations->attach (*Gtk::manage(moveTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPMOVETO"))), 0, 1, p, p+1); p++;
+
+ submenuFileOperations->show_all ();
+ menuFileOperations->set_submenu (*submenuFileOperations);
+ }
+ else{
+ pmenu->attach (*Gtk::manage(trash = new Gtk::MenuItem (M("FILEBROWSER_POPUPTRASH"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(untrash = new Gtk::MenuItem (M("FILEBROWSER_POPUPUNTRASH"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(rename = new Gtk::MenuItem (M("FILEBROWSER_POPUPRENAME"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(remove = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVE"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(removeInclProc = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVEINCLPROC"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(copyTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPCOPYTO"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(moveTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPMOVETO"))), 0, 1, p, p+1); p++;
+ }
+
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(rename = new Gtk::MenuItem (M("FILEBROWSER_POPUPRENAME"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(remove = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVE"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(removeInclProc = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVEINCLPROC"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(copyTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPCOPYTO"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(moveTo = new Gtk::MenuItem (M("FILEBROWSER_POPUPMOVETO"))), 0, 1, p, p+1); p++;
+
+ /***********************
+ * Profile Operations
+ * *********************/
+ if (options.menuGroupProfileOperations){
+ pmenu->attach (*Gtk::manage(menuProfileOperations = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPPROFILEOPERATIONS"))), 0, 1, p, p+1); p++;
+ menuProfileOperations->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/logoicon_wind_16.png")));
+
+ Gtk::Menu* submenuProfileOperations = Gtk::manage (new Gtk::Menu ());
+
+ submenuProfileOperations->attach (*Gtk::manage(copyprof = new Gtk::MenuItem (M("FILEBROWSER_COPYPROFILE"))), 0, 1, p, p+1); p++;
+ submenuProfileOperations->attach (*Gtk::manage(pasteprof = new Gtk::MenuItem (M("FILEBROWSER_PASTEPROFILE"))), 0, 1, p, p+1); p++;
+ submenuProfileOperations->attach (*Gtk::manage(partpasteprof = new Gtk::MenuItem (M("FILEBROWSER_PARTIALPASTEPROFILE"))), 0, 1, p, p+1); p++;
+ submenuProfileOperations->attach (*Gtk::manage(applyprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE"))), 0, 1, p, p+1); p++;
+ submenuProfileOperations->attach (*Gtk::manage(applypartprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE_PARTIAL"))), 0, 1, p, p+1); p++;
+ submenuProfileOperations->attach (*Gtk::manage(clearprof = new Gtk::MenuItem (M("FILEBROWSER_CLEARPROFILE"))), 0, 1, p, p+1); p++;
+
+ submenuProfileOperations->show_all ();
+ menuProfileOperations->set_submenu (*submenuProfileOperations);
+ }
+ else{
+ pmenu->attach (*Gtk::manage(copyprof = new Gtk::MenuItem (M("FILEBROWSER_COPYPROFILE"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(pasteprof = new Gtk::MenuItem (M("FILEBROWSER_PASTEPROFILE"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(partpasteprof = new Gtk::MenuItem (M("FILEBROWSER_PARTIALPASTEPROFILE"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(applyprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(applypartprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE_PARTIAL"))), 0, 1, p, p+1); p++;
+ pmenu->attach (*Gtk::manage(clearprof = new Gtk::MenuItem (M("FILEBROWSER_CLEARPROFILE"))), 0, 1, p, p+1); p++;
+ }
+
+
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(menuDF = new Gtk::MenuItem (M("FILEBROWSER_DARKFRAME"))), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(menuFF = new Gtk::MenuItem (M("FILEBROWSER_FLATFIELD"))), 0, 1, p, p+1); p++;
+
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(copyprof = new Gtk::MenuItem (M("FILEBROWSER_COPYPROFILE"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(pasteprof = new Gtk::MenuItem (M("FILEBROWSER_PASTEPROFILE"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(partpasteprof = new Gtk::MenuItem (M("FILEBROWSER_PARTIALPASTEPROFILE"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(applyprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(applypartprof = new Gtk::MenuItem (M("FILEBROWSER_APPLYPROFILE_PARTIAL"))), 0, 1, p, p+1); p++;
- pmenu->attach (*Gtk::manage(clearprof = new Gtk::MenuItem (M("FILEBROWSER_CLEARPROFILE"))), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(cachemenu = new Gtk::MenuItem (M("FILEBROWSER_CACHE"))), 0, 1, p, p+1); p++;
pmenu->show_all ();
+ /***********************
+ * Accelerators
+ * *********************/
pmaccelgroup = Gtk::AccelGroup::create ();
pmenu->set_accel_group (pmaccelgroup);
selall->add_accelerator ("activate", pmenu->get_accel_group(), GDK_a, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
@@ -163,18 +246,19 @@ void FileBrowser::rightClicked (ThumbBrowserEntryBase* entry) {
applyprof->set_submenu (*applmenu);
// submenu applpartmenu
- p = 0;
- Gtk::Menu* applpartmenu = Gtk::manage (new Gtk::Menu ());
- //std::vector profnames = profileStore.getProfileNames (); // this is already created for submenu applmenu above
- for (int i=0; iattach (*mi, 0, 1, p, p+1); p++;
- mi->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::applyPartialMenuItemActivated), profnames[i]));
- mi->show ();
- }
+ p = 0;
+ Gtk::Menu* applpartmenu = Gtk::manage (new Gtk::Menu ());
+ //std::vector profnames = profileStore.getProfileNames (); // this is already created for submenu applmenu above
+ for (int i=0; iattach (*mi, 0, 1, p, p+1); p++;
+ mi->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::applyPartialMenuItemActivated), profnames[i]));
+ mi->show ();
+ }
applypartprof->set_submenu (*applpartmenu);
// submenuDF
+ p = 0;
Gtk::Menu* submenuDF = Gtk::manage (new Gtk::Menu ());
submenuDF->attach (*Gtk::manage(selectDF = new Gtk::MenuItem (M("FILEBROWSER_SELECTDARKFRAME"))), 0, 1, p, p+1); p++;
submenuDF->attach (*Gtk::manage(autoDF = new Gtk::MenuItem (M("FILEBROWSER_AUTODARKFRAME"))), 0, 1, p, p+1); p++;
@@ -186,6 +270,7 @@ void FileBrowser::rightClicked (ThumbBrowserEntryBase* entry) {
menuDF->set_submenu (*submenuDF);
// submenuFF
+ p = 0;
Gtk::Menu* submenuFF = Gtk::manage (new Gtk::Menu ());
submenuFF->attach (*Gtk::manage(selectFF = new Gtk::MenuItem (M("FILEBROWSER_SELECTFLATFIELD"))), 0, 1, p, p+1); p++;
submenuFF->attach (*Gtk::manage(autoFF = new Gtk::MenuItem (M("FILEBROWSER_AUTOFLATFIELD"))), 0, 1, p, p+1); p++;
diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h
index da45ed682..5ced80149 100644
--- a/rtgui/filebrowser.h
+++ b/rtgui/filebrowser.h
@@ -56,7 +56,7 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener {
Gtk::ImageMenuItem* colorlabel[6];
Gtk::MenuItem* trash;
Gtk::MenuItem* untrash;
- Gtk::MenuItem* develop;
+ Gtk::ImageMenuItem* develop;
Gtk::MenuItem* rename;
Gtk::MenuItem* remove;
Gtk::MenuItem* removeInclProc;
@@ -65,6 +65,10 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener {
Gtk::MenuItem* copyTo;
Gtk::MenuItem* moveTo;
+ Gtk::MenuItem* menuRank;
+ Gtk::MenuItem* menuLabel;
+ Gtk::MenuItem* menuFileOperations;
+ Gtk::ImageMenuItem* menuProfileOperations;
Gtk::MenuItem* menuDF;
Gtk::MenuItem* selectDF;
Gtk::MenuItem* thisIsDF;
diff --git a/rtgui/options.cc b/rtgui/options.cc
index d399c7076..e2da4f587 100644
--- a/rtgui/options.cc
+++ b/rtgui/options.cc
@@ -139,6 +139,10 @@ void Options::setDefaults () {
histogramPosition = 2;
showProfileSelector = true;
FileBrowserToolbarSingleRow = true;
+ menuGroupRank = true;
+ menuGroupLabel = true;
+ menuGroupFileOperations = true;
+ menuGroupProfileOperations = true;
cutOverlayBrush = std::vector (4);
cutOverlayBrush[3] = 0.667; // :-p
@@ -317,6 +321,10 @@ if (keyFile.has_group ("File Browser")) {
if (keyFile.has_key ("File Browser", "OverlayedFileNames")) overlayedFileNames = keyFile.get_boolean ("File Browser", "OverlayedFileNames");
if (keyFile.has_key ("File Browser", "ShowFileNames")) showFileNames = keyFile.get_boolean ("File Browser", "ShowFileNames");
if (keyFile.has_key ("File Browser", "InternalThumbIfUntouched")) internalThumbIfUntouched = keyFile.get_boolean ("File Browser", "InternalThumbIfUntouched");
+ if (keyFile.has_key ("File Browser", "menuGroupRank")) menuGroupRank = keyFile.get_boolean ("File Browser", "menuGroupRank");
+ if (keyFile.has_key ("File Browser", "menuGroupLabel")) menuGroupLabel = keyFile.get_boolean ("File Browser", "menuGroupLabel");
+ if (keyFile.has_key ("File Browser", "menuGroupFileOperations")) menuGroupFileOperations = keyFile.get_boolean ("File Browser", "menuGroupFileOperations");
+ if (keyFile.has_key ("File Browser", "menuGroupProfileOperations")) menuGroupProfileOperations = keyFile.get_boolean ("File Browser", "menuGroupProfileOperations");
}
if (keyFile.has_group ("Clipping Indication")) {
@@ -450,6 +458,10 @@ int Options::saveToFile (Glib::ustring fname) {
keyFile.set_boolean ("File Browser", "OverlayedFileNames", overlayedFileNames);
keyFile.set_boolean ("File Browser", "ShowFileNames", showFileNames );
keyFile.set_boolean ("File Browser", "InternalThumbIfUntouched", internalThumbIfUntouched );
+ keyFile.set_boolean ("File Browser", "menuGroupRank", menuGroupRank);
+ keyFile.set_boolean ("File Browser", "menuGroupLabel", menuGroupLabel);
+ keyFile.set_boolean ("File Browser", "menuGroupFileOperations", menuGroupFileOperations);
+ keyFile.set_boolean ("File Browser", "menuGroupProfileOperations", menuGroupProfileOperations);
keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold);
keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold);
diff --git a/rtgui/options.h b/rtgui/options.h
index bf8767a6a..ca148e761 100644
--- a/rtgui/options.h
+++ b/rtgui/options.h
@@ -148,6 +148,11 @@ class Options {
bool showProfileSelector;
bool FileBrowserToolbarSingleRow;
+ bool menuGroupRank;
+ bool menuGroupLabel;
+ bool menuGroupFileOperations;
+ bool menuGroupProfileOperations;
+
Options ();
Options* copyFrom (Options* other);
diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc
index a1a44fc5a..496775e4f 100644
--- a/rtgui/preferences.cc
+++ b/rtgui/preferences.cc
@@ -708,6 +708,23 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
fro->add (*vbro);
+
+ Gtk::Frame* frmnu = Gtk::manage( new Gtk::Frame (M("PREFERENCES_MENUOPTIONS")) );
+ ckbmenuGroupRank = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPRANK")) );
+ ckbmenuGroupLabel = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPLABEL")) );
+ ckbmenuGroupFileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPFILEOPERATIONS")) );
+ ckbmenuGroupProfileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPPROFILEOPERATIONS")) );
+ Gtk::VBox* vbmnu = Gtk::manage( new Gtk::VBox () );
+
+ vbmnu->set_border_width (4);
+ vbmnu->pack_start (*ckbmenuGroupRank, Gtk::PACK_SHRINK, 0);
+ vbmnu->pack_start (*ckbmenuGroupLabel, Gtk::PACK_SHRINK, 0);
+ vbmnu->pack_start (*ckbmenuGroupFileOperations, Gtk::PACK_SHRINK, 0);
+ vbmnu->pack_start (*ckbmenuGroupProfileOperations, Gtk::PACK_SHRINK, 0);
+
+ frmnu->add (*vbmnu);
+
+
Gtk::Frame* fre = Gtk::manage( new Gtk::Frame (M("PREFERENCES_PARSEDEXT")) );
Gtk::VBox* vbre = Gtk::manage( new Gtk::VBox () );
vbre->set_border_width (4);
@@ -747,6 +764,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
vbc->set_border_width (4);
Gtk::Label* cflab = Gtk::manage( new Gtk::Label (M("PREFERENCES_CACHETHUMBFORM")+":") );
+ cflab->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_TOP);
cformat = Gtk::manage( new Gtk::ComboBoxText () );
cformat->set_size_request(50, -1);
cformat->append_text (M("PREFERENCES_CACHEFORMAT1"));
@@ -754,10 +772,8 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
cformat->append_text (M("PREFERENCES_CACHEFORMAT1")+", 16 bit");
cformat->signal_changed().connect( sigc::mem_fun(*this, &Preferences::cacheFormatComboChanged) );
cacheFormatComboChanged(); // update the tooltip
- Gtk::HBox* hb2 = Gtk::manage( new Gtk::HBox () );
- hb2->pack_start (*cflab, Gtk::PACK_SHRINK, 4);
- hb2->pack_start (*cformat);
- vbc->pack_start (*hb2, Gtk::PACK_SHRINK, 4);
+ vbc->pack_start (*cflab, Gtk::PACK_SHRINK, 2);
+ vbc->pack_start (*cformat);
Gtk::HBox* hb3 = Gtk::manage( new Gtk::HBox () );
Gtk::Label* chlab = Gtk::manage( new Gtk::Label (M("PREFERENCES_CACHETHUMBHEIGHT")+":") );
@@ -794,6 +810,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
Gtk::VBox* vb6 = Gtk::manage( new Gtk::VBox () );
vb6->pack_start (*fro);
+ vb6->pack_start (*frmnu);
vb6->pack_end (*frc);
hb6->pack_start (*vb6);
hb6->pack_start (*fre);
@@ -885,6 +902,10 @@ void Preferences::storePreferences () {
moptions.dateFormat = dateformat->get_text();
moptions.fbShowDateTime = showDateTime->get_active ();
moptions.fbShowBasicExif = showBasicExif->get_active ();
+ moptions.menuGroupRank = ckbmenuGroupRank->get_active();
+ moptions.menuGroupLabel = ckbmenuGroupLabel->get_active();
+ moptions.menuGroupFileOperations = ckbmenuGroupFileOperations->get_active();
+ moptions.menuGroupProfileOperations = ckbmenuGroupProfileOperations->get_active();
moptions.blinkClipped = blinkClipped->get_active ();
moptions.highlightThreshold = (int)hlThresh->get_value ();
moptions.shadowThreshold = (int)shThresh->get_value ();
@@ -1019,6 +1040,10 @@ void Preferences::fillPreferences () {
fontbutton->set_font_name(moptions.font);
showDateTime->set_active (moptions.fbShowDateTime);
showBasicExif->set_active (moptions.fbShowBasicExif);
+ ckbmenuGroupRank->set_active(moptions.menuGroupRank);
+ ckbmenuGroupLabel->set_active(moptions.menuGroupLabel);
+ ckbmenuGroupFileOperations->set_active(moptions.menuGroupFileOperations);
+ ckbmenuGroupProfileOperations->set_active(moptions.menuGroupProfileOperations);
blinkClipped->set_active (moptions.blinkClipped);
hlThresh->set_value (moptions.highlightThreshold);
shThresh->set_value (moptions.shadowThreshold);
diff --git a/rtgui/preferences.h b/rtgui/preferences.h
index 503996e7f..ce62a2504 100644
--- a/rtgui/preferences.h
+++ b/rtgui/preferences.h
@@ -103,6 +103,11 @@ class Preferences : public Gtk::Dialog {
Gtk::Button* delExt;
Gtk::CheckButton* overlayedFileNames;
+ Gtk::CheckButton* ckbmenuGroupRank;
+ Gtk::CheckButton* ckbmenuGroupLabel;
+ Gtk::CheckButton* ckbmenuGroupFileOperations;
+ Gtk::CheckButton* ckbmenuGroupProfileOperations;
+
Gtk::CheckButton* chOverwriteOutputFile;
Gtk::CheckButton* saveParamsFile;