summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-08-04 10:51:51 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-08-04 10:51:51 +0000
commitc102c461b3139df628f7ef6d43fc72fdb238ef21 (patch)
treef74aab299273be3b77078c966aa2506c67be02f0 /src
parentAdd assets to adwaita theme (diff)
downloadinkscape-c102c461b3139df628f7ef6d43fc72fdb238ef21.tar.gz
inkscape-c102c461b3139df628f7ef6d43fc72fdb238ef21.zip
Remove MR811 from 5439390adf3975557920a1c047897aa425db713d to ebfcda5a1b0341c66b8f91d07ffacbf39a806885
Diffstat (limited to 'src')
-rw-r--r--src/inkscape.cpp90
-rw-r--r--src/inkscape.h2
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp32
3 files changed, 26 insertions, 98 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index 90cf41f05..2164a90a2 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -541,65 +541,6 @@ Glib::ustring Application::get_symbolic_colors()
/**
* \brief Add our CSS style sheets
*/
-void Application::add_inkscape_css()
-{
- using namespace Inkscape::IO::Resource;
- auto const screen = Gdk::Screen::get_default();
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if (!customcssprovider) {
- customcssprovider = Gtk::CssProvider::create();
- } else {
- Gtk::StyleContext::remove_provider_for_screen(screen, customcssprovider);
- }
- Glib::ustring customthemename = prefs->getString("/theme/gtkTheme");
- if (customthemename.find("inkscapecustom::") != -1) {
- customthemename = customthemename.substr(16);
- Glib::ustring style = customthemename + "/gtk-3.0/gtk.css";
- bool dark = prefs->getBool("/theme/preferDarkTheme", false) || customthemename.find(":dark") != -1;
- if (dark) {
- style = customthemename + "/gtk-3.0/gtk-dark.css";
- }
- style = get_filename(THEMES, style.c_str());
- if (!style.empty()) {
- try {
- customcssprovider->load_from_path(style);
- } catch (const Gtk::CssProviderError &ex) {
- g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)", style.c_str(),
- ex.what().c_str());
- }
- Gtk::StyleContext::add_provider_for_screen(screen, customcssprovider,
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- }
- }
- Glib::ustring style = get_filename(UIS, "style.css");
- if (!style.empty()) {
- auto provider = Gtk::CssProvider::create();
- try {
- provider->load_from_path(style);
- } catch (const Gtk::CssProviderError &ex) {
- g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)", style.c_str(),
- ex.what().c_str());
- }
- Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- }
- if (!colorizeprovider) {
- colorizeprovider = Gtk::CssProvider::create();
- }
- Glib::ustring css_str = "";
- if (prefs->getBool("/theme/symbolicIcons", false)) {
- css_str = get_symbolic_colors();
- }
- try {
- colorizeprovider->load_from_data(css_str);
- } catch (const Gtk::CssProviderError &ex) {
- g_critical("CSSProviderError::load_from_data(): failed to load '%s'\n(%s)", css_str.c_str(), ex.what().c_str());
- }
- Gtk::StyleContext::add_provider_for_screen(screen, colorizeprovider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-}
-
-/**
- * \brief Add our CSS style sheets
- */
void Application::add_gtk_css()
{
using namespace Inkscape::IO::Resource;
@@ -622,11 +563,6 @@ void Application::add_gtk_css()
prefs->setString("/theme/defaultIconTheme", Glib::ustring(gtkIconThemeName));
Glib::ustring gtkthemename = prefs->getString("/theme/gtkTheme");
if (gtkthemename != "") {
- if (gtkthemename.find("inkscapecustom::") != -1) {
- // we use adwaita as base of all custom CSS, seems more standar than user default theme than can make
- // unwanted results
- gtkthemename = "Adwaita";
- }
g_object_set(settings, "gtk-theme-name", gtkthemename.c_str(), NULL);
} else {
prefs->setString("/theme/gtkTheme", Glib::ustring(gtkThemeName));
@@ -639,9 +575,33 @@ void Application::add_gtk_css()
}
g_object_get(settings, "gtk-font-name", &gtk_font_name, NULL);
}
- add_inkscape_css();
+
+ Glib::ustring style = get_filename(UIS, "style.css");
+ if (!style.empty()) {
+ auto provider = Gtk::CssProvider::create();
+ try {
+ provider->load_from_path(style);
+ } catch (const Gtk::CssProviderError &ex) {
+ g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)", style.c_str(),
+ ex.what().c_str());
+ }
+ Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+ if (!colorizeprovider) {
+ colorizeprovider = Gtk::CssProvider::create();
+ }
Glib::ustring css_str = "";
+ if (prefs->getBool("/theme/symbolicIcons", false)) {
+ css_str = get_symbolic_colors();
+ }
+ try {
+ colorizeprovider->load_from_data(css_str);
+ } catch (const Gtk::CssProviderError &ex) {
+ g_critical("CSSProviderError::load_from_data(): failed to load '%s'\n(%s)", css_str.c_str(), ex.what().c_str());
+ }
+ Gtk::StyleContext::add_provider_for_screen(screen, colorizeprovider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
if (!strncmp(gtk_font_name, "Cantarell", 9)) {
auto provider = Gtk::CssProvider::create();
css_str = "#monoStrokeWidth,";
diff --git a/src/inkscape.h b/src/inkscape.h
index ae5e968fa..897f9e296 100644
--- a/src/inkscape.h
+++ b/src/inkscape.h
@@ -110,7 +110,6 @@ public:
SPDocument * active_document();
SPDesktop * active_desktop();
Glib::RefPtr<Gtk::CssProvider> colorizeprovider;
- Glib::RefPtr<Gtk::CssProvider> customcssprovider;
// Use this function to get selection model etc for a document
Inkscape::ActionContext action_context_for_document(SPDocument *doc);
Inkscape::ActionContext active_action_context();
@@ -208,7 +207,6 @@ public:
}
void add_gtk_css();
- void add_inkscape_css();
void add_icon_theme();
private:
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 02247f02b..1584a7662 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -777,27 +777,13 @@ void InkscapePreferences::themeChange()
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool darktheme = prefs->getBool("/theme/preferDarkTheme", false);
Glib::ustring themename = prefs->getString("/theme/gtkTheme");
- Glib::ustring customthemename = prefs->getString("/theme/gtkTheme");
- if (customthemename.find("inkscapecustom::") != -1) {
- // we use adwaita as base of all custom CSS, seems more standar than user default theme than can make
- // unwanted results
- themename = "Adwaita";
- }
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
GtkSettings *settings = gtk_settings_get_default();
g_object_set(settings, "gtk-theme-name", themename.c_str(), NULL);
g_object_set(settings, "gtk-application-prefer-dark-theme", darktheme, NULL);
-
gchar *gtkThemeName;
gboolean gtkApplicationPreferDarkTheme;
bool dark = darktheme || themename.find(":dark") != -1;
- if (customthemename.find("inkscapecustom::") != -1) {
- dark = prefs->getBool("/theme/preferDarkTheme", false) || customthemename.find(":dark") != -1;
- INKSCAPE.add_inkscape_css();
- } else if (INKSCAPE.customcssprovider) {
- auto const screen = Gdk::Screen::get_default();
- Gtk::StyleContext::remove_provider_for_screen(screen, INKSCAPE.customcssprovider);
- }
if (!dark) {
Glib::RefPtr<Gtk::StyleContext> stylecontext = window->get_style_context();
Gdk::RGBA rgba;
@@ -1122,21 +1108,6 @@ void InkscapePreferences::initPageUI()
labels.emplace_back(theme);
values.emplace_back(theme);
}
- using namespace Inkscape::IO::Resource;
- auto folders = get_foldernames(THEMES, { "application" });
- for (auto &folder : folders) {
- // from https://stackoverflow.com/questions/8520560/get-a-file-name-from-a-path#8520871
- // Maybe we can link boost path utilities
- // Remove directory if present.
- // Do this before extension removal incase directory has a period character.
- const size_t last_slash_idx = folder.find_last_of("\\/");
- if (std::string::npos != last_slash_idx) {
- folder.erase(0, last_slash_idx + 1);
- }
-
- labels.push_back(folder);
- values.push_back("inkscapecustom::" + folder);
- }
labels.emplace_back(_("Use system theme"));
values.push_back(prefs->getString("/theme/defaultTheme"));
g_list_free(list);
@@ -2616,8 +2587,7 @@ void InkscapePreferences::initPageSystem()
_page_system.add_line(true, _("User extensions: "), _sys_user_extension_dir, "",
_("Location of the user’s extensions"), true);
- _sys_user_themes_dir.init((char const *)IO::Resource::get_path(IO::Resource::USER, IO::Resource::THEMES, ""),
- _("Open themes folder"));
+ _sys_user_themes_dir.init(g_build_filename(g_get_user_data_dir(), "themes", NULL), _("Open themes folder"));
_page_system.add_line(true, _("User themes: "), _sys_user_themes_dir, "", _("Location of the user’s themes"), true);
_sys_user_icons_dir.init((char const *)IO::Resource::get_path(IO::Resource::USER, IO::Resource::ICONS, ""),