diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index 66f5341fa..1810501b5 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -115,6 +115,8 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) if (Glib::file_test (options.savePathFolder, Glib::FILE_TEST_IS_DIR)) { outdirFolder->set_current_folder (options.savePathFolder); + } else { + outdirFolder->set_current_folder (Glib::get_home_dir()); } outdirFolderButton = 0; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 147cdbced..ecaba0a61 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -41,6 +41,8 @@ Preferences::Preferences (RTWindow *rtwindow) , rprofiles (nullptr) , iprofiles (nullptr) , parent (rtwindow) + , newFont (false) + , newCPFont (false) { regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS); @@ -56,6 +58,10 @@ Preferences::Preferences (RTWindow *rtwindow) set_size_request (650, -1); set_default_size (options.preferencesWidth, options.preferencesHeight); + Pango::FontDescription defaultFont = get_style_context ()->get_font(); + initialFontFamily = defaultFont.get_family (); + initialFontSize = defaultFont.get_size () / Pango::SCALE; + Gtk::Box* mainBox = get_content_area (); //GTK318 #if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 @@ -1090,7 +1096,12 @@ Gtk::Widget* Preferences::getGeneralPanel () fontButton = Gtk::manage ( new Gtk::FontButton ()); setExpandAlignProperties (fontButton, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); fontButton->set_use_size (true); - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily == "default" ? "sans" : options.fontFamily, options.fontSize)); + + if (options.fontFamily == "default") { + fontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + } else { + fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily, options.fontSize)); + } themeGrid->attach_next_to (*fontlab, *theme, Gtk::POS_RIGHT, 1, 1); themeGrid->attach_next_to (*fontButton, *fontlab, Gtk::POS_RIGHT, 1, 1); @@ -1100,7 +1111,12 @@ Gtk::Widget* Preferences::getGeneralPanel () colorPickerFontButton = Gtk::manage ( new Gtk::FontButton ()); setExpandAlignProperties (fontButton, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); colorPickerFontButton->set_use_size (true); - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily == "default" ? "sans" : options.CPFontFamily, options.CPFontSize)); + + if (options.fontFamily == "default") { + colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + } else { + colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); + } themeGrid->attach_next_to (*cpfontlab, *fontButton, Gtk::POS_RIGHT, 1, 1); themeGrid->attach_next_to (*colorPickerFontButton, *cpfontlab, Gtk::POS_RIGHT, 1, 1); @@ -1120,6 +1136,7 @@ Gtk::Widget* Preferences::getGeneralPanel () butNavGuideCol->set_use_alpha (true); themeGrid->attach_next_to (*navGuideLabel, *butCropCol, Gtk::POS_RIGHT, 2, 1); themeGrid->attach_next_to (*butNavGuideCol, *navGuideLabel, Gtk::POS_RIGHT, 1, 1); +//>>>>>>> dev ftheme->add (*themeGrid); mvbsd->attach_next_to (*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1); @@ -1247,10 +1264,10 @@ Gtk::Widget* Preferences::getGeneralPanel () fdg->add (*externaleditorGrid); mvbsd->attach_next_to (*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1); - langAutoDetectConn = ckbLangAutoDetect->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::langAutoDetectToggled)); tconn = theme->signal_changed().connect ( sigc::mem_fun (*this, &Preferences::themeChanged) ); fconn = fontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::fontChanged) ); + cpfconn = colorPickerFontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::cpFontChanged) ); return mvbsd; } @@ -1645,14 +1662,19 @@ void Preferences::storePreferences () moptions.navGuideBrush[1] = NavGuideCol.get_green(); moptions.navGuideBrush[2] = NavGuideCol.get_blue(); moptions.navGuideBrush[3] = butNavGuideCol->get_alpha() / 65535.0; - Pango::FontDescription fd (fontButton->get_font_name()); - moptions.fontFamily = fd.get_family(); - moptions.fontSize = fd.get_size() / Pango::SCALE; + + if (newFont) { + moptions.fontFamily = fd.get_family(); + moptions.fontSize = fd.get_size() / Pango::SCALE; + } Pango::FontDescription cpfd (colorPickerFontButton->get_font_name()); - moptions.CPFontFamily = cpfd.get_family(); - moptions.CPFontSize = cpfd.get_size() / Pango::SCALE; + + if (newCPFont) { + moptions.CPFontFamily = cpfd.get_family(); + moptions.CPFontSize = cpfd.get_size() / Pango::SCALE; + } #ifdef WIN32 moptions.gimpDir = gimpDir->get_filename (); @@ -1834,6 +1856,7 @@ void Preferences::fillPreferences () tconn.block (true); fconn.block (true); + cpfconn.block (true); sconn.block (true); dfconn.block (true); ffconn.block (true); @@ -1928,8 +1951,17 @@ void Preferences::fillPreferences () butNavGuideCol->set_rgba (NavGuideCol); butNavGuideCol->set_alpha ( (unsigned short) (moptions.navGuideBrush[3] * 65535.0)); - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily == "default" ? "sans" : options.fontFamily, options.fontSize)); - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily == "default" ? "sans" : options.CPFontFamily, options.CPFontSize)); + if (options.fontFamily == "default") { + fontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + } else { + fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily, options.fontSize)); + } + + if (options.CPFontFamily == "default") { + colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + } else { + colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); + } showDateTime->set_active (moptions.fbShowDateTime); showBasicExif->set_active (moptions.fbShowBasicExif); @@ -1951,13 +1983,13 @@ void Preferences::fillPreferences () if (Glib::file_test (moptions.gimpDir, Glib::FILE_TEST_IS_DIR)) { gimpDir->set_current_folder (moptions.gimpDir); } else { - gimpDir->set_current_folder (""); + gimpDir->set_current_folder (Glib::get_home_dir()); } if (Glib::file_test (moptions.psDir, Glib::FILE_TEST_IS_DIR)) { psDir->set_current_folder (moptions.psDir); } else { - psDir->set_current_folder (""); + psDir->set_current_folder (Glib::get_home_dir()); } #elif defined __APPLE__ @@ -1965,6 +1997,8 @@ void Preferences::fillPreferences () if (Glib::file_test (moptions.psDir, Glib::FILE_TEST_IS_DIR)) { psDir->set_current_folder (moptions.psDir); + } else { + psDir->set_current_folder (Glib::get_home_dir()); } #endif @@ -2051,6 +2085,7 @@ void Preferences::fillPreferences () addc.block (false); setc.block (false); + cpfconn.block (false); fconn.block (false); tconn.block (false); sconn.block (false); @@ -2134,7 +2169,11 @@ void Preferences::cancelPressed () Pango::FontDescription fd (fontButton->get_font_name()); if (fd.get_family() != options.fontFamily && (fd.get_size() / Pango::SCALE) != options.fontSize) { - switchFontTo (options.fontFamily == "default" ? "sans" : options.fontFamily, options.fontSize); + if (options.fontFamily == "default") { + switchFontTo (initialFontFamily, initialFontSize); + } else { + switchFontTo (options.fontFamily, options.fontSize); + } } // update the profileStore @@ -2331,11 +2370,17 @@ void Preferences::switchThemeTo (Glib::ustring newTheme) void Preferences::fontChanged () { - + newFont = true; Pango::FontDescription fd (fontButton->get_font_name()); switchFontTo (fd.get_family(), fd.get_size() / Pango::SCALE); } +void Preferences::cpFontChanged () +{ + + newCPFont = true; +} + void Preferences::switchFontTo (const Glib::ustring &newFontFamily, const int newFontSize) { @@ -2359,6 +2404,12 @@ void Preferences::switchFontTo (const Glib::ustring &newFontFamily, const int ne } catch (...) { printf ("Error: Can't find the font named \"%s\"\n", newFontFamily.c_str()); } + } else { + if (fontcss) { + fontcss = Gtk::CssProvider::create(); + Glib::RefPtr screen = Gdk::Screen::get_default(); + Gtk::StyleContext::remove_provider_for_screen (screen, fontcss); + } } } diff --git a/rtgui/preferences.h b/rtgui/preferences.h index fd438d1d2..ea688168f 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -211,10 +211,13 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Glib::ustring storedValueImg; Options moptions; - sigc::connection tconn, sconn, fconn, addc, setc, dfconn, ffconn, bpconn, rpconn, ipconn; + sigc::connection tconn, sconn, fconn, cpfconn, addc, setc, dfconn, ffconn, bpconn, rpconn, ipconn; sigc::connection autoMonProfileConn, sndEnableConn, langAutoDetectConn, autocielabConn; Glib::ustring initialTheme; - Glib::ustring initialFont; + Glib::ustring initialFontFamily; + int initialFontSize; + bool newFont; + bool newCPFont; void fillPreferences (); void storePreferences (); @@ -225,6 +228,7 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener void workflowUpdate(); void themeChanged (); void fontChanged (); + void cpFontChanged (); void forRAWComboChanged (); void forImageComboChanged (); void layoutComboChanged (); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 71f3235c6..e1d0fc425 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -172,8 +172,7 @@ Wavelet::Wavelet() : enableFinalConn = expfinal->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expfinal) ); // Wavelet Settings - Gtk::VBox* const settingsVBox = Gtk::manage(new Gtk::VBox()); - settingsVBox->set_spacing(2); + ToolParamBlock* const settingsBox = Gtk::manage (new ToolParamBlock()); strength->setAdjusterListener (this); @@ -247,16 +246,16 @@ Wavelet::Wavelet() : levdirSubHBox->pack_start(*Lmethod); levdirSubHBox->pack_start(*Dirmethod, Gtk::PACK_EXPAND_WIDGET, 2); // same, but 2 not 4? - settingsVBox->pack_start(*strength); - settingsVBox->pack_start(*thres); - settingsVBox->pack_start(*tilesizeHBox); - settingsVBox->pack_start(*daubcoeffHBox); - settingsVBox->pack_start(*backgroundHBox); - settingsVBox->pack_start(*levdirMainHBox); - settingsVBox->pack_start(*levdirSubHBox); + settingsBox->pack_start(*strength); + settingsBox->pack_start(*thres); + settingsBox->pack_start(*tilesizeHBox); + settingsBox->pack_start(*daubcoeffHBox); + settingsBox->pack_start(*backgroundHBox); + settingsBox->pack_start(*levdirMainHBox); + settingsBox->pack_start(*levdirSubHBox); // Contrast - Gtk::VBox* const levBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const levBox = Gtk::manage (new ToolParamBlock()); Gtk::HBox* const buttonBox = Gtk::manage (new Gtk::HBox(true, 10)); levBox->pack_start(*buttonBox, Gtk::PACK_SHRINK, 2); @@ -335,7 +334,7 @@ Wavelet::Wavelet() : levBox->pack_start(*contrastSHFrame); // Chromaticity - Gtk::VBox* const chBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const chBox = Gtk::manage (new ToolParamBlock()); Gtk::Label* const labmch = Gtk::manage(new Gtk::Label(M("TP_WAVELET_CHTYPE") + ":")); Gtk::HBox* const ctboxch = Gtk::manage(new Gtk::HBox()); @@ -405,7 +404,7 @@ Wavelet::Wavelet() : } // Toning - Gtk::VBox* const tonBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const tonBox = Gtk::manage (new ToolParamBlock()); opaCurveEditorG->setCurveListener (this); @@ -434,7 +433,7 @@ Wavelet::Wavelet() : tonBox->pack_start( *opacityCurveEditorG, Gtk::PACK_SHRINK, 2); // Denoise and Refine - Gtk::VBox* const noiseBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const noiseBox = Gtk::manage (new ToolParamBlock()); linkedg->set_active (true); linkedgConn = linkedg->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::linkedgToggled) ); @@ -458,7 +457,7 @@ Wavelet::Wavelet() : noiseBox->pack_start( *level3noise, Gtk::PACK_SHRINK, 0); // Edge Sharpness - Gtk::VBox* const edgBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const edgBox = Gtk::manage (new ToolParamBlock()); edgval->setAdjusterListener(this); edgBox->pack_start(*edgval); @@ -571,7 +570,7 @@ Wavelet::Wavelet() : edgBox->pack_start(*ctboxES); // Gamut - Gtk::VBox* const conBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const conBox = Gtk::manage (new ToolParamBlock()); median->set_active (true); medianConn = median->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::medianToggled) ); @@ -621,7 +620,7 @@ Wavelet::Wavelet() : conBox->pack_start(*avoid); // Residual Image - Gtk::VBox* const resBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const resBox = Gtk::manage (new ToolParamBlock()); rescon->setAdjusterListener (this); resBox->pack_start(*rescon, Gtk::PACK_SHRINK); @@ -822,7 +821,7 @@ Wavelet::Wavelet() : tmr->set_tooltip_text (M("TP_WAVELET_BALCHRO_TOOLTIP")); tmrConn = tmr->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::tmrToggled) ); - Gtk::VBox* const finalBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const finalBox = Gtk::manage (new ToolParamBlock()); finalBox->pack_start (*ctboxBA); finalBox->pack_start(*balance); @@ -839,7 +838,7 @@ Wavelet::Wavelet() : //----------------------------- - expsettings->add(*settingsVBox); + expsettings->add(*settingsBox); expsettings->setLevel(2); pack_start (*expsettings);