Keyboard shortcuts.

This commit is contained in:
Emil Martinec
2010-08-15 16:59:39 -05:00
parent 861703c7a3
commit 89dd765c40
4 changed files with 129 additions and 60 deletions

View File

@@ -306,12 +306,12 @@ MAIN_TAB_IPTC;IPTC
MAIN_TAB_METADATA;Metadata
MAIN_TAB_TAGGING;Tagging
MAIN_TAB_TRANSFORM;Transform
MAIN_TOOLTIP_HIDEFP;Show/hide the bottom panel (directory and file browser, shortcut key: F)
MAIN_TOOLTIP_HIDEHP;Show/hide the left panel (including the history, shortcut key: H)
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>H</b>
MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication
MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication
MAIN_TOOLTIP_PREFERENCES;Set preferences
MAIN_TOOLTIP_QINFO;Quick info on the image
MAIN_TOOLTIP_QINFO;Quick info on the image <b>I</b>
MAIN_TOOLTIP_SAVE;Save image to the default folder
MAIN_TOOLTIP_SAVEAS;Save image to a selected folder
PARTIALPASTE_BASICGROUP;Basic settings
@@ -476,10 +476,10 @@ SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue
SAVEDLG_SAVEIMMEDIATELY;Save immediately
SAVEDLG_SAVESPP;Save processing parameters with image
SAVEDLG_TIFFFILTER;TIFF files
TOOLBAR_TOOLTIP_CROP;Crop selection (Shortcut key: C)
TOOLBAR_TOOLTIP_HAND;Hand tool (Shortcut key: N)
TOOLBAR_TOOLTIP_STRAIGHTEN;Straight line selection (Shortcut key: S)
TOOLBAR_TOOLTIP_WB;Spot white balance (Shortcut key: W)
TOOLBAR_TOOLTIP_CROP;Crop selection <b>C</b>
TOOLBAR_TOOLTIP_HAND;Hand tool <b>N</b>
TOOLBAR_TOOLTIP_STRAIGHTEN;Straight line selection <b>S</b>
TOOLBAR_TOOLTIP_WB;Spot white balance <b>W</b>
TP_CACORRECTION_BLUE;Blue
TP_CACORRECTION_LABEL;C/A Correction
TP_CACORRECTION_RED;Red
@@ -641,7 +641,7 @@ GENERAL_UNCHANGED;(Unchanged)
MAIN_MSG_PLACES;Places
GENERAL_BEFORE;Before
GENERAL_AFTER;After
MAIN_TOOLTIP_TOGGLE;Toggle before/after view
MAIN_TOOLTIP_TOGGLE;Toggle before/after view <b>B</b>
MAIN_BUTTON_PUTTOQUEUE;Put to queue
MAIN_MSG_NAVIGATOR;Navigator
FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives
@@ -678,10 +678,10 @@ FILEBROWSER_CURRENT_NAME;Current name:
FILEBROWSER_NEW_NAME;New name:
FILEBROWSER_USETEMPLATE;Use template:
FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
ZOOMPANEL_ZOOMIN;Zoom In
ZOOMPANEL_ZOOMOUT;Zoom Out
ZOOMPANEL_ZOOM100;Zoom to 100%
ZOOMPANEL_ZOOMFITSCREEN;Fit to screen
ZOOMPANEL_ZOOMIN;Zoom In <b>+</b>
ZOOMPANEL_ZOOMOUT;Zoom Out <b>-</b>
ZOOMPANEL_ZOOM100;Zoom to 100% <b>1</b>
ZOOMPANEL_ZOOMFITSCREEN;Fit to screen <b>F</b>
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
ZOOMPANEL_100;(100%)
@@ -714,3 +714,10 @@ HISTOGRAM_BUTTON_L;L
###
CURVEEDITOR_NURBS;Control cage
###
MAIN_BUTTON_SAVE_TOOLTIP;Save current image <b>Ctrl+S</b>
MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue <b>Ctrl+Q</b>
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>

View File

