From 72a748b2303caf2c16a98c175d7f444d3b558ca5 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Fri, 20 Sep 2013 00:30:19 +0200 Subject: Fix assertion failure on Ctrl+C (bzr r12548) --- src/sp-object.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 895b36e1c..1ab3cade8 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -588,9 +588,12 @@ void SPObject::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) ochild->invoke_build(object->document, child, object->cloned); } catch (const FactoryExceptions::TypeNotRegistered& e) { - if (std::string(e.what()) != "rdf:RDF") { // temporary special case - g_warning("TypeNotRegistered exception: %s", e.what()); - } + std::string node = e.what(); + // special cases + if (node == "rdf:RDF") return; // no SP node yet + if (node == "inkscape:clipboard") return; // SP node not necessary + + g_warning("TypeNotRegistered exception: %s", e.what()); } } -- cgit v1.2.3 From 28669551d22dd94b33223ed729042ba3fefbc705 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Fri, 20 Sep 2013 17:03:42 +0200 Subject: Fix grids after C++ification. Patch from Markus Engel (bzr r12552) --- src/sp-object.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 1ab3cade8..8c7a24a2b 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -61,6 +61,14 @@ using std::strstr; # define debug(f, a...) /* */ #endif +namespace { + SPObject* createObject() { + return new SPObject(); + } + + bool gridRegistered = SPFactory::instance().registerObject("inkscape:grid", createObject); +} + guint update_in_progress = 0; // guard against update-during-update Inkscape::XML::NodeEventVector object_event_vector = { -- cgit v1.2.3 From d07f7a584ecfbb026421dc2d3b9b984a696409f2 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Mon, 23 Sep 2013 22:22:43 +0200 Subject: Added missing registration of FeDistantLight; made sure warnings on missing types are always issued. Fixed bugs: - https://launchpad.net/bugs/1229326 (bzr r12580) --- src/sp-object.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 8c7a24a2b..fa7d30dab 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -597,6 +597,7 @@ void SPObject::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) ochild->invoke_build(object->document, child, object->cloned); } catch (const FactoryExceptions::TypeNotRegistered& e) { std::string node = e.what(); + // special cases if (node == "rdf:RDF") return; // no SP node yet if (node == "inkscape:clipboard") return; // SP node not necessary @@ -646,27 +647,20 @@ void SPObject::build(SPDocument *document, Inkscape::XML::Node *repr) { object->readAttr("inkscape:collect"); for (Inkscape::XML::Node *rchild = repr->firstChild() ; rchild != NULL; rchild = rchild->next()) { -// GType type = sp_repr_type_lookup(rchild); -// if (!type) { -// continue; -// } -// SPObject *child = SP_OBJECT(g_object_new(type, 0)); - -// SPObject* child = SPFactory::instance().createObject(*rchild); -// if (!child) { -// continue; -// } - try { const std::string typeString = NodeTraits::get_type_string(*rchild); + // special cases + if (typeString == "rdf:RDF") continue; // no SP node yet + if (typeString == "inkscape:clipboard") continue; // SP node not necessary + SPObject* child = SPFactory::instance().createObject(typeString); object->attach(child, object->lastChild()); sp_object_unref(child, NULL); child->invoke_build(document, rchild, object->cloned); } catch (const FactoryExceptions::TypeNotRegistered& e) { - //g_warning("TypeNotRegistered exception: %s", e.what()); + g_warning("TypeNotRegistered exception: %s", e.what()); } } } -- cgit v1.2.3 From bbe5a375195443bf9235f859d58d533fe5815e00 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 24 Sep 2013 00:53:52 +0200 Subject: Fixed FeComponentTransfer. Fixed bugs: - https://launchpad.net/bugs/1229326 (bzr r12582) --- src/sp-object.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index fa7d30dab..6fd4de43b 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -599,6 +599,7 @@ void SPObject::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) std::string node = e.what(); // special cases + if (node.empty()) return; // comments, usually if (node == "rdf:RDF") return; // no SP node yet if (node == "inkscape:clipboard") return; // SP node not necessary @@ -651,6 +652,7 @@ void SPObject::build(SPDocument *document, Inkscape::XML::Node *repr) { const std::string typeString = NodeTraits::get_type_string(*rchild); // special cases + if (typeString.empty()) continue; // comments, usually if (typeString == "rdf:RDF") continue; // no SP node yet if (typeString == "inkscape:clipboard") continue; // SP node not necessary -- cgit v1.2.3