merge with dev

This commit is contained in:
Desmis
2017-03-17 09:03:56 +01:00
4 changed files with 90 additions and 34 deletions

View File

@@ -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<Gdk::Screen> screen = Gdk::Screen::get_default();
Gtk::StyleContext::remove_provider_for_screen (screen, fontcss);
}
}
}