diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 516c14f4e80d20a77d5d6a018a12c4e447580929..04c2b6d103208c23025085a25225736864ee42ff 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include "debug/simple-event.h" #include "debug/event-tracker.h" @@ -469,34 +470,26 @@ Application::Application(const char* argv, bool use_gui) : if (use_gui) { add_style_sheet(); /* Load the preferences and menus */ - GtkSettings *settings = gtk_settings_get_default(); + Glib::RefPtr settings = Gtk::Settings::get_default(); if (settings) { - const gchar *gtkThemeName; - g_object_get(settings, "gtk-theme-name", >kThemeName, NULL); - const gchar *gtkIconThemeName; - g_object_get(settings, "gtk-icon-theme-name", >kIconThemeName, NULL); - prefs->setString("/theme/defaultIconTheme", Glib::ustring(gtkIconThemeName)); - gboolean gtkApplicationPreferDarkTheme; - g_object_get(settings, "gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL); if (prefs->getString("/theme/gtkTheme") != "") { - g_object_set(settings, "gtk-theme-name", prefs->getString("/theme/gtkTheme").c_str(), NULL); + settings->property_gtk_theme_name() = prefs->getString("/theme/gtkTheme"); } else { - prefs->setString("/theme/gtkTheme", Glib::ustring(gtkThemeName)); + prefs->setString("/theme/gtkTheme", settings->property_gtk_theme_name()); } + prefs->setString("/theme/defaultIconTheme", settings->property_gtk_icon_theme_name()); if (prefs->getString("/theme/iconTheme") != "") { - g_object_set(settings, "gtk-icon-theme-name", prefs->getString("/theme/iconTheme").c_str(), NULL); + settings->property_gtk_icon_theme_name() = prefs->getString("/theme/iconTheme"); } else { - Glib::ustring defaulticontheme = prefs->getString("/theme/defaultIconTheme"); - if (defaulticontheme == "Adwaita") { - defaulticontheme = "hicolor"; + if (prefs->getString("/theme/defaultIconTheme") == "Adwaita") { + prefs->setString("/theme/iconTheme", "hicolor"); } - prefs->setString("/theme/iconTheme", defaulticontheme); } - g_object_set(settings, "gtk-application-prefer-dark-theme", - prefs->getBool("/theme/darkTheme", gtkApplicationPreferDarkTheme), NULL); + + settings->property_gtk_application_prefer_dark_theme() = prefs->getBool("/theme/darkTheme", settings->property_gtk_application_prefer_dark_theme()); } load_menus(); Inkscape::DeviceManager::getManager().loadConfig();