diff --git a/rtdata/languages/default b/rtdata/languages/default index bde5f2911..643361709 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2,7 +2,7 @@ #01 Developers should add translations to this file and then run 'generateDifferences.sh' script to update other locales. ADJUSTER_RESET_TO_DEFAULT;Reset to default BATCHQUEUE_AUTOSTART;Auto start -BATCH_PROCESSING;batch processing +BATCH_PROCESSING;Batch processing CURVEEDITOR_CUSTOM;Custom CURVEEDITOR_DARKS;Darks CURVEEDITOR_FILEDLGFILTERANY;Any files @@ -378,7 +378,7 @@ PARTIALPASTE_SHARPENING;Sharpening PARTIALPASTE_VIGNETTING;Vignetting correction PARTIALPASTE_WHITEBALANCE;White balance PREFERENCES_ADD;ADD -PREFERENCES_APPLNEXTSTARTUP;applied at next startup +PREFERENCES_APPLNEXTSTARTUP;restart required PREFERENCES_BATCH_PROCESSING;batch processing PREFERENCES_BEHAVIOR;Behavior PREFERENCES_BLINKCLIPPED;Blink clipped areas @@ -406,6 +406,7 @@ PREFERENCES_DCBENHANCE;Apply DCB enhancement step PREFERENCES_DCBITERATIONS;Number of DCB iterations PREFERENCES_DEFAULTLANG;Default language PREFERENCES_DEFAULTTHEME;Default theme +PREFERENCES_USESYSTEMTHEME; Use System Theme PREFERENCES_DEMOSAICINGALGO;Demosaicing Algorithm PREFERENCES_DIRHOME;Home directory PREFERENCES_DIRLAST;Last visited directory diff --git a/rtdata/options/options.lin b/rtdata/options/options.lin index e046ff2f2..26a34c75c 100644 --- a/rtdata/options/options.lin +++ b/rtdata/options/options.lin @@ -10,6 +10,7 @@ DualProcSupport=true MultiUser=true Language=English (US) Theme=Gray +UseSystemTheme=false Version=300 FirstRun=true diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index 5d9d4f813..1fcbc3750 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -10,6 +10,7 @@ DualProcSupport=true MultiUser=true Language=English (US) Theme=Gray Textured +UseSystemTheme=false Version=300 FirstRun=true diff --git a/rtdata/options/options.win b/rtdata/options/options.win index 4c450f427..27c925967 100644 --- a/rtdata/options/options.win +++ b/rtdata/options/options.win @@ -10,6 +10,7 @@ DualProcSupport=true MultiUser=true Language=English (US) Theme=Gray +UseSystemTheme=false Version=300 FirstRun=true diff --git a/rtgui/main.cc b/rtgui/main.cc index 94a0dd62f..5d136e76b 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -108,13 +108,15 @@ int main(int argc, char **argv) #endif // Gtk::RC::add_default_file (argv0+"/themes/"+options.theme); - std::vector rcfiles; - rcfiles.push_back (argv0+"/themes/"+options.theme); - // Set the font face and size - Gtk::RC::parse_string (Glib::ustring::compose( - "style \"clearlooks-default\" { font_name = \"%1\" }", options.font)); - Gtk::RC::set_default_files (rcfiles); - + if (!options.useSystemTheme) + { + std::vector rcfiles; + rcfiles.push_back (argv0+"/themes/"+options.theme); + // Set the font face and size + Gtk::RC::parse_string (Glib::ustring::compose( + "style \"clearlooks-default\" { font_name = \"%1\" }", options.font)); + Gtk::RC::set_default_files (rcfiles); + } Gtk::Main m(&argc, &argv); // MainWindow *MainWindow = new class MainWindow(); RTWindow *rtWindow = new class RTWindow(); diff --git a/rtgui/options.cc b/rtgui/options.cc index 3128aaa11..175dc56e0 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -89,6 +89,7 @@ void Options::setDefaults () { language = DefaultLanguage; lastSaveAsPath = ""; theme = ""; + useSystemTheme = false; maxThumbnailHeight = 400; maxCacheEntries = 10000; thumbnailFormat = FT_Custom16; @@ -183,6 +184,7 @@ if (keyFile.has_group ("General")) { // if (keyFile.has_key ("General", "Version")) version = keyFile.get_integer ("General", "Version"); if (keyFile.has_key ("General", "Language")) language = keyFile.get_string ("General", "Language"); if (keyFile.has_key ("General", "Theme")) theme = keyFile.get_string ("General", "Theme"); + if (keyFile.has_key ("General", "UseSystemTheme")) useSystemTheme = keyFile.get_boolean ("General", "UseSystemTheme"); if (keyFile.has_key ("General", "FirstRun")) firstRun = keyFile.get_boolean ("General", "FirstRun"); } @@ -322,6 +324,7 @@ int Options::saveToFile (Glib::ustring fname) { keyFile.set_boolean ("General", "MultiUser", multiUser); keyFile.set_string ("General", "Language", language); keyFile.set_string ("General", "Theme", theme); + keyFile.set_boolean ("General", "UseSystemTheme", useSystemTheme); keyFile.set_integer ("General", "Version", 290); keyFile.set_boolean ("General", "FirstRun", firstRun); diff --git a/rtgui/options.h b/rtgui/options.h index 8cd43b0cb..495ab241e 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -97,6 +97,7 @@ class Options { int bgcolor; Glib::ustring language; Glib::ustring theme; + bool useSystemTheme; static Glib::ustring cacheBaseDir; bool autoSuffix; bool saveParamsFile; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 84950335a..35b7611a5 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -47,27 +47,27 @@ Preferences::Preferences (RTWindow *rtwindow):parent(rtwindow) { Gtk::HBox* buttonpanel = Gtk::manage (new Gtk::HBox ()); mainvb->pack_end (*buttonpanel, Gtk::PACK_SHRINK, 2); - Gtk::Button* load = Gtk::manage (new Gtk::Button (M("GENERAL_LOAD"))); - Gtk::Button* save = Gtk::manage (new Gtk::Button (M("GENERAL_SAVE"))); +// Gtk::Button* load = Gtk::manage (new Gtk::Button (M("GENERAL_LOAD"))); +// Gtk::Button* save = Gtk::manage (new Gtk::Button (M("GENERAL_SAVE"))); Gtk::Button* about = Gtk::manage (new Gtk::Button (M("GENERAL_ABOUT"))); Gtk::Button* ok = Gtk::manage (new Gtk::Button (M("GENERAL_OK"))); Gtk::Button* cancel = Gtk::manage (new Gtk::Button (M("GENERAL_CANCEL"))); - save->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-save"), Gtk::ICON_SIZE_BUTTON))); - load->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-open"), Gtk::ICON_SIZE_BUTTON))); +// save->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-save"), Gtk::ICON_SIZE_BUTTON))); +// load->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-open"), Gtk::ICON_SIZE_BUTTON))); about->set_image (*Gtk::manage(new Gtk::Image (argv0+"/images/logoicon16.png"))); ok->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-ok"), Gtk::ICON_SIZE_BUTTON))); cancel->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-cancel"), Gtk::ICON_SIZE_BUTTON))); - load->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::loadPressed) ); - save->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::savePressed) ); +// load->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::loadPressed) ); +// save->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::savePressed) ); about->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::aboutPressed) ); ok->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::okPressed) ); cancel->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::cancelPressed) ); - buttonpanel->pack_start (*load, Gtk::PACK_SHRINK, 4); - buttonpanel->pack_start (*save, Gtk::PACK_SHRINK, 4); +// buttonpanel->pack_start (*load, Gtk::PACK_SHRINK, 4); +// buttonpanel->pack_start (*save, Gtk::PACK_SHRINK, 4); buttonpanel->pack_start (*about, Gtk::PACK_SHRINK, 4); buttonpanel->pack_end (*ok, Gtk::PACK_SHRINK, 4); buttonpanel->pack_end (*cancel, Gtk::PACK_SHRINK, 4); @@ -355,7 +355,7 @@ Gtk::Widget* Preferences::getProcParamsPanel () { } dmconn = dmethod->signal_changed().connect( sigc::mem_fun(*this, &Preferences::dmethodChanged) ); - dmconnBatch = dmethod->signal_changed().connect( sigc::mem_fun(*this, &Preferences::dmethodBatchChanged) ); + dmconnBatch = dmethod->signal_changed().connect( sigc::mem_fun(*this, &Preferences::dmethodBatchChanged) ); return mvbpp; } @@ -432,7 +432,16 @@ Gtk::Widget* Preferences::getGeneralPanel () { mvbsd->pack_start (*flang, Gtk::PACK_SHRINK, 4); Gtk::Frame* ftheme = new Gtk::Frame (M("PREFERENCES_DEFAULTTHEME")); - Gtk::HBox* hbtheme = new Gtk::HBox (); + Gtk::VBox* vbftheme = new Gtk::VBox (); + Gtk::HBox* hbUseSystemTheme = new Gtk::HBox (); + hbUseSystemTheme->set_border_width (4); + Gtk::Label* useNextStart = new Gtk::Label (Glib::ustring("(") + M("PREFERENCES_APPLNEXTSTARTUP") + ")"); + chUseSystemTheme = new Gtk::CheckButton (M("PREFERENCES_USESYSTEMTHEME")); + hbUseSystemTheme->pack_start(*chUseSystemTheme, Gtk::PACK_SHRINK); + hbUseSystemTheme->pack_start (*useNextStart, Gtk::PACK_SHRINK, 4); + vbftheme->pack_start(*hbUseSystemTheme, Gtk::PACK_SHRINK, 4); + + hbtheme = new Gtk::HBox (); hbtheme->set_border_width (4); Gtk::Label* themelab = new Gtk::Label (M("PREFERENCES_SELECTTHEME")+":"); theme = new Gtk::ComboBoxText (); @@ -453,7 +462,8 @@ Gtk::Widget* Preferences::getGeneralPanel () { hbtheme->pack_start (*theme); hbtheme->pack_start (*fontlab, Gtk::PACK_SHRINK, 4); hbtheme->pack_start (*fontbutton); - ftheme->add (*hbtheme); + vbftheme->pack_end(*hbtheme, Gtk::PACK_SHRINK, 4); + ftheme->add (*vbftheme); mvbsd->pack_start (*ftheme, Gtk::PACK_SHRINK, 4); //----- @@ -564,7 +574,7 @@ Gtk::Widget* Preferences::getGeneralPanel () { tconn = theme->signal_changed().connect( sigc::mem_fun(*this, &Preferences::themeChanged) ); fconn = fontbutton->signal_font_set().connect( sigc::mem_fun(*this, &Preferences::fontChanged) ); - + usethcon = chUseSystemTheme->signal_clicked ().connect( sigc::mem_fun(*this, &Preferences::useThemeChanged) ); return mvbsd; } @@ -756,6 +766,7 @@ void Preferences::storePreferences () { moptions.shadowThreshold = (int)shThresh->get_value (); moptions.language = languages->get_active_text (); moptions.theme = theme->get_active_text (); + moptions.useSystemTheme = chUseSystemTheme->get_active (); moptions.font = fontbutton->get_font_name(); #ifdef _WIN32 moptions.gimpDir = gimpDir->get_filename (); @@ -881,6 +892,7 @@ void Preferences::fillPreferences () { intent->set_active (moptions.rtSettings.colorimetricIntent); languages->set_active_text (moptions.language); theme->set_active_text (moptions.theme); + chUseSystemTheme->set_active(moptions.useSystemTheme); fontbutton->set_font_name(moptions.font); showDateTime->set_active (moptions.fbShowDateTime); showBasicExif->set_active (moptions.fbShowBasicExif); @@ -1072,22 +1084,22 @@ void Preferences::dmethodChanged () { void Preferences::dmethodBatchChanged () { - if (dmethod->get_active_row_number()==0) - ccSteps->set_value (2); - else if (dmethod->get_active_row_number()==1) - ccSteps->set_value (1); - else if (dmethod->get_active_row_number()==2) - ccSteps->set_value (2); - - if (dmethod->get_active_row_number()==4) { - dcbEnhance->set_sensitive(true); - dcbIterations->set_sensitive(true); - dcbIterationsLabel->set_sensitive(true); - } else { - dcbEnhance->set_sensitive(false); - dcbIterations->set_sensitive(false); - dcbIterationsLabel->set_sensitive(false); - } +// if (dmethod->get_active_row_number()==0) +// ccSteps->set_value (2); +// else if (dmethod->get_active_row_number()==1) +// ccSteps->set_value (1); +// else if (dmethod->get_active_row_number()==2) +// ccSteps->set_value (2); +// +// if (dmethod->get_active_row_number()==4) { +// dcbEnhance->set_sensitive(true); +// dcbIterations->set_sensitive(true); +// dcbIterationsLabel->set_sensitive(true); +// } else { +// dcbEnhance->set_sensitive(false); +// dcbIterations->set_sensitive(false); +// dcbIterationsLabel->set_sensitive(false); +// } } void Preferences::aboutPressed () { @@ -1140,6 +1152,17 @@ void Preferences::switchFontTo(Glib::ustring newFont) { gdk_event_send_clientmessage_toall ((GdkEvent*)&event); } +void Preferences::useThemeChanged(){ + + if(!chUseSystemTheme->get_active()){ + hbtheme->set_sensitive(true); + fontbutton->set_sensitive(true); + } + else{ + hbtheme->set_sensitive(false); + fontbutton->set_sensitive(false); + } +} void Preferences::addExtPressed () { diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 3af50615b..ccfc67789 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -94,6 +94,8 @@ class Preferences : public Gtk::Dialog { Gtk::ComboBoxText* intent; Gtk::ComboBoxText* theme; + Gtk::HBox* hbtheme; + Gtk::CheckButton* chUseSystemTheme; Gtk::FontButton* fontbutton; Gtk::ComboBoxText* cformat; @@ -115,7 +117,7 @@ class Preferences : public Gtk::Dialog { RTWindow* parent; Options moptions; - sigc::connection dmconn, dmconnBatch, tconn, fconn, addc, setc; + sigc::connection dmconn, dmconnBatch, tconn, fconn, addc, setc, usethcon; Glib::ustring initialTheme; Glib::ustring initialFont; @@ -126,6 +128,7 @@ class Preferences : public Gtk::Dialog { void dmethodBatchChanged (); void workflowUpdate(); void themeChanged (); + void useThemeChanged(); void fontChanged (); void switchThemeTo (Glib::ustring newTheme); void switchFontTo (Glib::ustring newFont);