diff --git a/rtdata/languages/default b/rtdata/languages/default index 92c0ec959..667b8acb2 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -84,22 +84,22 @@ FILEBROWSER_PROCESSINGSETTINGS;Settings FILEBROWSER_PROCESSINGSETTINGSHINT;Set the file format and output directory FILEBROWSER_RENAMEDLGLABEL;Rename file FILEBROWSER_RENAMEDLGMSG;Rename file "%1" to: -FILEBROWSER_SHOWDIRHINT;Show all images of the directory +FILEBROWSER_SHOWDIRHINT;Show all images of the directory D FILEBROWSER_SHOWQUEUEHINT;Show content of the processing queue -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images +FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star 1 +FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star 2 +FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star 3 +FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star 4 +FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star 5 +FILEBROWSER_SHOWTRASHHINT;Show content of the trash T +FILEBROWSER_SHOWUNRANKHINT;Show unranked images ` FILEBROWSER_STARTPROCESSING;Start processing FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue FILEBROWSER_STOPPROCESSING;Stop processing FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size +FILEBROWSER_ZOOMINHINT;Increase thumbnail size + +FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size - GENERAL_ABOUT;About GENERAL_CANCEL;Cancel GENERAL_DISABLE;Disable @@ -708,7 +708,7 @@ NAVIGATOR_H_VALUE;H = %1 NAVIGATOR_S_VALUE;S = %1 NAVIGATOR_V_VALUE;V = %1 NAVIGATOR_XY_NA;x = n/a, y = n/a -FILEBROWSER_SHOWEXIFINFO;Show EXIF info +FILEBROWSER_SHOWEXIFINFO;Show EXIF info i SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF HISTOGRAM_BUTTON_R;R HISTOGRAM_BUTTON_G;G diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 3c1e00190..84fb23465 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -501,22 +501,6 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) { 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()); @@ -561,6 +545,9 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) { return true; } } + + if(tpc->getToolBar()->handleShortcutKey(event)) + return true; return false; } diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 0c17312da..f5a996ef6 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -57,7 +57,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist // construct trash panel with the extra "empty trash" button trashButtonBox = new Gtk::VBox; Gtk::Button* emptyT = new Gtk::Button (M("FILEBROWSER_EMPTYTRASH")); - emptyT->set_tooltip_text (M("FILEBROWSER_EMPTYTRASHHINT")); + emptyT->set_tooltip_markup (M("FILEBROWSER_EMPTYTRASHHINT")); emptyT->set_image (*(new Gtk::Image (Gtk::StockID("gtk-delete"), Gtk::ICON_SIZE_BUTTON))); emptyT->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::emptyTrash)); trashButtonBox->pack_start (*emptyT, Gtk::PACK_SHRINK, 4); @@ -73,7 +73,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist bDir->set_active (true); bDir->set_image (*(new Gtk::Image (argv0+"/images/folder.png"))); bDir->set_relief (Gtk::RELIEF_NONE); - bDir->set_tooltip_text (M("FILEBROWSER_SHOWDIRHINT")); + bDir->set_tooltip_markup (M("FILEBROWSER_SHOWDIRHINT")); bDir->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false); bCateg[0] = bDir->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bDir)); buttonBar->pack_start (*bDir, Gtk::PACK_SHRINK); @@ -83,7 +83,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist bUnRanked->set_active (false); bUnRanked->set_image (*(new Gtk::Image (argv0+"/images/unrated.png"))); bUnRanked->set_relief (Gtk::RELIEF_NONE); - bUnRanked->set_tooltip_text (M("FILEBROWSER_SHOWUNRANKHINT")); + bUnRanked->set_tooltip_markup (M("FILEBROWSER_SHOWUNRANKHINT")); bCateg[1] = bUnRanked->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bUnRanked)); buttonBar->pack_start (*bUnRanked, Gtk::PACK_SHRINK); bUnRanked->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false); @@ -100,11 +100,11 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist bCateg[i+2] = bRank[i]->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bRank[i])); bRank[i]->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false); } - bRank[0]->set_tooltip_text (M("FILEBROWSER_SHOWRANK1HINT")); - bRank[1]->set_tooltip_text (M("FILEBROWSER_SHOWRANK2HINT")); - bRank[2]->set_tooltip_text (M("FILEBROWSER_SHOWRANK3HINT")); - bRank[3]->set_tooltip_text (M("FILEBROWSER_SHOWRANK4HINT")); - bRank[4]->set_tooltip_text (M("FILEBROWSER_SHOWRANK5HINT")); + bRank[0]->set_tooltip_markup (M("FILEBROWSER_SHOWRANK1HINT")); + bRank[1]->set_tooltip_markup (M("FILEBROWSER_SHOWRANK2HINT")); + bRank[2]->set_tooltip_markup (M("FILEBROWSER_SHOWRANK3HINT")); + bRank[3]->set_tooltip_markup (M("FILEBROWSER_SHOWRANK4HINT")); + bRank[4]->set_tooltip_markup (M("FILEBROWSER_SHOWRANK5HINT")); buttonBar->pack_start (*(new Gtk::VSeparator), Gtk::PACK_SHRINK); iTrashEmpty = new Gtk::Image(argv0+"/images/trash-show-empty.png"); @@ -113,7 +113,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist bTrash = new Gtk::ToggleButton (); bTrash->set_image (*iTrashEmpty); bTrash->set_relief (Gtk::RELIEF_NONE); - bTrash->set_tooltip_text (M("FILEBROWSER_SHOWTRASHHINT")); + bTrash->set_tooltip_markup (M("FILEBROWSER_SHOWTRASHHINT")); bCateg[7] = bTrash->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bTrash)); bTrash->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false); buttonBar->pack_start (*bTrash, Gtk::PACK_SHRINK); @@ -129,7 +129,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist exifInfo = Gtk::manage(new Gtk::ToggleButton ()); exifInfo->set_image (*(new Gtk::Image (argv0+"/images/info.png"))); exifInfo->set_relief (Gtk::RELIEF_NONE); - exifInfo->set_tooltip_text (M("FILEBROWSER_SHOWEXIFINFO")); + exifInfo->set_tooltip_markup (M("FILEBROWSER_SHOWEXIFINFO")); exifInfo->set_active( options.showFileNames ); exifInfo->signal_toggled().connect(sigc::mem_fun(*this, &FileCatalog::exifInfoButtonToggled)); buttonBar->pack_start (*exifInfo, Gtk::PACK_SHRINK); @@ -140,13 +140,13 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : listener(NULL), fslist zoomInButton->set_image (*(new Gtk::Image (Gtk::StockID("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR))); zoomInButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomIn)); zoomInButton->set_relief (Gtk::RELIEF_NONE); - zoomInButton->set_tooltip_text (M("FILEBROWSER_ZOOMINHINT")); + zoomInButton->set_tooltip_markup (M("FILEBROWSER_ZOOMINHINT")); zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK); zoomOutButton = new Gtk::Button (); zoomOutButton->set_image (*(new Gtk::Image (Gtk::StockID("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR))); zoomOutButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomOut)); zoomOutButton->set_relief (Gtk::RELIEF_NONE); - zoomOutButton->set_tooltip_text (M("FILEBROWSER_ZOOMOUTHINT")); + zoomOutButton->set_tooltip_markup (M("FILEBROWSER_ZOOMOUTHINT")); zoomBox->pack_end (*zoomOutButton, Gtk::PACK_SHRINK); // add default panel @@ -423,7 +423,7 @@ void FileCatalog::_openImage (std::vector tmb) { if (enabled && listener!=NULL) { previewLoader.stop (); thumbImageUpdater.stop (); - for (unsigned int i=0; igetFileName())==editedFiles.end()) listener->fileSelected (tmb[i]); tmb[i]->decreaseRef (); @@ -453,7 +453,7 @@ void FileCatalog::openRequested (std::vector tmb) { FCOIParams* params = new FCOIParams; params->catalog = this; params->tmb = tmb; - for (unsigned int i=0; iincreaseRef (); g_idle_add (fcopenimg, params); } @@ -492,7 +492,7 @@ void FileCatalog::developRequested (std::vector tbe) { if (listener) { thumbImageUpdater.stop (); - for (unsigned int i=0; ithumbnail->getProcParams(); rtengine::ProcessingJob* pjob = rtengine::ProcessingJob::create (tbe[i]->filename, tbe[i]->thumbnail->getType()==FT_Raw, params); double tmpscale; @@ -519,7 +519,7 @@ void FileCatalog::renameRequested (std::vector tbe) { RenameDialog* renameDlg = new RenameDialog ((Gtk::Window*)get_toplevel()); - for (unsigned int i=0; iinitName (Glib::path_get_basename (tbe[i]->filename), tbe[i]->thumbnail->getCacheImageData()); Glib::ustring ofname = tbe[i]->filename; @@ -743,16 +743,16 @@ int FileCatalog::reparseDirectory () { // check if a thumbnailed file has been deleted const std::vector& t = fileBrowser->getEntries (); std::vector fileNamesToDel; - for (unsigned int i=0; ifilename, Glib::FILE_TEST_EXISTS)) fileNamesToDel.push_back (t[i]->filename); - for (unsigned int i=0; idelEntry (fileNamesToDel[i]); cacheMgr.deleteEntry (fileNamesToDel[i]); } // check if a new file has been added - for (unsigned int i=0; i t = fileBrowser->getEntries (); std::vector toDel; - for (unsigned int i=0; ithumbnail->getStage()==1) toDel.push_back (((FileBrowserEntry*)t[i])); deleteRequested (toDel); @@ -846,7 +846,7 @@ void FileCatalog::emptyTrash () { bool FileCatalog::trashIsEmpty () { const std::vector t = fileBrowser->getEntries (); - for (unsigned int i=0; ithumbnail->getStage()==1) return false; @@ -908,3 +908,74 @@ void FileCatalog::trashChanged () { bTrash->set_image(*iTrashFull); } } + +bool FileCatalog::handleShortcutKey (GdkEventKey* event) { + + bool ctrl = event->state & GDK_CONTROL_MASK; + bool shift = event->state & GDK_SHIFT_MASK; + + if (!ctrl) { + switch(event->keyval) { + case GDK_i: + case GDK_I: + exifInfo->set_active (!exifInfo->get_active()); + return true; + case GDK_plus: + case GDK_equal: + zoomIn(); + return true; + case GDK_minus: + case GDK_underscore: + zoomOut(); + return true; + case GDK_1: + categoryButtonToggled(bRank[0]); + return true; + case GDK_2: + categoryButtonToggled(bRank[1]); + return true; + case GDK_3: + categoryButtonToggled(bRank[2]); + return true; + case GDK_4: + categoryButtonToggled(bRank[3]); + return true; + case GDK_5: + categoryButtonToggled(bRank[4]); + return true; + 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; + } + } + 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; + } + } + + return false; +} + diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 80f752203..a23e5b893 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -192,6 +192,8 @@ class FileCatalog : public Gtk::VBox, void openNextImage () { fileBrowser->openNextImage(); } void openPrevImage () { fileBrowser->openPrevImage(); } + + bool handleShortcutKey (GdkEventKey* event); }; #endif diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc index ecbb5bb11..00368f811 100644 --- a/rtgui/filepanel.cc +++ b/rtgui/filepanel.cc @@ -193,3 +193,27 @@ void FilePanel::optionsChanged () { tpc->optionsChanged (); fileCatalog->refreshAll (); } + +bool FilePanel::handleShortcutKey (GdkEventKey* event) { + + bool ctrl = event->state & GDK_CONTROL_MASK; + bool shift = event->state & GDK_SHIFT_MASK; + + if (!ctrl) { + switch(event->keyval) { + } + } + else { + switch (event->keyval) { + } + } + + if(tpc->getToolBar()->handleShortcutKey(event)) + return true; + + if(fileCatalog->handleShortcutKey(event)) + return true; + + return false; +} + diff --git a/rtgui/filepanel.h b/rtgui/filepanel.h index 3e0b30e93..70bb7f37e 100644 --- a/rtgui/filepanel.h +++ b/rtgui/filepanel.h @@ -72,6 +72,8 @@ class FilePanel : public Gtk::HPaned, void optionsChanged (); bool imageLoaded( Thumbnail* thm, ProgressConnector * ); + + bool handleShortcutKey (GdkEventKey* event); }; #endif diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 7e1967225..becca32d7 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -159,7 +159,8 @@ bool RTWindow::keyPressed (GdkEventKey* event) { toggle_fullscreen(); } - if (mainNB->get_nth_page (mainNB->get_current_page()) == fpanel) { + if (mainNB->get_current_page() == mainNB->page_num(*fpanel)) { + return fpanel->handleShortcutKey (event); } // else if (mainNB->get_nth_page (mainNB->get_current_page()) == bqpanel) { // } diff --git a/rtgui/toolbar.cc b/rtgui/toolbar.cc index 1f6f9dc69..cc3830313 100644 --- a/rtgui/toolbar.cc +++ b/rtgui/toolbar.cc @@ -193,3 +193,37 @@ void ToolBar::stra_pressed () { if (listener) listener->toolSelected (TMStraighten); } + +bool ToolBar::handleShortcutKey (GdkEventKey* event) { + + bool ctrl = event->state & GDK_CONTROL_MASK; + bool shift = event->state & GDK_SHIFT_MASK; + + if (!ctrl) { + switch(event->keyval) { + case GDK_w: + case GDK_W: + wb_pressed (); + return true; + case GDK_c: + case GDK_C: + crop_pressed (); + return true; + case GDK_s: + case GDK_S: + stra_pressed (); + return true; + case GDK_n: + case GDK_N: + hand_pressed (); + return true; + } + } + else { + switch (event->keyval) { + } + } + + return false; +} + diff --git a/rtgui/toolbar.h b/rtgui/toolbar.h index 6d5ac1bab..def99f3d1 100644 --- a/rtgui/toolbar.h +++ b/rtgui/toolbar.h @@ -55,6 +55,8 @@ class ToolBar : public Gtk::HBox { void wb_pressed (); void crop_pressed (); void stra_pressed (); + + bool handleShortcutKey (GdkEventKey* event); }; #endif