diff --git a/rtdata/languages/default b/rtdata/languages/default index 29a14a48a..2c1baca6e 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -60,6 +60,7 @@ FILEBROWSER_COPYPROFILE;Copy profile FILEBROWSER_CURRENT_NAME;Current name: 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_EMPTYTRASH;Empty Trash FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash FILEBROWSER_EXIFFILTERAPPLY;Apply @@ -83,6 +84,7 @@ FILEBROWSER_POPUPRANK3;Rank 3 FILEBROWSER_POPUPRANK4;Rank 4 FILEBROWSER_POPUPRANK5;Rank 5 FILEBROWSER_POPUPREMOVE;Remove from filesystem +FILEBROWSER_POPUPREMOVEINCLPROC;Remove from filesystem incl. batch processed FILEBROWSER_POPUPRENAME;Rename FILEBROWSER_POPUPSELECTALL;Select all FILEBROWSER_POPUPTRASH;Move to trash diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index a90cdd15b..cb91f2a45 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -2,6 +2,7 @@ * This file is part of RawTherapee. * * Copyright (c) 2004-2010 Gabor Horvath + * Copyright (c) 2011 Oliver Duis * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,6 +58,7 @@ FileBrowser::FileBrowser () pmenu->attach (*(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++; pmenu->attach (*(rename = new Gtk::MenuItem (M("FILEBROWSER_POPUPRENAME"))), 0, 1, p, p+1); p++; pmenu->attach (*(remove = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVE"))), 0, 1, p, p+1); p++; + pmenu->attach (*(removeInclProc = new Gtk::MenuItem (M("FILEBROWSER_POPUPREMOVEINCLPROC"))), 0, 1, p, p+1); p++; pmenu->attach (*(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++; pmenu->attach (*(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p+1); p++; pmenu->attach (*(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++; @@ -95,6 +97,7 @@ FileBrowser::FileBrowser () develop->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), develop)); rename->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), rename)); remove->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), remove)); + removeInclProc->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), removeInclProc)); selall->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), selall)); selectDF->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), selectDF)); autoDF->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), autoDF)); @@ -286,7 +289,9 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m) { tbl->openRequested (entries); } else if (m==remove) - tbl->deleteRequested (mselected); + tbl->deleteRequested (mselected, false); + else if (m==removeInclProc) + tbl->deleteRequested (mselected, true); else if (m==trash) toTrashRequested (mselected); else if (m==untrash) diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index dce75cca0..ac084f4f9 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -34,7 +34,7 @@ class FileBrowserListener { virtual void openRequested (std::vector tbe) {} virtual void developRequested (std::vector tbe) {} virtual void renameRequested (std::vector tbe) {} - virtual void deleteRequested (std::vector tbe) {} + virtual void deleteRequested (std::vector tbe, bool inclBatchProcessed) {} virtual void selectionChanged (std::vector tbe) {} }; @@ -56,6 +56,7 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener { Gtk::MenuItem* develop; Gtk::MenuItem* rename; Gtk::MenuItem* remove; + Gtk::MenuItem* removeInclProc; Gtk::MenuItem* open; Gtk::MenuItem* selall; Gtk::MenuItem* selectDF; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 4c86af4ce..a46b88667 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -27,6 +27,7 @@ #include #include #include +#include #define CHECKTIME 2000 @@ -516,13 +517,13 @@ void FileCatalog::openRequested (std::vector tmb) { g_idle_add (fcopenimg, params); } -void FileCatalog::deleteRequested (std::vector tbe) { +void FileCatalog::deleteRequested (std::vector tbe, bool inclBatchProcessed) { if (tbe.size()==0) return; Gtk::MessageDialog msd (M("FILEBROWSER_DELETEDLGLABEL"), false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, true); - msd.set_secondary_text(Glib::ustring::compose (M("FILEBROWSER_DELETEDLGMSG"), tbe.size())); + msd.set_secondary_text(Glib::ustring::compose ( inclBatchProcessed ? M("FILEBROWSER_DELETEDLGMSGINCLPROC") : M("FILEBROWSER_DELETEDLGMSG"), tbe.size())); if (msd.run()==Gtk::RESPONSE_YES) { for (unsigned int i=0; i tbe) { // delete .thm file safe_g_remove (Glib::ustring(removeExtension(fname)+".thm")); safe_g_remove (Glib::ustring(removeExtension(fname)+".THM")); + + if (inclBatchProcessed) { + Glib::ustring procfName = Glib::ustring::compose ("%1.%2", BatchQueue::calcAutoFileNameBase(fname), options.saveFormat.format); + if (safe_file_test (procfName, Glib::FILE_TEST_EXISTS)) safe_g_remove (procfName); + } } redrawAll (); } @@ -896,7 +902,7 @@ void FileCatalog::emptyTrash () { for (size_t i=0; ithumbnail->getStage()==1) toDel.push_back (((FileBrowserEntry*)t[i])); - deleteRequested (toDel); + deleteRequested (toDel, false); trashChanged(); } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 798760488..434f3b60e 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -161,7 +161,7 @@ class FileCatalog : public Gtk::VBox, void refreshHeight (); void openRequested (std::vector tbe); - void deleteRequested (std::vector tbe); + void deleteRequested (std::vector tbe, bool inclBatchProcessed); void developRequested (std::vector tbe); void renameRequested (std::vector tbe); void selectionChanged (std::vector tbe);