diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-06-23 17:15:35 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-06-23 17:15:53 +0000 |
| commit | e82a32013c7837f830b11637182ce3da8a097372 (patch) | |
| tree | 3be83a1533bb0d22ca4c6ef1d89aa636fedf2d00 /src/inkscape.cpp | |
| parent | Update macOS build pipeline (diff) | |
| download | inkscape-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.cpp | 44 |
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. * |
