diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/inkscape.cpp | 58 | ||||
| -rw-r--r-- | src/inkscape.h | 2 | ||||
| -rw-r--r-- | src/io/resource.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.cpp | 16 | ||||
| -rw-r--r-- | src/ui/icon-loader.cpp | 13 |
5 files changed, 59 insertions, 32 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp index c93e734e6..47e66db52 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -379,10 +379,19 @@ Glib::ustring Application::get_symbolic_colors() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring themeiconname = prefs->getString("/theme/iconTheme"); int colorset = 0x2E3436ff; - get_higlight_colors(colornamedsuccess, colornamedwarning, colornamederror); + int colorset_inverse = colorset ^ 0xffffff00; + int colorsetsuccess = 0x4AD589ff; + int colorsetwarning = 0xF57900ff; + int colorseterror = 0xcc0000ff; + get_higlight_colors(colorset, colorsetsuccess, colorsetwarning, colorseterror); colorset = prefs->getInt("/theme/" + themeiconname + "/symbolicColor", colorset); sp_svg_write_color(colornamed, sizeof(colornamed), colorset); - int colorset_inverse = colorset ^ 0xffffff00; + colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess); + sp_svg_write_color(colornamedsuccess, sizeof(colornamedsuccess), colorsetsuccess); + colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", colorsetwarning); + sp_svg_write_color(colornamedwarning, sizeof(colornamedwarning), colorsetwarning); + colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", colorseterror); + sp_svg_write_color(colornamederror, sizeof(colornamederror), colorseterror); sp_svg_write_color(colornamed_inverse, sizeof(colornamed_inverse), colorset_inverse); css_str += "*{-gtk-icon-palette: success "; css_str += colornamedsuccess; @@ -530,18 +539,15 @@ Application::~Application() // gtk_main_quit (); } -void Application::get_higlight_colors(gchar *colornamedsuccess, gchar *colornamedwarning, gchar *colornamederror) +void Application::get_higlight_colors(int &colorset, int &colorsetsuccess, int &colorsetwarning, int &colorseterror) { using namespace Inkscape::IO::Resource; - int colorsetsuccess = 0x4AD589ff; - int colorsetwarning = 0xF57900ff; - int colorseterror = 0xcc0000ff; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring themeiconname = prefs->getString("/theme/iconTheme"); if (themeiconname == prefs->getString("/theme/defaultIconTheme")) { themeiconname = "hicolor"; } - Glib::ustring higlight = get_filename(ICONS, Glib::ustring(themeiconname + "/highlights.css").c_str(), false, false); + Glib::ustring higlight = get_filename(ICONS, Glib::ustring(themeiconname + "/highlights.css").c_str(), false, true); if (!higlight.empty()) { std::ifstream ifs(higlight); std::string content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>())); @@ -550,9 +556,9 @@ void Application::get_higlight_colors(gchar *colornamedsuccess, gchar *colorname size_t endpos = content.find("}"); if (startpos != std::string::npos) { result = content.substr(startpos, endpos - startpos); - startpos = content.find("fill:"); - endpos = content.find(";"); - result = content.substr(startpos + 4, endpos - 1 - startpos + 4); + startpos = result.find("fill:"); + endpos = result.find(";"); + result = content.substr(startpos + 5, endpos - (startpos + 5)); Gdk::RGBA success_color = Gdk::RGBA(result); SPColor success_color_sp(success_color.get_red(), success_color.get_green(), success_color.get_blue()); colorsetsuccess = success_color_sp.toRGBA32(1); @@ -561,9 +567,9 @@ void Application::get_higlight_colors(gchar *colornamedsuccess, gchar *colorname endpos = content.find("}"); if (startpos != std::string::npos) { result = content.substr(startpos, endpos - startpos); - startpos = content.find("fill:"); - endpos = content.find(";"); - result = content.substr(startpos + 4, endpos - 1 - startpos + 4); + startpos = result.find("fill:"); + endpos = result.find(";"); + result = content.substr(startpos + 5, endpos - (startpos + 5)); Gdk::RGBA warning_color = Gdk::RGBA(result); SPColor warning_color_sp(warning_color.get_red(), warning_color.get_green(), warning_color.get_blue()); colorsetwarning = warning_color_sp.toRGBA32(1); @@ -572,23 +578,25 @@ void Application::get_higlight_colors(gchar *colornamedsuccess, gchar *colorname endpos = content.find("}"); if (startpos != std::string::npos) { result = content.substr(startpos, endpos - startpos); - startpos = content.find("fill:"); - endpos = content.find(";"); - result = content.substr(startpos + 4, endpos - 1 - startpos + 4); + startpos = result.find("fill:"); + endpos = result.find(";"); + result = content.substr(startpos + 5, endpos - (startpos + 5)); Gdk::RGBA error_color = Gdk::RGBA(result); SPColor error_color_sp(error_color.get_red(), error_color.get_green(), error_color.get_blue()); colorseterror = error_color_sp.toRGBA32(1); } + startpos = content.find(".base"); + endpos = content.find("}"); + if (startpos != std::string::npos) { + result = content.substr(startpos, endpos - startpos); + startpos = result.find("fill:"); + endpos = result.find(";"); + result = content.substr(startpos + 5, endpos - (startpos + 5)); + Gdk::RGBA base_color = Gdk::RGBA(result); + SPColor base_color_sp(base_color.get_red(), base_color.get_green(), base_color.get_blue()); + colorset = base_color_sp.toRGBA32(1); + } } - if (themeiconname == "hicolor") { - themeiconname = prefs->getString("/theme/defaultIconTheme"); - } - colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess); - sp_svg_write_color(colornamedsuccess, sizeof(colornamedsuccess), colorsetsuccess); - colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", colorsetwarning); - sp_svg_write_color(colornamedwarning, sizeof(colornamedwarning), colorsetwarning); - colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", colorseterror); - sp_svg_write_color(colornamederror, sizeof(colornamederror), colorseterror); } /** diff --git a/src/inkscape.h b/src/inkscape.h index 2f0b7ec8f..c9bff2cf3 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -141,7 +141,7 @@ public: void selection_set (Inkscape::Selection * selection); void readStyleSheets(bool forceupd = false); Glib::ustring get_symbolic_colors(); - void get_higlight_colors(gchar *colornamedsuccess, gchar *colornamedwarning, gchar *colornamederror); + void get_higlight_colors(int &colorset, int &colorsetsuccess, int &colorsetwarning, int &colorseterror); void eventcontext_set (Inkscape::UI::Tools::ToolBase * eventcontext); // Moved document add/remove functions into public inkscape.h as they are used diff --git a/src/io/resource.cpp b/src/io/resource.cpp index e65bfce1c..9f0f0a4ae 100644 --- a/src/io/resource.cpp +++ b/src/io/resource.cpp @@ -179,7 +179,7 @@ Glib::ustring get_filename(Type type, char const *filename, bool localized, bool } else if (file_test(sys_filename, G_FILE_TEST_EXISTS)) { result = Glib::ustring(sys_filename); g_info("Found resource file '%s' in system directory:\n\t%s", filename, result.c_str()); - } else { + } else if (!silent) { if (localized) { g_warning("Failed to find resource file '%s'. Looked in:\n\t%s\n\t%s\n\t%s\n\t%s", filename, user_filename_localized, user_filename, sys_filename_localized, sys_filename); diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 9b8e35384..b81f97cb7 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -684,9 +684,19 @@ void InkscapePreferences::symbolicCustomColorsReset() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring themeiconname = prefs->getString("/theme/iconTheme"); - prefs->setInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0); - prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", 0); - prefs->setInt("/theme/" + themeiconname + "/symbolicWaringColor", 0); + int colorset = 0x2E3436ff; + int colorsetsuccess = 0x4AD589ff; + int colorsetwarning = 0xF57900ff; + int colorseterror = 0xcc0000ff; + INKSCAPE.get_higlight_colors(colorset, colorsetsuccess, colorsetwarning, colorseterror); + _symbolic_color.setRgba32(colorset); + _symbolic_success_color.setRgba32(colorsetsuccess); + _symbolic_warning_color.setRgba32(colorsetwarning); + _symbolic_error_color.setRgba32(colorseterror); + prefs->setInt("/theme/" + themeiconname + "/symbolicSuccessColor",colorset); + prefs->setInt("/theme/" + themeiconname + "/symbolicColor", colorsetsuccess); + prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorsetwarning); + prefs->setInt("/theme/" + themeiconname + "/symbolicWaringColor", colorseterror); symbolicCustomColors(); } diff --git a/src/ui/icon-loader.cpp b/src/ui/icon-loader.cpp index 337a53aa4..a1696083d 100644 --- a/src/ui/icon-loader.cpp +++ b/src/ui/icon-loader.cpp @@ -69,15 +69,24 @@ Glib::RefPtr<Gdk::Pixbuf> sp_get_icon_pixbuf(Glib::ustring icon_name, gint size) Glib::ustring css_str = ""; if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) { using namespace Inkscape::IO::Resource; + int colorset = 0x2E3436ff; + int colorsetsuccess = 0x4AD589ff; + int colorsetwarning = 0xF57900ff; + int colorseterror = 0xcc0000ff; gchar colornamed[64]; gchar colornamedsuccess[64]; gchar colornamedwarning[64]; gchar colornamederror[64]; Glib::ustring themeiconname = prefs->getString("/theme/iconTheme"); - INKSCAPE.get_higlight_colors(colornamedsuccess, colornamedwarning, colornamederror); - int colorset = 0x2E3436ff; + INKSCAPE.get_higlight_colors(colorset, colorsetsuccess, colorsetwarning, colorseterror); colorset = prefs->getInt("/theme/" + themeiconname + "/symbolicColor", colorset); sp_svg_write_color(colornamed, sizeof(colornamed), colorset); + colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess); + sp_svg_write_color(colornamedsuccess, sizeof(colornamedsuccess), colorsetsuccess); + colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", colorsetwarning); + sp_svg_write_color(colornamedwarning, sizeof(colornamedwarning), colorsetwarning); + colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", colorseterror); + sp_svg_write_color(colornamederror, sizeof(colornamederror), colorseterror); _icon_pixbuf = iconinfo.load_symbolic(Gdk::RGBA(colornamed), Gdk::RGBA(colornamedsuccess), Gdk::RGBA(colornamedwarning), Gdk::RGBA(colornamederror), was_symbolic); |
