From 2c75064427bcd2d1e358bb492114d466b580de0c Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Tue, 4 Jun 2019 23:30:01 +0200 Subject: Fix a bug adding selectors --- src/ui/dialog/styledialog.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/ui/dialog/styledialog.cpp') diff --git a/src/ui/dialog/styledialog.cpp b/src/ui/dialog/styledialog.cpp index e14490f47..d0c4c5612 100644 --- a/src/ui/dialog/styledialog.cpp +++ b/src/ui/dialog/styledialog.cpp @@ -751,9 +751,16 @@ void StyleDialog::_readStyleElement() for (auto selector : _styleBox.get_children()) { Gtk::Box *box = dynamic_cast(&selector[0]); if (box) { - Gtk::TreeView *css_tree = dynamic_cast(box->get_children()[1]); - Glib::RefPtr model = css_tree->get_model(); - model->foreach_iter(sigc::mem_fun(*this, &StyleDialog::_on_foreach_iter)); + std::vector childs = box->get_children(); + if (childs.size() > 1) { + Gtk::TreeView *css_tree = dynamic_cast(childs[1]); + if (css_tree) { + Glib::RefPtr model = css_tree->get_model(); + if (model) { + model->foreach_iter(sigc::mem_fun(*this, &StyleDialog::_on_foreach_iter)); + } + } + } } } } @@ -838,6 +845,7 @@ void StyleDialog::_writeStyleElement(Glib::RefPtr store, Glib::u return; } Inkscape::Selection *selection = getDesktop()->getSelection(); + SP_ACTIVE_DOCUMENT->fixCSSSelectors(selector); SPObject *obj = nullptr; if (selection->objects().size() == 1) { obj = selection->objects().back(); @@ -854,6 +862,8 @@ void StyleDialog::_writeStyleElement(Glib::RefPtr store, Glib::u } for (auto &row : store->children()) { selector = row[_mColumns._colSelector]; + SP_ACTIVE_DOCUMENT->fixCSSSelectors(selector); + row[_mColumns._colSelector] = selector; selectorpos = row[_mColumns._colSelectorPos]; Glib::ustring opencomment = ""; Glib::ustring closecomment = ""; -- cgit v1.2.3