Remember last ICC profiles directory

see issue 911
This commit is contained in:
Oliver Duis
2011-08-13 10:01:14 +02:00
parent fe8d3d5abc
commit 0eb0021fa7
2 changed files with 16 additions and 7 deletions

View File

@@ -27,6 +27,8 @@ using namespace rtengine::procparams;
extern Options options;
Glib::ustring ICMPanel::lastICCWorkDir;
ICMPanel::ICMPanel () : Gtk::VBox(), FoldableToolPanel(this), iunchanged(NULL), icmplistener(NULL) {
// set_border_width (4);
@@ -156,9 +158,7 @@ ICMPanel::ICMPanel () : Gtk::VBox(), FoldableToolPanel(this), iunchanged(NULL),
ipDialog->add_filter (filter_icc);
ipDialog->add_filter (filter_any);
if (safe_file_test (options.rtSettings.iccDirectory, Glib::FILE_TEST_IS_DIR)) {
ipDialog->set_current_folder (options.rtSettings.iccDirectory);
}
ipDialog->set_current_folder ( lastICCWorkDir.empty() ? options.rtSettings.iccDirectory : lastICCWorkDir);
oldip = "";
@@ -252,9 +252,15 @@ void ICMPanel::write (ProcParams* pp, ParamsEdited* pedited) {
pp->icm.input = "(embedded)";
else if (icamera->get_active ())
pp->icm.input = "(camera)";
else
else {
pp->icm.input = "file:"+ipDialog->get_filename ();
Glib::ustring p=Glib::path_get_dirname(ipDialog->get_filename ());
if (p!=options.rtSettings.iccDirectory) {
lastICCWorkDir=p;
}
}
pp->icm.working = wnames->get_active_text ();
pp->icm.gamma = wgamma->get_active_text ();
@@ -397,10 +403,10 @@ void ICMPanel::ipSelectionChanged () {
if (ipDialog->get_filename () == "")
return;
else
ipChanged ();
ipChanged ();
}
void ICMPanel::saveReferencePressed () {
if (!icmplistener)
@@ -419,8 +425,8 @@ void ICMPanel::saveReferencePressed () {
if (dialog.run()==Gtk::RESPONSE_OK)
icmplistener->saveInputICCReference (dialog.get_filename());
}
void ICMPanel::setBatchMode (bool batchMode) {
ToolPanel::setBatchMode (batchMode);

View File

@@ -60,6 +60,9 @@ class ICMPanel : public Gtk::VBox, public AdjusterListener, public FoldableToolP
Glib::ustring oldip;
ICMPanelListener* icmplistener;
static Glib::ustring lastICCWorkDir;
bool enableLastICCWorkDirChange;
public:
ICMPanel ();