diff --git a/rtdata/languages/default b/rtdata/languages/default
index a1fbbcdc5..9798df9fc 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -51,7 +51,7 @@ FILEBROWSER_ARRANGEMENTHINT;Change between vertical/horizontal alignment of thum
FILEBROWSER_AUTODARKFRAME;Auto dark frame
FILEBROWSER_AUTOFLATFIELD;Auto flat field
FILEBROWSER_BROWSEPATHBUTTONHINT;Click to browse to the chosen path
-FILEBROWSER_BROWSEPATHHINT;Type path to browse (Ctrl-Enter in File Browser)
+FILEBROWSER_BROWSEPATHHINT;Type path to browse (Ctrl-o set focus,Ctrl-Enter to browse in File Browser)
FILEBROWSER_CLEARPROFILE;Clear profile
FILEBROWSER_COPYPROFILE;Copy profile
FILEBROWSER_CURRENT_NAME;Current name:
@@ -355,17 +355,23 @@ MAIN_MSG_PLACES;Places
MAIN_MSG_QOVERWRITE;Do you want to overwrite it?
MAIN_TAB_BASIC;Basic
MAIN_TAB_COLOR;Color
+MAIN_TAB_COLOR_TOOLTIP;Alt-c
MAIN_TAB_DETAIL;Detail
MAIN_TAB_DEVELOP;Develop
+MAIN_TAB_DETAIL_TOOLTIP;Alt-d
MAIN_TAB_EXIF;Exif
MAIN_TAB_EXPOSURE;Exposure
+MAIN_TAB_EXPOSURE_TOOLTIP;Alt-e
MAIN_TAB_FILTER;Filter
MAIN_TAB_ICM;ICM
MAIN_TAB_IPTC;IPTC
MAIN_TAB_METADATA;Metadata
+MAIN_TAB_METADATA_TOOLTIP;Alt-m
MAIN_TAB_RAW;RAW
+MAIN_TAB_RAW_TOOLTIP;Alt-r
MAIN_TAB_TAGGING;Tagging
MAIN_TAB_TRANSFORM;Transform
+MAIN_TAB_TRANSFORM_TOOLTIP;Alt-t
MAIN_TOGGLE_BEFORE_AFTER;B|A
MAIN_TOOLTIP_HIDEFP;Show/hide the bottom panel (directory and file browser) F
MAIN_TOOLTIP_HIDEHP;Show/hide the left panel (including the history) l
diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index 588d2a81b..c4e66cfb3 100644
--- a/rtgui/editorpanel.cc
+++ b/rtgui/editorpanel.cc
@@ -790,85 +790,92 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
return true;
}
case GDK_m: // Maximize preview panel: hide top AND right AND history panels
- if (!ctrl) toggleSidePanels();
- return true;
+ if (!ctrl && !alt) {
+ toggleSidePanels();
+ return true;
+ }
case GDK_M: // Maximize preview panel: hide top AND right AND history panels AND (fit image preview)
- if (!ctrl) toggleSidePanelsZoomFit();
- return true;
+ if (!ctrl && !alt) {
+ toggleSidePanelsZoomFit();
+ return true;
+ }
}
- if (!ctrl) {
- // Normal
- switch(event->keyval) {
- case GDK_bracketright:
- tpc->coarse->rotateRight();
- return true;
- case GDK_bracketleft:
- tpc->coarse->rotateLeft();
- return true;
+ if (!alt){
+ if (!ctrl) {
+ // Normal
+ switch(event->keyval) {
+ case GDK_bracketright:
+ tpc->coarse->rotateRight();
+ return true;
+ case GDK_bracketleft:
+ tpc->coarse->rotateLeft();
+ return true;
- case GDK_i:
- case GDK_I:
- info->set_active (!info->get_active());
- return true;
- case GDK_b:
- case GDK_B:
- beforeAfter->set_active (!beforeAfter->get_active());
- return true;
- case GDK_plus:
- case GDK_equal:
- iarea->imageArea->zoomPanel->zoomInClicked();
- return true;
- case GDK_minus:
- case GDK_underscore:
- iarea->imageArea->zoomPanel->zoomOutClicked();
- return true;
- case GDK_1:
- iarea->imageArea->zoomPanel->zoom11Clicked();
- return true;
+ case GDK_i:
+ case GDK_I:
+ info->set_active (!info->get_active());
+ return true;
+ case GDK_b:
+ case GDK_B:
+ beforeAfter->set_active (!beforeAfter->get_active());
+ return true;
+ case GDK_plus:
+ case GDK_equal:
+ iarea->imageArea->zoomPanel->zoomInClicked();
+ return true;
+ case GDK_minus:
+ case GDK_underscore:
+ iarea->imageArea->zoomPanel->zoomOutClicked();
+ return true;
+ case GDK_1:
+ iarea->imageArea->zoomPanel->zoom11Clicked();
+ return true;
- case GDK_f:
- iarea->imageArea->zoomPanel->zoomFitClicked();
- return true;
- case GDK_less:
- iarea->imageArea->indClippedPanel->toggleClipped(true);
- return true;
- case GDK_greater:
- iarea->imageArea->indClippedPanel->toggleClipped(false);
- return true;
+ case GDK_f:
+ iarea->imageArea->zoomPanel->zoomFitClicked();
+ return true;
+ case GDK_less:
+ iarea->imageArea->indClippedPanel->toggleClipped(true);
+ return true;
+ case GDK_greater:
+ iarea->imageArea->indClippedPanel->toggleClipped(false);
+ return true;
- case GDK_F5:
- openThm->openDefaultViewer(event->state & GDK_SHIFT_MASK ? 2 : 1);
- return true;
- }
- }
- else {
- // With control
- switch (event->keyval) {
- case GDK_s:
- saveAsPressed();
- return true;
- case GDK_q:
- queueImgPressed();
- return true;
- case GDK_e:
- sendToGimpPressed();
- return true;
- case GDK_z:
- history->undo ();
- return true;
- case GDK_Z:
- history->redo ();
- return true;
- case GDK_F5:
- openThm->openDefaultViewer(3);
- return true;
-
- }
- }
+ case GDK_F5:
+ openThm->openDefaultViewer(event->state & GDK_SHIFT_MASK ? 2 : 1);
+ return true;
+ }
+ }
+ else {
+ // With control
+ switch (event->keyval) {
+ case GDK_s:
+ saveAsPressed();
+ return true;
+ case GDK_q:
+ queueImgPressed();
+ return true;
+ case GDK_e:
+ sendToGimpPressed();
+ return true;
+ case GDK_z:
+ history->undo ();
+ return true;
+ case GDK_Z:
+ history->redo ();
+ return true;
+ case GDK_F5:
+ openThm->openDefaultViewer(3);
+ return true;
+ }
+ } //if (!ctrl)
+ } //if (!alt)
if(tpc->getToolBar()->handleShortcutKey(event))
return true;
+ if(tpc->handleShortcutKey(event))
+ return true;
return false;
}
diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc
index 38a81405e..4c86af4ce 100644
--- a/rtgui/filecatalog.cc
+++ b/rtgui/filecatalog.cc
@@ -1035,7 +1035,7 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
}
return true;
case GDK_m:
- if (!ctrl) toggleSidePanels();
+ if (!ctrl && !alt) toggleSidePanels();
return true;
}
@@ -1058,20 +1058,26 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
case GDK_grave:
categoryButtonToggled(bUnRanked);
return true;
- case GDK_d:
- case GDK_D:
- categoryButtonToggled(bDir);
- return true;
- case GDK_t:
- case GDK_T:
- categoryButtonToggled(bTrash);
- return true;
+
case GDK_Return:
case GDK_KP_Enter:
FileCatalog::buttonBrowsePathPressed ();
return true;
}
+ if (!ctrl && !alt) {
+ switch(event->keyval) {
+ case GDK_d:
+ case GDK_D:
+ categoryButtonToggled(bDir);
+ return true;
+ case GDK_t:
+ case GDK_T:
+ categoryButtonToggled(bTrash);
+ return true;
+ }
+ }
+
if (!ctrl) {
switch(event->keyval) {
@@ -1096,8 +1102,14 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
return true;
}
}
- else {
+ else { // with Ctrl
switch (event->keyval) {
+ case GDK_o:
+ if (!alt){
+ BrowsePath->select_region(0, BrowsePath->get_text_length());
+ BrowsePath->grab_focus();
+ return true;
+ }
}
}
diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc
index 9140b60cb..ff8de7fa0 100644
--- a/rtgui/filepanel.cc
+++ b/rtgui/filepanel.cc
@@ -238,6 +238,9 @@ bool FilePanel::handleShortcutKey (GdkEventKey* event) {
if(tpc->getToolBar()->handleShortcutKey(event))
return true;
+ if(tpc->handleShortcutKey(event))
+ return true;
+
if(fileCatalog->handleShortcutKey(event))
return true;
diff --git a/rtgui/toolbar.cc b/rtgui/toolbar.cc
index 52f3298be..dd0ecdae2 100644
--- a/rtgui/toolbar.cc
+++ b/rtgui/toolbar.cc
@@ -198,8 +198,9 @@ bool ToolBar::handleShortcutKey (GdkEventKey* event) {
bool ctrl = event->state & GDK_CONTROL_MASK;
bool shift = event->state & GDK_SHIFT_MASK;
+ bool alt = event->state & GDK_MOD1_MASK;
- if (!ctrl) {
+ if (!ctrl && !alt) {
switch(event->keyval) {
case GDK_w:
case GDK_W:
diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc
index b729869aa..afb3c1aa4 100644
--- a/rtgui/toolpanelcoord.cc
+++ b/rtgui/toolpanelcoord.cc
@@ -105,11 +105,11 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
metadataPanel->append_page (*exifpanel, M("MAIN_TAB_EXIF"));
metadataPanel->append_page (*iptcpanel, M("MAIN_TAB_IPTC"));
- Gtk::ScrolledWindow* exposurePanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
- Gtk::ScrolledWindow* detailsPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
- Gtk::ScrolledWindow* colorPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
- Gtk::ScrolledWindow* transformPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
- Gtk::ScrolledWindow* rawPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
+ exposurePanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
+ detailsPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
+ colorPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
+ transformPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
+ rawPanelSW = Gtk::manage (new Gtk::ScrolledWindow ());
exposurePanelSW->set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
detailsPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
colorPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
@@ -122,12 +122,47 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
transformPanelSW->add (*transformPanel);
rawPanelSW->add (*rawPanel);
- toolPanelNotebook->append_page (*exposurePanelSW, M("MAIN_TAB_EXPOSURE"));
- toolPanelNotebook->append_page (*detailsPanelSW, M("MAIN_TAB_DETAIL"));
- toolPanelNotebook->append_page (*colorPanelSW, M("MAIN_TAB_COLOR"));
- toolPanelNotebook->append_page (*transformPanelSW, M("MAIN_TAB_TRANSFORM"));
- toolPanelNotebook->append_page (*rawPanelSW, M("MAIN_TAB_RAW"));
- toolPanelNotebook->append_page (*metadataPanel, M("MAIN_TAB_METADATA"));
+ Gtk::HBox* hbe = Gtk::manage (new Gtk::HBox ());
+ hbe->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_EXPOSURE"))));
+ hbe->set_spacing (2);
+ hbe->set_tooltip_markup (M("MAIN_TAB_EXPOSURE_TOOLTIP"));
+ hbe->show_all ();
+ toolPanelNotebook->append_page (*exposurePanelSW, *hbe);
+
+ Gtk::HBox* hbd = Gtk::manage (new Gtk::HBox ());
+ hbd->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_DETAIL"))));
+ hbd->set_spacing (2);
+ hbd->set_tooltip_markup (M("MAIN_TAB_DETAIL_TOOLTIP"));
+ hbd->show_all ();
+ toolPanelNotebook->append_page (*detailsPanelSW, *hbd);
+
+ Gtk::HBox* hbc = Gtk::manage (new Gtk::HBox ());
+ hbc->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_COLOR"))));
+ hbc->set_spacing (2);
+ hbc->set_tooltip_markup (M("MAIN_TAB_COLOR_TOOLTIP"));
+ hbc->show_all ();
+ toolPanelNotebook->append_page (*colorPanelSW, *hbc);
+
+ Gtk::HBox* hbt = Gtk::manage (new Gtk::HBox ());
+ hbt->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_TRANSFORM"))));
+ hbt->set_spacing (2);
+ hbt->set_tooltip_markup (M("MAIN_TAB_TRANSFORM_TOOLTIP"));
+ hbt->show_all ();
+ toolPanelNotebook->append_page (*transformPanelSW, *hbt);
+
+ Gtk::HBox* hbr = Gtk::manage (new Gtk::HBox ());
+ hbr->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_RAW"))));
+ hbr->set_spacing (2);
+ hbr->set_tooltip_markup (M("MAIN_TAB_RAW_TOOLTIP"));
+ hbr->show_all ();
+ toolPanelNotebook->append_page (*rawPanelSW, *hbr);
+
+ Gtk::HBox* hbm = Gtk::manage (new Gtk::HBox ());
+ hbm->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_TAB_METADATA"))));
+ hbm->set_spacing (2);
+ hbm->set_tooltip_markup (M("MAIN_TAB_METADATA_TOOLTIP"));
+ hbm->show_all ();
+ toolPanelNotebook->append_page (*metadataPanel, *hbm);
toolPanelNotebook->set_current_page (0);
toolPanelNotebook->set_scrollable ();
@@ -439,3 +474,38 @@ void ToolPanelCoordinator::updateCurveBackgroundHistogram (unsigned* histrgb, un
curve->updateCurveBackgroundHistogram (histrgb);
lcurve->updateCurveBackgroundHistogram (histl);
}
+
+bool ToolPanelCoordinator::handleShortcutKey (GdkEventKey* event) {
+
+ bool ctrl = event->state & GDK_CONTROL_MASK;
+ bool shift = event->state & GDK_SHIFT_MASK;
+ bool alt = event->state & GDK_MOD1_MASK;
+
+ if (alt){
+ switch(event->keyval) {
+ case GDK_e:
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*exposurePanelSW));
+ return true;
+ case GDK_d:
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*detailsPanelSW));
+ return true;
+ case GDK_c:
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*colorPanelSW));
+ return true;
+ case GDK_t:
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*transformPanelSW));
+ return true;
+ case GDK_r:
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*rawPanelSW));
+ return true;
+ case GDK_m:
+ // !!! this should be improved by detecting if metadataPanel is present,
+ // as this page is removed in BatchToolPanelCoordinator::BatchToolPanelCoordinator
+ if (toolPanelNotebook->get_n_pages()==6){
+ toolPanelNotebook->set_current_page (toolPanelNotebook->page_num(*metadataPanel));
+ return true;
+ }
+ }
+ }
+ return false;
+}
diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h
index 9f2b09046..82507fce7 100644
--- a/rtgui/toolpanelcoord.h
+++ b/rtgui/toolpanelcoord.h
@@ -119,6 +119,12 @@ class ToolPanelCoordinator : public ToolPanelListener,
IPTCPanel* iptcpanel;
ToolBar* toolBar;
+ Gtk::ScrolledWindow* exposurePanelSW;
+ Gtk::ScrolledWindow* detailsPanelSW;
+ Gtk::ScrolledWindow* colorPanelSW;
+ Gtk::ScrolledWindow* transformPanelSW;
+ Gtk::ScrolledWindow* rawPanelSW;
+
std::vector expList;
bool hasChanged;
@@ -187,6 +193,8 @@ class ToolPanelCoordinator : public ToolPanelListener,
ToolBar* getToolBar () { return toolBar; }
int getSpotWBRectSize ();
CropGUIListener* startCropEditing (Thumbnail* thm=NULL) { return crop; }
+
+ bool handleShortcutKey (GdkEventKey* event);
};
#endif