summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg9
-rw-r--r--share/icons/nextgen/highlights.css8
-rw-r--r--share/icons/nextgen/scalable/actions/tool-measure.svg137
-rw-r--r--share/icons/nextgen/symbolic/actions/tool-measure-symbolic.svg1
-rw-r--r--share/icons/nextgen/symbolic/actions/tool-spray-symbolic.svg1
-rw-r--r--share/icons/nextgen/symbolic/actions/tool-tweak-symbolic.svg1
-rw-r--r--share/ui/style.css10
-rw-r--r--src/inkscape.cpp72
-rw-r--r--src/inkscape.h1
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp237
-rw-r--r--src/ui/dialog/inkscape-preferences.h2
-rw-r--r--src/ui/icon-loader.cpp10
-rw-r--r--src/ui/widget/color-picker.cpp8
13 files changed, 318 insertions, 179 deletions
diff --git a/share/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg b/share/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg
index 0f280bb38..62ea80d4e 100644
--- a/share/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg
+++ b/share/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg
@@ -3,16 +3,13 @@
<svg xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1" id="svg1" width="16" height="16" viewBox="0 0 16 16" sodipodi:docname="dialog-align-and-distribute-symbolic.svg"><sodipodi:namedview objecttolerance="10" gridtolerance="10" guidetolerance="10" id="namedview" showgrid="true" inkscape:zoom="0.6002936" inkscape:cx="732.67439" inkscape:cy="-567.94603" inkscape:window-width="1920" inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" inkscape:current-layer="layer1">
<inkscape:grid type="xygrid" id="grid"/>
</sodipodi:namedview>
- <style id="style226">
+ <style id="style226">
+ .base {fill: #000000;}
.success { fill:#4AD589; }
.warning { fill:#F57900; }
.error { fill:#cc0000; }
</style>
- <style id="style226">
- .success { fill:#009911; }
- .warning { fill:#009911; }
- .error { fill:#00ffff; }
- </style>
+ <style id="highlights"> @import "../../highlights.css"; </style>
<g transform="translate(-135,-807.36218)" inkscape:label="00069" id="dialog-align-and-distribute">
<path inkscape:connector-curvature="0" id="rect18735" d="m 135,807.36218 h 16 v 16 h -16 z" style="opacity:0;fill:none"/>
<path inkscape:connector-curvature="0" id="rect18737" d="m 136,808.36218 h 1 v 13 h -1 z" style="opacity:1"/>
diff --git a/share/icons/nextgen/highlights.css b/share/icons/nextgen/highlights.css
index 1a6b42e15..e171edde0 100644
--- a/share/icons/nextgen/highlights.css
+++ b/share/icons/nextgen/highlights.css
@@ -1,15 +1,15 @@
.base {
- fill: #FF1100;
+ fill: #333333;
}
.success {
- fill: #FFCE00;
+ fill: rgb(213, 74, 201);
}
.warning {
- fill: #00FF48;
+ fill: rgb(9, 61, 63);
}
.error {
- fill: #FF00DB;
+ fill: #6dcc00;
} \ No newline at end of file
diff --git a/share/icons/nextgen/scalable/actions/tool-measure.svg b/share/icons/nextgen/scalable/actions/tool-measure.svg
new file mode 100644
index 000000000..1005334cc
--- /dev/null
+++ b/share/icons/nextgen/scalable/actions/tool-measure.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="svg1"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ sodipodi:docname="tool-measure-symbolic.svg"
+ inkscape:version="1.0alpha2 (92053aa9ea, 2019-06-13)">
+ <style id="style226">
+ .base {fill: #000000;}
+ .success { fill:#4AD589; }
+ .warning { fill:#F57900; }
+ .error { fill:#cc0000; }
+ </style>
+ <style id="highlights"> @import "../../highlights.css"; </style>
+ <metadata
+ id="metadata852">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs850" />
+ <sodipodi:namedview
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ id="namedview"
+ showgrid="true"
+ inkscape:zoom="31.678384"
+ inkscape:cx="7.969267"
+ inkscape:cy="7.571171"
+ inkscape:window-width="1360"
+ inkscape:window-height="704"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg1"
+ inkscape:document-rotation="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid" />
+ <style
+ id="style862">.success { fill:#25FF4E; }
+.error { fill:#CC0000; }
+.warning { fill:#FF25CE; }
+</style>
+ </sodipodi:namedview>
+ <rect
+ style="opacity:0.60953183"
+ ry="0"
+ rx="0"
+ y="2"
+ x="8.0427818"
+ height="12.666823"
+ width="3.0714278"
+ id="rect878"
+ class="error" />
+ <rect
+ style="opacity:0.78496546"
+ class="error"
+ id="rect856"
+ width="3.0714278"
+ height="12.666823"
+ x="5"
+ y="2"
+ rx="0"
+ ry="0" />
+ <g
+ transform="matrix(0.666667,0,0,0.666667,-189.69806,-598.89953)"
+ id="tool-measure"
+ inkscape:label="00336">
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13362"
+ d="m 284.54709,898.3493 h 24 v 24 h -24 z"
+ style="opacity:0;fill:none" />
+ <path
+ style="opacity:1"
+ d="m 290.6066,900.4247 v 20.9959 h 11.9246 v -17.1209 c 0,-1.8792 -1.1179,-3.875 -3.6875,-3.875 z m 2,2 h 6.1216 c 1.3125,0 1.8125,0.8107 1.8125,1.9375 v 15.0312 h -7.9341 z"
+ id="path13364"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13370"
+ d="m 292.65979,903.36218 h 3.25001 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -3.25001 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13372"
+ d="m 292.65979,911.36218 h 3.25001 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -3.25001 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13376"
+ d="m 292.72229,917.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13378"
+ d="m 292.72229,915.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13380"
+ d="m 292.72229,913.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13382"
+ d="m 292.72229,909.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13384"
+ d="m 292.72229,907.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect13386"
+ d="m 292.72229,905.36218 h 1.18751 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 h -1.18751 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z"
+ style="opacity:1" />
+ </g>
+</svg>
diff --git a/share/icons/nextgen/symbolic/actions/tool-measure-symbolic.svg b/share/icons/nextgen/symbolic/actions/tool-measure-symbolic.svg
index 9874a1907..1005334cc 100644
--- a/share/icons/nextgen/symbolic/actions/tool-measure-symbolic.svg
+++ b/share/icons/nextgen/symbolic/actions/tool-measure-symbolic.svg
@@ -15,6 +15,7 @@
sodipodi:docname="tool-measure-symbolic.svg"
inkscape:version="1.0alpha2 (92053aa9ea, 2019-06-13)">
<style id="style226">
+ .base {fill: #000000;}
.success { fill:#4AD589; }
.warning { fill:#F57900; }
.error { fill:#cc0000; }
diff --git a/share/icons/nextgen/symbolic/actions/tool-spray-symbolic.svg b/share/icons/nextgen/symbolic/actions/tool-spray-symbolic.svg
index 560753df7..28c6d443e 100644
--- a/share/icons/nextgen/symbolic/actions/tool-spray-symbolic.svg
+++ b/share/icons/nextgen/symbolic/actions/tool-spray-symbolic.svg
@@ -48,6 +48,7 @@
id="grid" />
</sodipodi:namedview>
<style id="style226">
+ .base {fill: #000000;}
.success { fill:#4AD589; }
.warning { fill:#F57900; }
.error { fill:#cc0000; }
diff --git a/share/icons/nextgen/symbolic/actions/tool-tweak-symbolic.svg b/share/icons/nextgen/symbolic/actions/tool-tweak-symbolic.svg
index cca288dd2..a8e997ee3 100644
--- a/share/icons/nextgen/symbolic/actions/tool-tweak-symbolic.svg
+++ b/share/icons/nextgen/symbolic/actions/tool-tweak-symbolic.svg
@@ -64,6 +64,7 @@
type="xygrid" />
</sodipodi:namedview>
<style id="style226">
+ .base {fill: #000000;}
.success { fill:#4AD589; }
.warning { fill:#F57900; }
.error { fill:#cc0000; }
diff --git a/share/ui/style.css b/share/ui/style.css
index 951ae4324..452b88917 100644
--- a/share/ui/style.css
+++ b/share/ui/style.css
@@ -137,6 +137,10 @@ image {
* _symbolic_error_color has one of this calsses applied
*/
+.system_base_color {
+ color: @theme_fg_color;
+}
+
.system_error_color {
color: @error_color;
}
@@ -149,10 +153,6 @@ image {
color: @success_color;
}
-.system_base_color {
- color: @theme_fg_color;
-}
-
GtkWidget,
widget {
/* font-size: 12pt; */
@@ -423,4 +423,4 @@ combobox window.popup scrolledwindow treeview separator {}
#InkSpinScale spinbutton entry {
padding: 0;
outline-style: none;
-}
+} \ No newline at end of file
diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index c4e1f8dbe..418285c4c 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -503,11 +503,11 @@ Glib::ustring Application::get_symbolic_colors()
gchar colornamed_inverse[64];
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = 0x2E3436ff;
- int colorsetbase_inverse = colorsetbase^ 0xffffff00;
- int colorsetsuccess = 0x4AD589ff;
- int colorsetwarning = 0xF57900ff;
- int colorseterror = 0xcc0000ff;
+ guint32 colorsetbase = 0x2E3436ff;
+ guint32 colorsetbase_inverse = colorsetbase^ 0xffffff00;
+ guint32 colorsetsuccess = 0x4AD589ff;
+ guint32 colorsetwarning = 0xF57900ff;
+ guint32 colorseterror = 0xcc0000ff;
colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", colorsetbase);
sp_svg_write_color(colornamed, sizeof(colornamed), colorsetbase);
colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess);
@@ -538,66 +538,6 @@ Glib::ustring Application::get_symbolic_colors()
return css_str;
}
-void Application::get_higlight_colors(int &colorsetbase, int &colorsetsuccess, int &colorsetwarning, int &colorseterror)
-{
- using namespace Inkscape::IO::Resource;
- 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, true);
- if (!higlight.empty()) {
- std::ifstream ifs(higlight);
- std::string content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
- Glib::ustring result;
- size_t startpos = content.find(".base");
- size_t 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());
- colorsetbase = base_color_sp.toRGBA32(1);
- }
- startpos = content.find(".success");
- 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 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);
- }
- startpos = content.find(".warning");
- 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 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);
- }
- startpos = content.find(".error");
- 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 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);
- }
- }
-}
-
/**
* \brief Add our CSS style sheets
*/
@@ -654,7 +594,7 @@ Application::add_gtk_css()
}
Glib::ustring css_str = "";
if (prefs->getBool("/theme/symbolicIcons", false)) {
- if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
+ if (!prefs->getBool("/theme/symbolicDefaultColors", true)) {
css_str = get_symbolic_colors();
}
}
diff --git a/src/inkscape.h b/src/inkscape.h
index 7f899393f..ab6b65eac 100644
--- a/src/inkscape.h
+++ b/src/inkscape.h
@@ -141,7 +141,6 @@ public:
void selection_set (Inkscape::Selection * selection);
void readStyleSheets(bool forceupd = false);
Glib::ustring get_symbolic_colors();
- void get_higlight_colors(int &colorsetbase, 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/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 1068067d6..1ae581365 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -81,6 +81,9 @@ using Inkscape::UI::Widget::PrefSpinButton;
using Inkscape::UI::Widget::StyleSwatch;
using Inkscape::CMSSystem;
+#define REMOVE_SPACES(x) \
+ x.erase(0, x.find_first_not_of(' ')); \
+ x.erase(x.find_last_not_of(' ') + 1);
InkscapePreferences::InkscapePreferences()
: UI::Widget::Panel ("/dialogs/preferences", SP_VERB_DIALOG_DISPLAY),
@@ -618,20 +621,35 @@ void InkscapePreferences::symbolicThemeCheck()
}
if (_symbolic_icons.get_parent()) {
if (!symbolic) {
+ // 2 first order might important
+ _symbolic_base_colors.set_active(true);
_symbolic_icons.set_active(false);
_symbolic_icons.get_parent()->hide();
- _symbolic_base_color.get_parent()->hide();
+ _symbolic_base_colors.get_parent()->hide();
+ _symbolic_base_color.get_parent()->get_parent()->hide();
+ _symbolic_success_color.get_parent()->get_parent()->hide();
+ _theme_decide_color.get_parent()->hide();
}
else {
_symbolic_icons.get_parent()->show();
- _symbolic_base_color.get_parent()->show();
+ _symbolic_base_colors.get_parent()->show();
+ _symbolic_base_color.get_parent()->get_parent()->show();
+ _symbolic_success_color.get_parent()->get_parent()->show();
+ _theme_decide_color.get_parent()->show();
}
}
}
void InkscapePreferences::resetIconsColors() {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if (prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
+ if (!prefs->getBool("/theme/symbolicIcons", false)) {
+ _symbolic_base_colors.set_sensitive(false);
+ _symbolic_base_color.setSensitive(false);
+ _symbolic_success_color.setSensitive(false);
+ _symbolic_warning_color.setSensitive(false);
+ _symbolic_error_color.setSensitive(false);
+ _theme_decide_color.set_sensitive(false);
+ } else if (prefs->getBool("/theme/symbolicDefaultColors", true)) {
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
Gdk::RGBA normal_color = _symbolic_base_color.get_style_context()->get_color();
Gdk::RGBA success_color = _symbolic_success_color.get_style_context()->get_color();
@@ -641,54 +659,142 @@ void InkscapePreferences::resetIconsColors() {
SPColor success_color_sp(success_color.get_red(), success_color.get_green(), success_color.get_blue());
SPColor warning_color_sp(warning_color.get_red(), warning_color.get_green(), warning_color.get_blue());
SPColor error_color_sp(error_color.get_red(), error_color.get_green(), error_color.get_blue());
- int colorsetbase = normal_color_sp.toRGBA32(normal_color.get_alpha());
- int colorsetsuccess = success_color_sp.toRGBA32(success_color.get_alpha());
- int colorsetwarning = error_color_sp.toRGBA32(error_color.get_alpha());
- int colorseterror = warning_color_sp.toRGBA32(warning_color.get_alpha());
+ guint32 colorsetbase = normal_color_sp.toRGBA32(normal_color.get_alpha());
+ guint32 colorsetsuccess = success_color_sp.toRGBA32(success_color.get_alpha());
+ guint32 colorsetwarning = warning_color_sp.toRGBA32(warning_color.get_alpha());
+ guint32 colorseterror = error_color_sp.toRGBA32(error_color.get_alpha());
_symbolic_base_color.setRgba32(colorsetbase);
_symbolic_success_color.setRgba32(colorsetsuccess);
- _symbolic_error_color.setRgba32(colorsetwarning);
- _symbolic_warning_color.setRgba32(colorseterror);
+ _symbolic_warning_color.setRgba32(colorsetwarning);
+ _symbolic_error_color.setRgba32(colorseterror);
prefs->setInt("/theme/" + themeiconname + "/symbolicBaseColor", colorsetbase);
prefs->setInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess);
- prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorsetwarning);
- prefs->setInt("/theme/" + themeiconname + "/symbolicWaringColor", colorseterror);
+ prefs->setInt("/theme/" + themeiconname + "/symbolicWarningColor", colorsetwarning);
+ prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorseterror);
auto const screen = Gdk::Screen::get_default();
if (INKSCAPE.colorizeprovider) {
Gtk::StyleContext::remove_provider_for_screen(screen, INKSCAPE.colorizeprovider);
}
+ _symbolic_base_color.setSensitive(false);
+ _symbolic_success_color.setSensitive(false);
+ _symbolic_warning_color.setSensitive(false);
+ _symbolic_error_color.setSensitive(false);
+ _theme_decide_color.set_sensitive(false);
+ } else {
+ _symbolic_base_color.setSensitive(true);
+ _symbolic_success_color.setSensitive(true);
+ _symbolic_warning_color.setSensitive(true);
+ _symbolic_error_color.setSensitive(true);
+ _theme_decide_color.set_sensitive(true);
+ }
+}
+
+
+void InkscapePreferences::get_highlight_colors(guint32 &colorsetbase, guint32 &colorsetsuccess, guint32 &colorsetwarning, guint32 &colorseterror)
+{
+ using namespace Inkscape::IO::Resource;
+ 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, true);
+ if (!higlight.empty()) {
+ std::ifstream ifs(higlight);
+ std::string content((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
+ Glib::ustring result;
+ size_t startpos = content.find(".base");
+ size_t endpos = content.find("}");
+ if (startpos != std::string::npos) {
+ result = content.substr(startpos, endpos - startpos);
+ size_t startposin = result.find("fill:");
+ size_t endposin = result.find(";");
+ result = result.substr(startposin + 5, endposin - (startposin + 5));
+ REMOVE_SPACES(result);
+ Gdk::RGBA base_color = Gdk::RGBA(result);
+ SPColor base_color_sp(base_color.get_red(), base_color.get_green(), base_color.get_blue());
+ colorsetbase = base_color_sp.toRGBA32(base_color.get_alpha());
+ }
+ content.erase(startpos, endpos - startpos + 1);
+ startpos = content.find(".success");
+ endpos = content.find("}");
+ if (startpos != std::string::npos) {
+ result = content.substr(startpos, endpos - startpos);
+ size_t startposin = result.find("fill:");
+ size_t endposin = result.find(";");
+ result = result.substr(startposin + 5, endposin - (startposin + 5));
+ REMOVE_SPACES(result);
+ 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(success_color.get_alpha());
+ }
+ content.erase(startpos, endpos - startpos + 1);
+ startpos = content.find(".warning");
+ endpos = content.find("}");
+ if (startpos != std::string::npos) {
+ result = content.substr(startpos, endpos - startpos);
+ size_t startposin = result.find("fill:");
+ size_t endposin = result.find(";");
+ result = result.substr(startposin + 5, endposin - (startposin + 5));
+ REMOVE_SPACES(result);
+ 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(warning_color.get_alpha());
+ }
+ content.erase(startpos, endpos - startpos + 1);
+ startpos = content.find(".error");
+ endpos = content.find("}");
+ if (startpos != std::string::npos) {
+ result = content.substr(startpos, endpos - startpos);
+ size_t startposin = result.find("fill:");
+ size_t endposin = result.find(";");
+ result = result.substr(startposin + 5, endposin - (startposin + 5));
+ REMOVE_SPACES(result);
+ 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(error_color.get_alpha());
+ }
}
}
void InkscapePreferences::themeIconsColors()
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
+ if (!prefs->getBool("/theme/symbolicDefaultColors", true)) {
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
- int colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
- int colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
- int colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
- INKSCAPE.get_higlight_colors(colorsetbase, colorsetsuccess, colorsetwarning, colorseterror);
+ Gdk::RGBA normal_color = _symbolic_base_color.get_style_context()->get_color();
+ Gdk::RGBA success_color = _symbolic_success_color.get_style_context()->get_color();
+ Gdk::RGBA warning_color = _symbolic_warning_color.get_style_context()->get_color();
+ Gdk::RGBA error_color = _symbolic_error_color.get_style_context()->get_color();
+ SPColor normal_color_sp(normal_color.get_red(), normal_color.get_green(), normal_color.get_blue());
+ SPColor success_color_sp(success_color.get_red(), success_color.get_green(), success_color.get_blue());
+ SPColor warning_color_sp(warning_color.get_red(), warning_color.get_green(), warning_color.get_blue());
+ SPColor error_color_sp(error_color.get_red(), error_color.get_green(), error_color.get_blue());
+ guint32 colorsetbase = normal_color_sp.toRGBA32(normal_color.get_alpha());
+ guint32 colorsetsuccess = success_color_sp.toRGBA32(success_color.get_alpha());
+ guint32 colorsetwarning = warning_color_sp.toRGBA32(warning_color.get_alpha());
+ guint32 colorseterror = error_color_sp.toRGBA32(error_color.get_alpha());
+ get_highlight_colors(colorsetbase, colorsetsuccess, colorsetwarning, colorseterror);
_symbolic_base_color.setRgba32(colorsetbase);
_symbolic_success_color.setRgba32(colorsetsuccess);
_symbolic_warning_color.setRgba32(colorsetwarning);
_symbolic_error_color.setRgba32(colorseterror);
prefs->setInt("/theme/" + themeiconname + "/symbolicBaseColor", colorsetbase);
prefs->setInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess);
- prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorsetwarning);
- prefs->setInt("/theme/" + themeiconname + "/symbolicWaringColor", colorseterror);
+ prefs->setInt("/theme/" + themeiconname + "/symbolicWarningColor", colorsetwarning);
+ prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorseterror);
+ changeIconsColors();
}
}
void InkscapePreferences::changeIconsColors() {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
+ if (!prefs->getBool("/theme/symbolicDefaultColors", true)) {
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
- int colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
- int colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
- int colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
+ guint32 colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
+ guint32 colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
+ guint32 colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
+ guint32 colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
_symbolic_base_color.setRgba32(colorsetbase);
_symbolic_success_color.setRgba32(colorsetsuccess);
_symbolic_warning_color.setRgba32(colorsetwarning);
@@ -720,69 +826,19 @@ void InkscapePreferences::toggleSymbolic() {
window->get_style_context()->add_class("symbolic");
window->get_style_context()->remove_class("regular");
}
+ _symbolic_base_colors.set_sensitive(true);
+ resetIconsColors();
} else {
if (window) {
window->get_style_context()->add_class("regular");
window->get_style_context()->remove_class("symbolic");
}
+ _symbolic_base_colors.set_active(true);
+ _symbolic_base_colors.set_sensitive(false);
}
INKSCAPE.signal_change_theme.emit();
}
-/* void InkscapePreferences::symbolicCustomColorsReset()
-{
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = 0x2E3436ff;
- int colorsetsuccess = 0x4AD589ff;
- int colorsetwarning = 0xF57900ff;
- int colorseterror = 0xcc0000ff;
- INKSCAPE.get_higlight_colors(colorsetbase, colorsetsuccess, colorsetwarning, colorseterror);
- _symbolic_base_color.setRgba32(colorsetbase);
- _symbolic_success_color.setRgba32(colorsetsuccess);
- _symbolic_warning_color.setRgba32(colorsetwarning);
- _symbolic_error_color.setRgba32(colorseterror);
- prefs->setInt("/theme/" + themeiconname + "/symbolicBaseColor", colorsetbase);
- prefs->setInt("/theme/" + themeiconname + "/symbolicSuccessColor", colorsetsuccess);
- prefs->setInt("/theme/" + themeiconname + "/symbolicErrorColor", colorsetwarning);
- prefs->setInt("/theme/" + themeiconname + "/symbolicWaringColor", colorseterror);
- symbolicCustomColors();
-}
-
-
-void InkscapePreferences::symbolicChangeCustom()
-{
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
- resetColors();
- _symbolic_base_color.setSensitive(false);
- _symbolic_success_color.setSensitive(false);
- _symbolic_warning_color.setSensitive(false);
- _symbolic_error_color.setSensitive(false);
- symbolicDefaultColor();
- } else if (prefs->getBool("/theme/symbolicIcons", true)) {
- _symbolic_base_color.setSensitive(true);
- _symbolic_success_color.setSensitive(true);
- _symbolic_warning_color.setSensitive(true);
- _symbolic_error_color.setSensitive(true);
- Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
- int colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
- int colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
- int colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
- _symbolic_base_color.setRgba32(colorsetbase);
- _symbolic_success_color.setRgba32(colorsetsuccess);
- _symbolic_warning_color.setRgba32(colorsetwarning);
- _symbolic_error_color.setRgba32(colorseterror);
- symbolicCustomColors();
- } else {
- _symbolic_base_color.setSensitive(false);
- _symbolic_success_color.setSensitive(false);
- _symbolic_warning_color.setSensitive(false);
- _symbolic_error_color.setSensitive(false);
- }
-} */
-
void InkscapePreferences::themeChange()
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -1043,10 +1099,10 @@ void InkscapePreferences::initPageUI()
_icon_theme.signal_changed().connect(sigc::mem_fun(*this, &InkscapePreferences::symbolicThemeCheck));
}
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- _symbolic_icons.init(_("Use symbolic icons"), "/theme/symbolicIcons", true);
+ _symbolic_icons.init(_("Use symbolic icons"), "/theme/symbolicIcons", false);
_symbolic_icons.signal_clicked().connect(sigc::mem_fun(*this, &InkscapePreferences::toggleSymbolic));
_page_theme.add_line(true, "", _symbolic_icons, "", "", true);
- _symbolic_base_colors.init(_("Use custom colors for icons"), "/theme/symbolicIconsDefaultColor", true);
+ _symbolic_base_colors.init(_("Use default colors for icons"), "/theme/symbolicDefaultColors", true);
_symbolic_base_colors.signal_clicked().connect(sigc::mem_fun(*this, &InkscapePreferences::resetIconsColors));
_page_theme.add_line(true, "", _symbolic_base_colors, "", "", true);
_symbolic_base_color.init(_("Color for symbolic icons:"), "/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
@@ -1073,21 +1129,22 @@ void InkscapePreferences::initPageUI()
}
Gtk::Box *icon_buttons = Gtk::manage(new Gtk::Box());
icon_buttons->pack_start(_symbolic_base_color, true, true, 4);
- _page_theme.add_line(false, _("Change icon color:"), *icon_buttons, "",
- _("Color for symbolic icons. Some icons changes need reload"), false);
+ _page_theme.add_line(false, "", *icon_buttons, _("Icon color"),
+ _("Base color for icons. Some icons changes need reload"), false);
Gtk::Box *icon_buttons_hight = Gtk::manage(new Gtk::Box());
icon_buttons_hight->pack_start(_symbolic_success_color, true, true, 4);
icon_buttons_hight->pack_start(_symbolic_warning_color, true, true, 4);
icon_buttons_hight->pack_start(_symbolic_error_color, true, true, 4);
- _page_theme.add_line(false, _("Change icon highlights:"), *icon_buttons_hight, "",
- _("Set the predefined colors from the creator of icon set"), false);
+ _page_theme.add_line(false,"", *icon_buttons_hight, _("Highlights"),
+ _("Highlights colors, some symbolic icon themes use it. Some icons changes need reload"), false);
Gtk::Box *icon_buttons_def = Gtk::manage(new Gtk::Box());
- Gtk::Button *theme_decide_color = Gtk::manage(new Gtk::Button(_("Theme defaults")));
- theme_decide_color->set_tooltip_text(_("Defaul colors from theme)"));
- theme_decide_color->signal_clicked().connect(sigc::mem_fun(*this, &InkscapePreferences::themeIconsColors));
- icon_buttons_def->pack_start(*theme_decide_color, true, true, 4);
- _page_theme.add_line(false, _("Default colors:"), *icon_buttons_def, "",
- _("Set the predefined colors fro the creator of icon set"), false);
+ _theme_decide_color.set_label(_("Theme default colors"));
+ _theme_decide_color.set_tooltip_text(_("Defaul colors from theme)"));
+ _theme_decide_color.signal_clicked().connect(sigc::mem_fun(*this, &InkscapePreferences::themeIconsColors));
+ icon_buttons_def->pack_start(_theme_decide_color, true, true, 4);
+ resetIconsColors();
+ _page_theme.add_line(false, "", *icon_buttons_def, "",
+ _("Reset theme colors, some symbolic icon themes use it. Some icons changes need reload"), false);
{
Glib::ustring sizeLabels[] = { C_("Icon size", "Larger"), C_("Icon size", "Large"), C_("Icon size", "Small"),
C_("Icon size", "Smaller") };
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index 7416e125a..beb49fa84 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -250,6 +250,7 @@ protected:
UI::Widget::PrefColorPicker _symbolic_warning_color;
UI::Widget::PrefColorPicker _symbolic_error_color;
UI::Widget::PrefColorPicker _symbolic_success_color;
+ Gtk::Button _theme_decide_color;
UI::Widget::PrefCombo _misc_small_toolbar;
UI::Widget::PrefCombo _misc_small_secondary;
UI::Widget::PrefCombo _misc_small_tools;
@@ -598,6 +599,7 @@ private:
void resetIconsColors();
void themeIconsColors();
void changeIconsColor(guint32 /*color*/) { changeIconsColors(); }
+ void get_highlight_colors(guint32 &colorsetbase, guint32 &colorsetsuccess, guint32 &colorsetwarning, guint32 &colorseterror);
InkscapePreferences();
InkscapePreferences(InkscapePreferences const &d);
diff --git a/src/ui/icon-loader.cpp b/src/ui/icon-loader.cpp
index c308014f0..a94dd0be1 100644
--- a/src/ui/icon-loader.cpp
+++ b/src/ui/icon-loader.cpp
@@ -67,12 +67,12 @@ Glib::RefPtr<Gdk::Pixbuf> sp_get_icon_pixbuf(Glib::ustring icon_name, gint size)
if (iconinfo && SP_ACTIVE_DESKTOP->getToplevel()) {
bool was_symbolic = false;
Glib::ustring css_str = "";
- if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
+ if (!prefs->getBool("/theme/symbolicDefaultColors", true)) {
Glib::ustring themeiconname = prefs->getString("/theme/iconTheme");
- int colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
- int colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
- int colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
- int colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
+ guint32 colorsetbase = prefs->getInt("/theme/" + themeiconname + "/symbolicBaseColor", 0x2E3436ff);
+ guint32 colorsetsuccess = prefs->getInt("/theme/" + themeiconname + "/symbolicSuccessColor", 0x4AD589ff);
+ guint32 colorsetwarning = prefs->getInt("/theme/" + themeiconname + "/symbolicWarningColor", 0xF57900ff);
+ guint32 colorseterror = prefs->getInt("/theme/" + themeiconname + "/symbolicErrorColor", 0xcc0000ff);
gchar colornamed[64];
gchar colornamedsuccess[64];
gchar colornamedwarning[64];
diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp
index 0e9984eac..4b8febce0 100644
--- a/src/ui/widget/color-picker.cpp
+++ b/src/ui/widget/color-picker.cpp
@@ -69,9 +69,13 @@ void ColorPicker::setupDialog(const Glib::ustring &title)
}
-void ColorPicker::setTransientFor(Glib::RefPtr<Gdk::Window> transientwindow) { _transientwindow = transientwindow; }
+void ColorPicker::setTransientFor(Glib::RefPtr<Gdk::Window> transientwindow) {
+ _transientwindow = transientwindow;
+}
-void ColorPicker::setSensitive(bool sensitive) { _color_selector->set_sensitive(sensitive); }
+void ColorPicker::setSensitive(bool sensitive) {
+ set_sensitive(sensitive);
+}
void ColorPicker::setRgba32 (guint32 rgba)
{