External programs plugger
see issue 1323
This commit is contained in:
@@ -51,6 +51,8 @@ EXIFPANEL_RESETALL;Alle zurücksetzen
|
|||||||
EXIFPANEL_RESETHINT;Gewählte Attribute zu den ursprünglichen Werten zurücksetzen
|
EXIFPANEL_RESETHINT;Gewählte Attribute zu den ursprünglichen Werten zurücksetzen
|
||||||
EXIFPANEL_RESET;Zurücksetzen
|
EXIFPANEL_RESET;Zurücksetzen
|
||||||
EXIFPANEL_SUBDIRECTORY;Unterverzeichnis
|
EXIFPANEL_SUBDIRECTORY;Unterverzeichnis
|
||||||
|
EXTPROGTARGET_1;Raw
|
||||||
|
EXTPROGTARGET_2;stapelverarbeitet
|
||||||
FILEBROWSER_ADDDELTEMPLATE;Vorlagen hinzu/entfernen...
|
FILEBROWSER_ADDDELTEMPLATE;Vorlagen hinzu/entfernen...
|
||||||
FILEBROWSER_APPLYPROFILE;Profil anwenden
|
FILEBROWSER_APPLYPROFILE;Profil anwenden
|
||||||
FILEBROWSER_APPLYPROFILE_PARTIAL;Profil selektiv anwenden
|
FILEBROWSER_APPLYPROFILE_PARTIAL;Profil selektiv anwenden
|
||||||
@@ -77,10 +79,12 @@ FILEBROWSER_EXIFFILTERAPPLY;Anwenden
|
|||||||
FILEBROWSER_EXIFFILTERLABEL;Exif Filter
|
FILEBROWSER_EXIFFILTERLABEL;Exif Filter
|
||||||
FILEBROWSER_EXIFFILTERSETTINGSHINT;Ändern der Einstellungen des Exif Filters
|
FILEBROWSER_EXIFFILTERSETTINGSHINT;Ändern der Einstellungen des Exif Filters
|
||||||
FILEBROWSER_EXIFFILTERSETTINGS;Einstellungen
|
FILEBROWSER_EXIFFILTERSETTINGS;Einstellungen
|
||||||
|
FILEBROWSER_EXTPROGMENU;Öffnen mit
|
||||||
FILEBROWSER_FLATFIELD;Weißbild
|
FILEBROWSER_FLATFIELD;Weißbild
|
||||||
FILEBROWSER_MOVETODARKFDIR;In Dunkelbild-Verzeichnis verschieben
|
FILEBROWSER_MOVETODARKFDIR;In Dunkelbild-Verzeichnis verschieben
|
||||||
FILEBROWSER_MOVETOFLATFIELDDIR;In Weißbild-Verzeichnis verschieben
|
FILEBROWSER_MOVETOFLATFIELDDIR;In Weißbild-Verzeichnis verschieben
|
||||||
FILEBROWSER_NEW_NAME;Neuer Name:
|
FILEBROWSER_NEW_NAME;Neuer Name:
|
||||||
|
FILEBROWSER_OPENDEFAULTVIEWER;Windows Standard Betracher (stapelverarbeitet)
|
||||||
FILEBROWSER_PARTIALPASTEPROFILE;Profil selektiv einfügen
|
FILEBROWSER_PARTIALPASTEPROFILE;Profil selektiv einfügen
|
||||||
FILEBROWSER_PASTEPROFILE;Profil einfügen
|
FILEBROWSER_PASTEPROFILE;Profil einfügen
|
||||||
FILEBROWSER_POPUPCANCELJOB;Job abbrechen
|
FILEBROWSER_POPUPCANCELJOB;Job abbrechen
|
||||||
@@ -446,6 +450,7 @@ MAIN_MSG_EMPTYFILENAME;Dateiname fehlt!
|
|||||||
MAIN_MSG_ERRORDURINGIMAGESAVING;Fehler beim Speichern des Bildes
|
MAIN_MSG_ERRORDURINGIMAGESAVING;Fehler beim Speichern des Bildes
|
||||||
MAIN_MSG_EXITJOBSINQUEUEINFO;Unverarbeitete Bilder in der Warteschlange gehen beim Verlassen der Anwendung verloren.
|
MAIN_MSG_EXITJOBSINQUEUEINFO;Unverarbeitete Bilder in der Warteschlange gehen beim Verlassen der Anwendung verloren.
|
||||||
MAIN_MSG_EXITJOBSINQUEUEQUEST;Wollen Sie die Anwendung wirklich schließen? Es sind noch unverarbeitete Bilder in der Warteschlange.
|
MAIN_MSG_EXITJOBSINQUEUEQUEST;Wollen Sie die Anwendung wirklich schließen? Es sind noch unverarbeitete Bilder in der Warteschlange.
|
||||||
|
MAIN_MSG_IMAGEUNPROCESSED;Für diese Funktion müssen erst alle Bilder stapelverarbeitet sein.
|
||||||
MAIN_MSG_JOBSINQUEUE;Job in Bearbeitung
|
MAIN_MSG_JOBSINQUEUE;Job in Bearbeitung
|
||||||
MAIN_MSG_NAVIGATOR;Navigator
|
MAIN_MSG_NAVIGATOR;Navigator
|
||||||
MAIN_MSG_PLACES;Orte
|
MAIN_MSG_PLACES;Orte
|
||||||
@@ -638,6 +643,7 @@ PREFERENCES_INTENT_SATURATION;Sättigung
|
|||||||
PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Voransicht aus RAW, wenn noch nicht editiert
|
PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Voransicht aus RAW, wenn noch nicht editiert
|
||||||
PREFERENCES_LANGAUTODETECT;Betriebssystem-Einstellung verwenden
|
PREFERENCES_LANGAUTODETECT;Betriebssystem-Einstellung verwenden
|
||||||
PREFERENCES_LIVETHUMBNAILS;Live Voransichten (langsamer)
|
PREFERENCES_LIVETHUMBNAILS;Live Voransichten (langsamer)
|
||||||
|
PREFERENCES_MENUGROUPEXTPROGS;Untermenü "Öffnen mit"
|
||||||
PREFERENCES_MENUGROUPFILEOPERATIONS;Untermenü Dateioperationen
|
PREFERENCES_MENUGROUPFILEOPERATIONS;Untermenü Dateioperationen
|
||||||
PREFERENCES_MENUGROUPLABEL;Untermenü Farbmarkierung
|
PREFERENCES_MENUGROUPLABEL;Untermenü Farbmarkierung
|
||||||
PREFERENCES_MENUGROUPPROFILEOPERATIONS;Untermenü Profiloperationen
|
PREFERENCES_MENUGROUPPROFILEOPERATIONS;Untermenü Profiloperationen
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ EXPORT_MAXWIDTH;Maximum Width:
|
|||||||
EXPORT_PUTTOQUEUEFAST; Put to Queue for Fast Export
|
EXPORT_PUTTOQUEUEFAST; Put to Queue for Fast Export
|
||||||
EXPORT_RAW_DMETHOD;Demosaic Method
|
EXPORT_RAW_DMETHOD;Demosaic Method
|
||||||
EXPORT_RESIZEMETHOD;Resize Method
|
EXPORT_RESIZEMETHOD;Resize Method
|
||||||
|
EXTPROGTARGET_1;raw
|
||||||
|
EXTPROGTARGET_2;queue-processed
|
||||||
FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
|
FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
|
||||||
FILEBROWSER_APPLYPROFILE;Apply profile
|
FILEBROWSER_APPLYPROFILE;Apply profile
|
||||||
FILEBROWSER_APPLYPROFILE_PARTIAL;Apply profile (partial)
|
FILEBROWSER_APPLYPROFILE_PARTIAL;Apply profile (partial)
|
||||||
@@ -104,10 +106,12 @@ FILEBROWSER_EXIFFILTERAPPLY;Apply
|
|||||||
FILEBROWSER_EXIFFILTERLABEL;Exif Filter
|
FILEBROWSER_EXIFFILTERLABEL;Exif Filter
|
||||||
FILEBROWSER_EXIFFILTERSETTINGSHINT;Change settings of the Exif Filter
|
FILEBROWSER_EXIFFILTERSETTINGSHINT;Change settings of the Exif Filter
|
||||||
FILEBROWSER_EXIFFILTERSETTINGS;Setup
|
FILEBROWSER_EXIFFILTERSETTINGS;Setup
|
||||||
|
FILEBROWSER_EXTPROGMENU;Open with
|
||||||
FILEBROWSER_FLATFIELD;Flat Field
|
FILEBROWSER_FLATFIELD;Flat Field
|
||||||
FILEBROWSER_MOVETODARKFDIR;Move to dark frames directory
|
FILEBROWSER_MOVETODARKFDIR;Move to dark frames directory
|
||||||
FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat fields directory
|
FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat fields directory
|
||||||
FILEBROWSER_NEW_NAME;New name:
|
FILEBROWSER_NEW_NAME;New name:
|
||||||
|
FILEBROWSER_OPENDEFAULTVIEWER;Windows Default Viewer (queue-processed)
|
||||||
FILEBROWSER_PARTIALPASTEPROFILE;Partial paste
|
FILEBROWSER_PARTIALPASTEPROFILE;Partial paste
|
||||||
FILEBROWSER_PASTEPROFILE;Paste profile
|
FILEBROWSER_PASTEPROFILE;Paste profile
|
||||||
FILEBROWSER_POPUPCANCELJOB;Cancel job
|
FILEBROWSER_POPUPCANCELJOB;Cancel job
|
||||||
@@ -474,6 +478,7 @@ MAIN_MSG_EMPTYFILENAME;Filename unspecified!
|
|||||||
MAIN_MSG_ERRORDURINGIMAGESAVING;Error during image saving
|
MAIN_MSG_ERRORDURINGIMAGESAVING;Error during image saving
|
||||||
MAIN_MSG_EXITJOBSINQUEUEINFO;Unprocessed images in the queue will be lost on exit.
|
MAIN_MSG_EXITJOBSINQUEUEINFO;Unprocessed images in the queue will be lost on exit.
|
||||||
MAIN_MSG_EXITJOBSINQUEUEQUEST;Are you sure you want to exit? There are unprocessed images waiting in the queue.
|
MAIN_MSG_EXITJOBSINQUEUEQUEST;Are you sure you want to exit? There are unprocessed images waiting in the queue.
|
||||||
|
MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue process first.
|
||||||
MAIN_MSG_JOBSINQUEUE;job(s) in the queue
|
MAIN_MSG_JOBSINQUEUE;job(s) in the queue
|
||||||
MAIN_MSG_NAVIGATOR;Navigator
|
MAIN_MSG_NAVIGATOR;Navigator
|
||||||
MAIN_MSG_PLACES;Places
|
MAIN_MSG_PLACES;Places
|
||||||
@@ -673,6 +678,7 @@ PREFERENCES_INTENT_SATURATION;Saturation
|
|||||||
PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show raw internal thumbnail if unedited
|
PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show raw internal thumbnail if unedited
|
||||||
PREFERENCES_LANGAUTODETECT;Use OS language setting
|
PREFERENCES_LANGAUTODETECT;Use OS language setting
|
||||||
PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
|
PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
|
||||||
|
PREFERENCES_MENUGROUPEXTPROGS;Group "Open with"
|
||||||
PREFERENCES_MENUGROUPFILEOPERATIONS;Group File Operations
|
PREFERENCES_MENUGROUPFILEOPERATIONS;Group File Operations
|
||||||
PREFERENCES_MENUGROUPLABEL;Group Labeling
|
PREFERENCES_MENUGROUPLABEL;Group Labeling
|
||||||
PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group Profile Operations
|
PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group Profile Operations
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ set (BASESOURCEFILES
|
|||||||
whitebalance.cc vignetting.cc rotate.cc distortion.cc
|
whitebalance.cc vignetting.cc rotate.cc distortion.cc
|
||||||
crophandler.cc dirbrowser.cc
|
crophandler.cc dirbrowser.cc
|
||||||
curveeditor.cc curveeditorgroup.cc diagonalcurveeditorsubgroup.cc flatcurveeditorsubgroup.cc
|
curveeditor.cc curveeditorgroup.cc diagonalcurveeditorsubgroup.cc flatcurveeditorsubgroup.cc
|
||||||
filecatalog.cc
|
filecatalog.cc extprog.cc
|
||||||
previewloader.cc rtimage.cc
|
previewloader.cc rtimage.cc
|
||||||
histogrampanel.cc history.cc imagearea.cc
|
histogrampanel.cc history.cc imagearea.cc
|
||||||
imageareapanel.cc iptcpanel.cc labcurve.cc main.cc
|
imageareapanel.cc iptcpanel.cc labcurve.cc main.cc
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "clipboard.h"
|
#include "clipboard.h"
|
||||||
#include "profilestore.h"
|
#include "profilestore.h"
|
||||||
#include "procparamchangers.h"
|
#include "procparamchangers.h"
|
||||||
|
#include "batchqueue.h"
|
||||||
#include "../rtengine/dfmanager.h"
|
#include "../rtengine/dfmanager.h"
|
||||||
#include "../rtengine/ffmanager.h"
|
#include "../rtengine/ffmanager.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
@@ -101,6 +102,55 @@ FileBrowser::FileBrowser ()
|
|||||||
|
|
||||||
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
|
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
|
||||||
|
|
||||||
|
/***********************
|
||||||
|
* external programs
|
||||||
|
* *********************/
|
||||||
|
#ifdef WIN32
|
||||||
|
Gtk::manage(miOpenDefaultViewer=new Gtk::MenuItem (M("FILEBROWSER_OPENDEFAULTVIEWER")));
|
||||||
|
#else
|
||||||
|
miOpenDefaultViewer=NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Build a list of menu items
|
||||||
|
mMenuExtProgs.clear(); amiExtProg=NULL;
|
||||||
|
for (std::list<ExtProgAction*>::iterator it=extProgStore->lActions.begin();it!=extProgStore->lActions.end();it++) {
|
||||||
|
ExtProgAction* pAct=*it;
|
||||||
|
|
||||||
|
if (pAct->target==1 || pAct->target==2) mMenuExtProgs[pAct->GetFullName()]=pAct;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attach them to menu
|
||||||
|
if (!mMenuExtProgs.empty() || miOpenDefaultViewer!=NULL) {
|
||||||
|
amiExtProg=new Gtk::MenuItem*[mMenuExtProgs.size()];
|
||||||
|
int itemNo=0;
|
||||||
|
|
||||||
|
if (options.menuGroupExtProg) {
|
||||||
|
pmenu->attach (*Gtk::manage(menuExtProg = new Gtk::MenuItem (M("FILEBROWSER_EXTPROGMENU"))), 0, 1, p, p+1); p++;
|
||||||
|
Gtk::Menu* submenuExtProg = Gtk::manage (new Gtk::Menu());
|
||||||
|
|
||||||
|
if (miOpenDefaultViewer!=NULL) {
|
||||||
|
submenuExtProg->attach (*miOpenDefaultViewer, 0, 1, p, p+1); p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (std::map<Glib::ustring, ExtProgAction*>::iterator it=mMenuExtProgs.begin();it!=mMenuExtProgs.end();it++,itemNo++) {
|
||||||
|
submenuExtProg->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p+1); p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuExtProg->show_all ();
|
||||||
|
menuExtProg->set_submenu (*submenuExtProg);
|
||||||
|
} else {
|
||||||
|
if (miOpenDefaultViewer!=NULL) {
|
||||||
|
pmenu->attach (*miOpenDefaultViewer, 0, 1, p, p+1); p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (std::map<Glib::ustring, ExtProgAction*>::iterator it=mMenuExtProgs.begin();it!=mMenuExtProgs.end();it++,itemNo++) {
|
||||||
|
pmenu->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p+1); p++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
|
||||||
|
}
|
||||||
|
|
||||||
/***********************
|
/***********************
|
||||||
* File Operations
|
* File Operations
|
||||||
* *********************/
|
* *********************/
|
||||||
@@ -188,12 +238,20 @@ FileBrowser::FileBrowser ()
|
|||||||
pasteprof->add_accelerator ("activate", pmenu->get_accel_group(), GDK_V, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
pasteprof->add_accelerator ("activate", pmenu->get_accel_group(), GDK_V, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
||||||
partpasteprof->add_accelerator ("activate", pmenu->get_accel_group(), GDK_V, Gdk::CONTROL_MASK | Gdk::SHIFT_MASK, Gtk::ACCEL_VISIBLE);
|
partpasteprof->add_accelerator ("activate", pmenu->get_accel_group(), GDK_V, Gdk::CONTROL_MASK | Gdk::SHIFT_MASK, Gtk::ACCEL_VISIBLE);
|
||||||
|
|
||||||
|
// Bind to event handlers
|
||||||
open->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), open));
|
open->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), open));
|
||||||
for (int i=0; i<6; i++)
|
for (int i=0; i<6; i++)
|
||||||
rank[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), rank[i]));
|
rank[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), rank[i]));
|
||||||
for (int i=0; i<6; i++)
|
for (int i=0; i<6; i++)
|
||||||
colorlabel[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), colorlabel[i]));
|
colorlabel[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), colorlabel[i]));
|
||||||
|
|
||||||
|
for (int i=0; i<mMenuExtProgs.size(); i++)
|
||||||
|
amiExtProg[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), amiExtProg[i]));
|
||||||
|
|
||||||
|
if (miOpenDefaultViewer!=NULL) {
|
||||||
|
miOpenDefaultViewer->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), miOpenDefaultViewer));
|
||||||
|
}
|
||||||
|
|
||||||
trash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), trash));
|
trash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), trash));
|
||||||
untrash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), untrash));
|
untrash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), untrash));
|
||||||
develop->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), develop));
|
develop->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), develop));
|
||||||
@@ -217,6 +275,7 @@ FileBrowser::FileBrowser ()
|
|||||||
FileBrowser::~FileBrowser ()
|
FileBrowser::~FileBrowser ()
|
||||||
{
|
{
|
||||||
delete pmenu;
|
delete pmenu;
|
||||||
|
delete[] amiExtProg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileBrowser::rightClicked (ThumbBrowserEntryBase* entry) {
|
void FileBrowser::rightClicked (ThumbBrowserEntryBase* entry) {
|
||||||
@@ -461,6 +520,27 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m) {
|
|||||||
colorlabelRequested (mselected, i);
|
colorlabelRequested (mselected, i);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int j=0; j<mMenuExtProgs.size(); j++) {
|
||||||
|
if (m==amiExtProg[j]) {
|
||||||
|
ExtProgAction* pAct = mMenuExtProgs[m->get_label()];
|
||||||
|
|
||||||
|
// Build vector of all file names
|
||||||
|
std::vector<Glib::ustring> selFileNames;
|
||||||
|
for (int i=0; i<selected.size(); i++) {
|
||||||
|
Glib::ustring fn=selected[i]->thumbnail->getFileName();
|
||||||
|
|
||||||
|
// Maybe batch processed version
|
||||||
|
if (pAct->target==2) fn = Glib::ustring::compose ("%1.%2", BatchQueue::calcAutoFileNameBase(fn), options.saveFormatBatch.format);
|
||||||
|
|
||||||
|
selFileNames.push_back(fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
pAct->Execute(selFileNames);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (m==open) {
|
if (m==open) {
|
||||||
std::vector<Thumbnail*> entries;
|
std::vector<Thumbnail*> entries;
|
||||||
for (int i=0; i<mselected.size(); i++)
|
for (int i=0; i<mselected.size(); i++)
|
||||||
@@ -616,6 +696,8 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m) {
|
|||||||
for (int i=0; i<mselected.size(); i++)
|
for (int i=0; i<mselected.size(); i++)
|
||||||
tbl->clearFromCacheRequested (mselected, true);
|
tbl->clearFromCacheRequested (mselected, true);
|
||||||
//queue_draw ();
|
//queue_draw ();
|
||||||
|
} else if (miOpenDefaultViewer!=NULL && m==miOpenDefaultViewer) {
|
||||||
|
openDefaultViewer(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -684,8 +766,14 @@ void FileBrowser::partPasteProfile () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FileBrowser::openDefaultViewer (int destination) {
|
void FileBrowser::openDefaultViewer (int destination) {
|
||||||
|
bool success=true;
|
||||||
if (selected.size()==1)
|
if (selected.size()==1)
|
||||||
(static_cast<FileBrowserEntry*>(selected[0]))->thumbnail->openDefaultViewer(destination);
|
success=(static_cast<FileBrowserEntry*>(selected[0]))->thumbnail->openDefaultViewer(destination);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
Gtk::MessageDialog msgd (M("MAIN_MSG_IMAGEUNPROCESSED"), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||||
|
msgd.run ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FileBrowser::keyPressed (GdkEventKey* event) {
|
bool FileBrowser::keyPressed (GdkEventKey* event) {
|
||||||
|
|||||||
@@ -20,12 +20,14 @@
|
|||||||
#define _FILEBROWSER_
|
#define _FILEBROWSER_
|
||||||
|
|
||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
#include <map>
|
||||||
#include "thumbbrowserbase.h"
|
#include "thumbbrowserbase.h"
|
||||||
#include "exiffiltersettings.h"
|
#include "exiffiltersettings.h"
|
||||||
#include "filebrowserentry.h"
|
#include "filebrowserentry.h"
|
||||||
#include "browserfilter.h"
|
#include "browserfilter.h"
|
||||||
#include "partialpastedlg.h"
|
#include "partialpastedlg.h"
|
||||||
#include "exportpanel.h"
|
#include "exportpanel.h"
|
||||||
|
#include "extprog.h"
|
||||||
|
|
||||||
class FileBrowser;
|
class FileBrowser;
|
||||||
class FileBrowserEntry;
|
class FileBrowserEntry;
|
||||||
@@ -76,6 +78,11 @@ class FileBrowser : public ThumbBrowserBase,
|
|||||||
Gtk::MenuItem* menuLabel;
|
Gtk::MenuItem* menuLabel;
|
||||||
Gtk::MenuItem* menuFileOperations;
|
Gtk::MenuItem* menuFileOperations;
|
||||||
Gtk::ImageMenuItem* menuProfileOperations;
|
Gtk::ImageMenuItem* menuProfileOperations;
|
||||||
|
Gtk::MenuItem* menuExtProg;
|
||||||
|
Gtk::MenuItem** amiExtProg;
|
||||||
|
Gtk::MenuItem* miOpenDefaultViewer;
|
||||||
|
std::map<Glib::ustring, ExtProgAction*> mMenuExtProgs; // key is menuitem label
|
||||||
|
|
||||||
Gtk::MenuItem* menuDF;
|
Gtk::MenuItem* menuDF;
|
||||||
Gtk::MenuItem* selectDF;
|
Gtk::MenuItem* selectDF;
|
||||||
Gtk::MenuItem* thisIsDF;
|
Gtk::MenuItem* thisIsDF;
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include "soundman.h"
|
#include "soundman.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
#include "extprog.h"
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
#include <glibmm/fileutils.h>
|
#include <glibmm/fileutils.h>
|
||||||
@@ -106,7 +107,7 @@ int main(int argc, char **argv)
|
|||||||
Gio::init ();
|
Gio::init ();
|
||||||
|
|
||||||
Options::load ();
|
Options::load ();
|
||||||
|
extProgStore->init();
|
||||||
SoundManager::init();
|
SoundManager::init();
|
||||||
|
|
||||||
if (argc>1){
|
if (argc>1){
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ void Options::setDefaults () {
|
|||||||
menuGroupLabel = true;
|
menuGroupLabel = true;
|
||||||
menuGroupFileOperations = true;
|
menuGroupFileOperations = true;
|
||||||
menuGroupProfileOperations = true;
|
menuGroupProfileOperations = true;
|
||||||
|
menuGroupExtProg = true;
|
||||||
|
|
||||||
fastexport_bypass_sharpening = true;
|
fastexport_bypass_sharpening = true;
|
||||||
fastexport_bypass_sharpenEdge = true;
|
fastexport_bypass_sharpenEdge = true;
|
||||||
@@ -405,6 +406,7 @@ if (keyFile.has_group ("File Browser")) {
|
|||||||
if (keyFile.has_key ("File Browser", "menuGroupLabel")) menuGroupLabel = keyFile.get_boolean ("File Browser", "menuGroupLabel");
|
if (keyFile.has_key ("File Browser", "menuGroupLabel")) menuGroupLabel = keyFile.get_boolean ("File Browser", "menuGroupLabel");
|
||||||
if (keyFile.has_key ("File Browser", "menuGroupFileOperations")) menuGroupFileOperations = keyFile.get_boolean ("File Browser", "menuGroupFileOperations");
|
if (keyFile.has_key ("File Browser", "menuGroupFileOperations")) menuGroupFileOperations = keyFile.get_boolean ("File Browser", "menuGroupFileOperations");
|
||||||
if (keyFile.has_key ("File Browser", "menuGroupProfileOperations")) menuGroupProfileOperations = keyFile.get_boolean ("File Browser", "menuGroupProfileOperations");
|
if (keyFile.has_key ("File Browser", "menuGroupProfileOperations")) menuGroupProfileOperations = keyFile.get_boolean ("File Browser", "menuGroupProfileOperations");
|
||||||
|
if (keyFile.has_key ("File Browser", "menuGroupExtProg")) menuGroupExtProg = keyFile.get_boolean ("File Browser", "menuGroupExtProg");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keyFile.has_group ("Clipping Indication")) {
|
if (keyFile.has_group ("Clipping Indication")) {
|
||||||
@@ -594,6 +596,7 @@ int Options::saveToFile (Glib::ustring fname) {
|
|||||||
keyFile.set_boolean ("File Browser", "menuGroupLabel", menuGroupLabel);
|
keyFile.set_boolean ("File Browser", "menuGroupLabel", menuGroupLabel);
|
||||||
keyFile.set_boolean ("File Browser", "menuGroupFileOperations", menuGroupFileOperations);
|
keyFile.set_boolean ("File Browser", "menuGroupFileOperations", menuGroupFileOperations);
|
||||||
keyFile.set_boolean ("File Browser", "menuGroupProfileOperations", menuGroupProfileOperations);
|
keyFile.set_boolean ("File Browser", "menuGroupProfileOperations", menuGroupProfileOperations);
|
||||||
|
keyFile.set_boolean ("File Browser", "menuGroupExtProg", menuGroupExtProg);
|
||||||
|
|
||||||
keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold);
|
keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold);
|
||||||
keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold);
|
keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold);
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ class Options {
|
|||||||
bool menuGroupLabel;
|
bool menuGroupLabel;
|
||||||
bool menuGroupFileOperations;
|
bool menuGroupFileOperations;
|
||||||
bool menuGroupProfileOperations;
|
bool menuGroupProfileOperations;
|
||||||
|
bool menuGroupExtProg;
|
||||||
|
|
||||||
// fast export options
|
// fast export options
|
||||||
bool fastexport_bypass_sharpening;
|
bool fastexport_bypass_sharpening;
|
||||||
|
|||||||
@@ -773,6 +773,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
|
|||||||
ckbmenuGroupLabel = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPLABEL")) );
|
ckbmenuGroupLabel = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPLABEL")) );
|
||||||
ckbmenuGroupFileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPFILEOPERATIONS")) );
|
ckbmenuGroupFileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPFILEOPERATIONS")) );
|
||||||
ckbmenuGroupProfileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPPROFILEOPERATIONS")) );
|
ckbmenuGroupProfileOperations = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPPROFILEOPERATIONS")) );
|
||||||
|
ckbmenuGroupExtProg = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_MENUGROUPEXTPROGS")) );
|
||||||
Gtk::VBox* vbmnu = Gtk::manage( new Gtk::VBox () );
|
Gtk::VBox* vbmnu = Gtk::manage( new Gtk::VBox () );
|
||||||
|
|
||||||
vbmnu->set_border_width (4);
|
vbmnu->set_border_width (4);
|
||||||
@@ -780,6 +781,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
|
|||||||
vbmnu->pack_start (*ckbmenuGroupLabel, Gtk::PACK_SHRINK, 0);
|
vbmnu->pack_start (*ckbmenuGroupLabel, Gtk::PACK_SHRINK, 0);
|
||||||
vbmnu->pack_start (*ckbmenuGroupFileOperations, Gtk::PACK_SHRINK, 0);
|
vbmnu->pack_start (*ckbmenuGroupFileOperations, Gtk::PACK_SHRINK, 0);
|
||||||
vbmnu->pack_start (*ckbmenuGroupProfileOperations, Gtk::PACK_SHRINK, 0);
|
vbmnu->pack_start (*ckbmenuGroupProfileOperations, Gtk::PACK_SHRINK, 0);
|
||||||
|
vbmnu->pack_start (*ckbmenuGroupExtProg, Gtk::PACK_SHRINK, 0);
|
||||||
|
|
||||||
frmnu->add (*vbmnu);
|
frmnu->add (*vbmnu);
|
||||||
|
|
||||||
@@ -974,6 +976,7 @@ void Preferences::storePreferences () {
|
|||||||
moptions.menuGroupLabel = ckbmenuGroupLabel->get_active();
|
moptions.menuGroupLabel = ckbmenuGroupLabel->get_active();
|
||||||
moptions.menuGroupFileOperations = ckbmenuGroupFileOperations->get_active();
|
moptions.menuGroupFileOperations = ckbmenuGroupFileOperations->get_active();
|
||||||
moptions.menuGroupProfileOperations = ckbmenuGroupProfileOperations->get_active();
|
moptions.menuGroupProfileOperations = ckbmenuGroupProfileOperations->get_active();
|
||||||
|
moptions.menuGroupExtProg = ckbmenuGroupExtProg->get_active();
|
||||||
moptions.blinkClipped = blinkClipped->get_active ();
|
moptions.blinkClipped = blinkClipped->get_active ();
|
||||||
moptions.highlightThreshold = (int)hlThresh->get_value ();
|
moptions.highlightThreshold = (int)hlThresh->get_value ();
|
||||||
moptions.shadowThreshold = (int)shThresh->get_value ();
|
moptions.shadowThreshold = (int)shThresh->get_value ();
|
||||||
@@ -1120,6 +1123,8 @@ void Preferences::fillPreferences () {
|
|||||||
ckbmenuGroupLabel->set_active(moptions.menuGroupLabel);
|
ckbmenuGroupLabel->set_active(moptions.menuGroupLabel);
|
||||||
ckbmenuGroupFileOperations->set_active(moptions.menuGroupFileOperations);
|
ckbmenuGroupFileOperations->set_active(moptions.menuGroupFileOperations);
|
||||||
ckbmenuGroupProfileOperations->set_active(moptions.menuGroupProfileOperations);
|
ckbmenuGroupProfileOperations->set_active(moptions.menuGroupProfileOperations);
|
||||||
|
ckbmenuGroupExtProg->set_active(moptions.menuGroupExtProg);
|
||||||
|
|
||||||
blinkClipped->set_active (moptions.blinkClipped);
|
blinkClipped->set_active (moptions.blinkClipped);
|
||||||
hlThresh->set_value (moptions.highlightThreshold);
|
hlThresh->set_value (moptions.highlightThreshold);
|
||||||
shThresh->set_value (moptions.shadowThreshold);
|
shThresh->set_value (moptions.shadowThreshold);
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ class Preferences : public Gtk::Dialog {
|
|||||||
Gtk::CheckButton* ckbmenuGroupLabel;
|
Gtk::CheckButton* ckbmenuGroupLabel;
|
||||||
Gtk::CheckButton* ckbmenuGroupFileOperations;
|
Gtk::CheckButton* ckbmenuGroupFileOperations;
|
||||||
Gtk::CheckButton* ckbmenuGroupProfileOperations;
|
Gtk::CheckButton* ckbmenuGroupProfileOperations;
|
||||||
|
Gtk::CheckButton* ckbmenuGroupExtProg;
|
||||||
|
|
||||||
Gtk::CheckButton* chOverwriteOutputFile;
|
Gtk::CheckButton* chOverwriteOutputFile;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user