summaryrefslogtreecommitdiffstats
path: root/src/inkscape.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-06-23 17:15:35 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-06-23 17:15:53 +0000
commite82a32013c7837f830b11637182ce3da8a097372 (patch)
tree3be83a1533bb0d22ca4c6ef1d89aa636fedf2d00 /src/inkscape.cpp
parentUpdate macOS build pipeline (diff)
downloadinkscape-e82a32013c7837f830b11637182ce3da8a097372.tar.gz
inkscape-e82a32013c7837f830b11637182ce3da8a097372.zip
Remove experimental code to work in MR and fixes for selectors
Diffstat (limited to 'src/inkscape.cpp')
-rw-r--r--src/inkscape.cpp44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index 7b250f6dd..1871bff85 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -54,6 +54,9 @@
#include "libnrtype/FontFactory.h"
+#include "object/sp-root.h"
+#include "object/sp-style-elem.h"
+
#include "svg/svg-color.h"
#include "ui/dialog/debug.h"
@@ -417,29 +420,12 @@ Application::add_gtk_css()
if (prefs->getBool("/theme/symbolicIcons", false)) {
if (!prefs->getBool("/theme/symbolicIconsDefaultColor", true)) {
gchar colornamed[64];
- gchar colornamedsuccess[64];
- gchar colornamedwarning[64];
- gchar colornamederror[64];
gchar colornamed_inverse[64];
int colorset = prefs->getInt("/theme/symbolicColor", 0x2E3436ff);
sp_svg_write_color(colornamed, sizeof(colornamed), colorset);
- int colorsetsuccess = prefs->getInt("/theme/symbolicSuccessColor", 0x4AD589ff);
- sp_svg_write_color(colornamedsuccess, sizeof(colornamedsuccess), colorsetsuccess);
- int colorsetwarning = prefs->getInt("/theme/symbolicWarningColor", 0xF57900ff);
- sp_svg_write_color(colornamedwarning, sizeof(colornamedwarning), colorsetwarning);
- int colorseterror = prefs->getInt("/theme/symbolicErrorColor", 0xcc0000ff);
- sp_svg_write_color(colornamederror, sizeof(colornamederror), colorseterror);
// Use in case the special widgets have inverse theme background and symbolic
int colorset_inverse = colorset ^ 0xffffff00;
sp_svg_write_color(colornamed_inverse, sizeof(colornamed_inverse), colorset_inverse);
-
- css_str += "*{-gtk-icon-palette: success ";
- css_str += colornamedsuccess;
- css_str += ", warning ";
- css_str += colornamedwarning;
- css_str += ", error ";
- css_str += colornamederror;
- css_str += ";}";
css_str += "SPRuler, ruler-widget,";
css_str += ".bright image, .dark image";
css_str += "{color:";
@@ -479,6 +465,30 @@ Application::add_gtk_css()
}
}
+void Application::readStyleSheets(bool forceupd)
+{
+ SPDocument *document = SP_ACTIVE_DOCUMENT;
+ Inkscape::XML::Node *root = document->getReprRoot();
+ std::vector<Inkscape::XML::Node *> styles;
+ for (unsigned i = 0; i < root->childCount(); ++i) {
+ Inkscape::XML::Node *child = root->nthChild(i);
+ if (child && strcmp(child->name(), "svg:style") == 0) {
+ styles.insert(styles.begin(), child);
+ }
+ }
+ if (forceupd || styles.size() > 1) {
+ document->setStyleSheet(nullptr);
+ for (auto style : styles) {
+ gchar const *id = style->attribute("id");
+ if (id) {
+ SPStyleElem *styleelem = dynamic_cast<SPStyleElem *>(document->getObjectById(id));
+ styleelem->read_content();
+ }
+ }
+ document->getRoot()->emitModified(SP_OBJECT_MODIFIED_CASCADE);
+ }
+}
+
/* \brief Constructor for the application.
* Creates a new Inkscape::Application.
*