@@ -67,10 +67,13 @@ EditorPanel::EditorPanel () : parent(NULL), beforeIarea(NULL), beforePreviewHand
Gtk::Image* infoimg = Gtk::manage (new Gtk::Image (argv0+"/images/info.png"));
info->add (*infoimg);
info->set_relief(Gtk::RELIEF_NONE);
info->set_tooltip_text (M("MAIN_TOOLTIP_QINFO"));
info->set_tooltip_markup (M("MAIN_TOOLTIP_QINFO"));
beforeAfter = Gtk::manage (new Gtk::ToggleButton (M("MAIN_TOGGLE_BEFORE_AFTER")));
beforeAfter->set_tooltip_text (M("MAIN_TOOLTIP_TOGGLE"));
beforeAfter = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* beforeAfterIcon = Gtk::manage (new Gtk::Image (argv0+"/images/beforeafter.png"));
beforeAfter->add(*beforeAfterIcon);
beforeAfter->set_relief(Gtk::RELIEF_NONE);
beforeAfter->set_tooltip_markup (M("MAIN_TOOLTIP_TOGGLE"));
Gtk::VSeparator* vsept = Gtk::manage (new Gtk::VSeparator ());
@@ -88,7 +91,7 @@ EditorPanel::EditorPanel () : parent(NULL), beforeIarea(NULL), beforePreviewHand
hidehp->add (*hidehpBox);
hidehp->set_relief(Gtk::RELIEF_NONE);
hidehp->set_active (options.showHistory);
hidehp->set_tooltip_text (M("MAIN_TOOLTIP_HIDEHP"));
hidehp->set_tooltip_markup (M("MAIN_TOOLTIP_HIDEHP"));
Gtk::VSeparator* vsepcl = Gtk::manage (new Gtk::VSeparator ());
Gtk::VSeparator* vsepz2 = Gtk::manage (new Gtk::VSeparator ());
@@ -125,18 +128,35 @@ EditorPanel::EditorPanel () : parent(NULL), beforeIarea(NULL), beforePreviewHand
// main notebook
vboxright->pack_start (*tpc->toolPanelNotebook);
// buttons & status
// Save buttons
Gtk::HBox* iops = Gtk::manage (new Gtk::HBox ());
saveimgas = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_SAVE")));
saveimgas->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-save"), Gtk::ICON_SIZE_BUTTON)));
queueimg = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_PUTTOQUEUE")));
queueimg->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-execute"), Gtk::ICON_SIZE_BUTTON)));
sendtogimp = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_SENDTOEDITOR")));
sendtogimp->set_image (*Gtk::manage(new Gtk::Image (argv0+"/images/gimp.png")));
Gtk::HBox * saveButtonBox = Gtk::manage(new Gtk::HBox());
saveButtonBox->pack_start(*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-save"), Gtk::ICON_SIZE_BUTTON)), Gtk::PACK_SHRINK, 2);
saveButtonBox->pack_start(*Gtk::manage (new Gtk::Label (M("MAIN_BUTTON_SAVE"))), Gtk::PACK_SHRINK, 2);
saveimgas = Gtk::manage (new Gtk::Button ());
saveimgas->add(*saveButtonBox);
saveimgas->set_tooltip_markup(M("MAIN_BUTTON_SAVE_TOOLTIP"));
Gtk::HBox * queueButtonBox = Gtk::manage(new Gtk::HBox());
queueButtonBox->pack_start(*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-execute"), Gtk::ICON_SIZE_BUTTON)), Gtk::PACK_SHRINK, 2);
queueButtonBox->pack_start(*Gtk::manage (new Gtk::Label (M("MAIN_BUTTON_PUTTOQUEUE"))), Gtk::PACK_SHRINK, 2);
queueimg = Gtk::manage (new Gtk::Button ());
queueimg->add(*queueButtonBox);
queueimg->set_tooltip_markup(M("MAIN_BUTTON_PUTTOQUEUE_TOOLTIP"));
Gtk::HBox * sendToEditorButtonBox = Gtk::manage(new Gtk::HBox());
sendToEditorButtonBox->pack_start(*Gtk::manage (new Gtk::Image (argv0+"/images/gimp.png")), Gtk::PACK_SHRINK, 2);
sendToEditorButtonBox->pack_start(*Gtk::manage (new Gtk::Label (M("MAIN_BUTTON_SENDTOEDITOR"))), Gtk::PACK_SHRINK, 2);
sendtogimp = Gtk::manage (new Gtk::Button ());
sendtogimp->add(*sendToEditorButtonBox);
sendtogimp->set_tooltip_markup(M("MAIN_BUTTON_SENDTOEDITOR_TOOLTIP"));
iops->pack_start (*saveimgas, Gtk::PACK_SHRINK);
iops->pack_start (*queueimg, Gtk::PACK_SHRINK);
iops->pack_start (*sendtogimp, Gtk::PACK_SHRINK);
// Status box
statusBox = Gtk::manage (new Gtk::HBox ());
progressLabel = Gtk::manage (new Gtk::Label(""));
statusBox->pack_start (*progressLabel);
@@ -147,6 +167,7 @@ EditorPanel::EditorPanel () : parent(NULL), beforeIarea(NULL), beforePreviewHand
statusBox->pack_end (*green, Gtk::PACK_SHRINK, 4);
iops->pack_start(*statusBox, Gtk::PACK_SHRINK, 4);
// Zoom panel
iops->pack_end (*iarea->imageArea->zoomPanel, Gtk::PACK_SHRINK, 1);
iops->pack_end (*vsepz2, Gtk::PACK_SHRINK, 2);
@@ -471,36 +492,77 @@ void EditorPanel::hideHistoryActivated () {
bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
if (event->keyval==GDK_H || event->keyval==GDK_h) {
hidehp->set_active (!hidehp->get_active());
return true;
bool ctrl = event->state & GDK_CONTROL_MASK;
bool shift = event->state & GDK_SHIFT_MASK;
if (!ctrl) {
switch(event->keyval) {
case GDK_h:
case GDK_H:
hidehp->set_active (!hidehp->get_active());
return true;
case GDK_w:
case GDK_W:
tpc->getToolBar()->wb_pressed ();
return true;
case GDK_c:
case GDK_C:
tpc->getToolBar()->crop_pressed ();
return true;
case GDK_s:
case GDK_S:
tpc->getToolBar()->stra_pressed ();
return true;
case GDK_n:
case GDK_N:
tpc->getToolBar()->hand_pressed ();
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:
case GDK_F:
iarea->imageArea->zoomPanel->zoomFitClicked();
return true;
}
}
else if ((event->keyval==GDK_Z || event->keyval==GDK_z) && event->state & GDK_CONTROL_MASK && !(event->state & GDK_SHIFT_MASK)) {
history->undo ();
return true;
else {
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;
}
}
else if ((event->keyval==GDK_Z || event->keyval==GDK_z) && event->state & GDK_CONTROL_MASK && event->state & GDK_SHIFT_MASK) {
history->redo ();
return true;
}
else if (event->keyval==GDK_w || event->keyval==GDK_W) {
tpc->getToolBar()->wb_pressed ();
return true;
}
else if (event->keyval==GDK_c || event->keyval==GDK_C) {
tpc->getToolBar()->crop_pressed ();
return true;
}
else if (event->keyval==GDK_s || event->keyval==GDK_S) {
tpc->getToolBar()->stra_pressed ();
return true;
}
else if (event->keyval==GDK_n || event->keyval==GDK_N) {
tpc->getToolBar()->hand_pressed ();
return true;
}
else
return false;
return false;
}
void EditorPanel::procParamsChanged (Thumbnail* thm, int whoChangedIt) {

View File

@@ -68,10 +68,10 @@ ToolBar::ToolBar () : listener (NULL) {
cropConn = cropTool->signal_toggled().connect( sigc::mem_fun(*this, &ToolBar::crop_pressed));
straConn = straTool->signal_toggled().connect( sigc::mem_fun(*this, &ToolBar::stra_pressed));
handTool->set_tooltip_text (M("TOOLBAR_TOOLTIP_HAND"));
wbTool->set_tooltip_text (M("TOOLBAR_TOOLTIP_WB"));
cropTool->set_tooltip_text (M("TOOLBAR_TOOLTIP_CROP"));
straTool->set_tooltip_text (M("TOOLBAR_TOOLTIP_STRAIGHTEN"));
handTool->set_tooltip_markup (M("TOOLBAR_TOOLTIP_HAND"));
wbTool->set_tooltip_markup (M("TOOLBAR_TOOLTIP_WB"));
cropTool->set_tooltip_markup (M("TOOLBAR_TOOLTIP_CROP"));
straTool->set_tooltip_markup (M("TOOLBAR_TOOLTIP_STRAIGHTEN"));
}
//

View File

@@ -74,11 +74,11 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
zoom11->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::zoom11Clicked) );
newCrop->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::newCropClicked) );
zoomIn->set_tooltip_text (M("ZOOMPANEL_ZOOMIN"));
zoomOut->set_tooltip_text (M("ZOOMPANEL_ZOOMOUT"));
zoom11->set_tooltip_text (M("ZOOMPANEL_ZOOM100"));
zoomFit->set_tooltip_text (M("ZOOMPANEL_ZOOMFITSCREEN"));
newCrop->set_tooltip_text (M("ZOOMPANEL_NEWCROPWINDOW"));
zoomIn->set_tooltip_markup (M("ZOOMPANEL_ZOOMIN"));
zoomOut->set_tooltip_markup (M("ZOOMPANEL_ZOOMOUT"));
zoom11->set_tooltip_markup (M("ZOOMPANEL_ZOOM100"));
zoomFit->set_tooltip_markup (M("ZOOMPANEL_ZOOMFITSCREEN"));
newCrop->set_tooltip_markup (M("ZOOMPANEL_NEWCROPWINDOW"));
zoomLabel->set_text (M("ZOOMPANEL_100"));
}