From a781e862454e23a29b8b5cd3ba849702d58880d6 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 18 Apr 2017 11:37:04 +0200 Subject: [PATCH] improved GUI for selecting pp3 output destination Fix for #3830 --- rtdata/languages/default | 2 ++ rtgui/preferences.cc | 29 +++++++++++++++-------------- rtgui/preferences.h | 3 +-- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 110f0aade..c57d81f52 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1086,8 +1086,10 @@ PREFERENCES_PROFILEHANDLING;Processing Profile Handling PREFERENCES_PROFILELOADPR;Processing profile loading priority PREFERENCES_PROFILEPRCACHE;Profile in cache PREFERENCES_PROFILEPRFILE;Profile next to the input file +PREFERENCES_PROFILESAVELOCATION;Processing profile saving location PREFERENCES_PROFILESAVECACHE;Save processing profile to the cache PREFERENCES_PROFILESAVEINPUT;Save processing profile next to the input file +PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file PREFERENCES_PROFILE_NONE;None PREFERENCES_PROPERTY;Property PREFERENCES_PRTINTENT;Rendering intent diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 11350faaf..1acb7cfb4 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -486,20 +486,20 @@ Gtk::Widget* Preferences::getProcParamsPanel () mvbpp->pack_start (*cpfrm, Gtk::PACK_SHRINK, 4); Gtk::Frame* fdp = Gtk::manage (new Gtk::Frame (M("PREFERENCES_PROFILEHANDLING"))); - Gtk::VBox* vbdp = Gtk::manage (new Gtk::VBox ()); - saveParamsFile = Gtk::manage (new Gtk::CheckButton (M("PREFERENCES_PROFILESAVEINPUT"))); - vbdp->pack_start (*saveParamsFile, Gtk::PACK_SHRINK, 4); - saveParamsCache = Gtk::manage (new Gtk::CheckButton (M("PREFERENCES_PROFILESAVECACHE"))); - vbdp->pack_start (*saveParamsCache, Gtk::PACK_SHRINK, 4); + Gtk::Table* vbdp = Gtk::manage (new Gtk::Table (2, 2)); + saveParamsPreference = Gtk::manage (new Gtk::ComboBoxText ()); + saveParamsPreference->append(M("PREFERENCES_PROFILESAVEINPUT")); + saveParamsPreference->append(M("PREFERENCES_PROFILESAVECACHE")); + saveParamsPreference->append(M("PREFERENCES_PROFILESAVEBOTH")); + Gtk::Label *splab = Gtk::manage(new Gtk::Label(M("PREFERENCES_PROFILESAVELOCATION") + ":")); + vbdp->attach(*splab, 0, 1, 0, 1, Gtk::FILL, Gtk::SHRINK, 2, 2); + vbdp->attach(*saveParamsPreference, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); Gtk::Label* lplab = Gtk::manage (new Gtk::Label (M("PREFERENCES_PROFILELOADPR") + ":")); loadParamsPreference = Gtk::manage (new Gtk::ComboBoxText ()); loadParamsPreference->append (M("PREFERENCES_PROFILEPRCACHE")); loadParamsPreference->append (M("PREFERENCES_PROFILEPRFILE")); - Gtk::HBox* hb41 = Gtk::manage (new Gtk::HBox ()); - hb41->pack_start (*lplab, Gtk::PACK_SHRINK, 0); - hb41->pack_start (*loadParamsPreference, Gtk::PACK_EXPAND_WIDGET, 0); - hb41->set_spacing(4); - vbdp->pack_start (*hb41, Gtk::PACK_EXPAND_WIDGET, 4); + vbdp->attach(*lplab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2); + vbdp->attach(*loadParamsPreference, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); fdp->add (*vbdp); mvbpp->pack_start (*fdp, Gtk::PACK_SHRINK, 4); @@ -1729,8 +1729,9 @@ void Preferences::storePreferences () moptions.sameThumbSize = sameThumbSize->get_active(); moptions.internalThumbIfUntouched = ckbInternalThumbIfUntouched->get_active (); - moptions.saveParamsFile = saveParamsFile->get_active (); - moptions.saveParamsCache = saveParamsCache->get_active (); + auto save_where = saveParamsPreference->get_active_row_number(); + moptions.saveParamsFile = save_where == 0 || save_where == 2; + moptions.saveParamsCache = save_where == 1 || save_where == 2; moptions.paramsLoadLocation = (PPLoadLocation)loadParamsPreference->get_active_row_number (); moptions.useBundledProfiles = useBundledProfiles->get_active (); @@ -1949,8 +1950,8 @@ void Preferences::fillPreferences () sameThumbSize->set_active(moptions.sameThumbSize); ckbInternalThumbIfUntouched->set_active(moptions.internalThumbIfUntouched); - saveParamsFile->set_active (moptions.saveParamsFile); - saveParamsCache->set_active (moptions.saveParamsCache); + saveParamsPreference->set_active(moptions.saveParamsFile ? (moptions.saveParamsCache ? 2 : 0) : 1); + loadParamsPreference->set_active (moptions.paramsLoadLocation); useBundledProfiles->set_active (moptions.useBundledProfiles); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 18c8a466b..d392082bb 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -177,8 +177,7 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Gtk::Button* behSetAll; Gtk::CheckButton* chOverwriteOutputFile; - Gtk::CheckButton* saveParamsFile; - Gtk::CheckButton* saveParamsCache; + Gtk::ComboBoxText* saveParamsPreference; Gtk::CheckButton* useBundledProfiles; Gtk::ComboBoxText* loadParamsPreference; Gtk::ComboBoxText* editorLayout;