UI enhancement: new shortcuts for toolpanelcoord & browse path
Ctrl-e: exposure tab Ctrl-d: detail tab Ctrl-c: color tab Ctrl-t: transform tab Ctrl-r: raw tab Ctrl-m: metadata tab In file browser: Ctrl-O - sets focus in browse path entry box
This commit is contained in:
@@ -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 (<b>Ctrl-o</b> set focus,<b>Ctrl-Enter</b> 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;<b>Alt-c</b>
|
||||
MAIN_TAB_DETAIL;Detail
|
||||
MAIN_TAB_DEVELOP;Develop
|
||||
MAIN_TAB_DETAIL_TOOLTIP;<b>Alt-d</b>
|
||||
MAIN_TAB_EXIF;Exif
|
||||
MAIN_TAB_EXPOSURE;Exposure
|
||||
MAIN_TAB_EXPOSURE_TOOLTIP;<b>Alt-e</b>
|
||||
MAIN_TAB_FILTER;Filter
|
||||
MAIN_TAB_ICM;ICM
|
||||
MAIN_TAB_IPTC;IPTC
|
||||
MAIN_TAB_METADATA;Metadata
|
||||
MAIN_TAB_METADATA_TOOLTIP;<b>Alt-m</b>
|
||||
MAIN_TAB_RAW;RAW
|
||||
MAIN_TAB_RAW_TOOLTIP;<b>Alt-r</b>
|
||||
MAIN_TAB_TAGGING;Tagging
|
||||
MAIN_TAB_TRANSFORM;Transform
|
||||
MAIN_TAB_TRANSFORM_TOOLTIP;<b>Alt-t</b>
|
||||
MAIN_TOGGLE_BEFORE_AFTER;B|A
|
||||
MAIN_TOOLTIP_HIDEFP;Show/hide the bottom panel (directory and file browser) <b>F</b>
|
||||
MAIN_TOOLTIP_HIDEHP;Show/hide the left panel (including the history) <b>l</b>
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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<Gtk::Expander*> 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
|
||||
|
Reference in New Issue
Block a user