From a303321365bf5ae640715eb9e033f6f01cb085c8 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Sat, 5 Apr 2014 08:15:20 +0200 Subject: Allow command line options -i and -j to effect plain-svg output, this involves cropping and reducing. (bzr r13268) --- src/sp-object.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index be3a1ab9d..c904705fb 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -460,6 +460,23 @@ void SPObject::deleteObject(bool propagate, bool propagate_descendants) sp_object_unref(this, NULL); } +void SPObject::cropToObject(SPObject *except) +{ + GSList *toDelete = NULL; + for ( SPObject *child = this->firstChild(); child; child = child->getNext() ) { + if (SP_IS_ITEM(child)) { + if (child->isAncestorOf(except)) { + child->cropToObject(except); + } else if(child != except) { + toDelete = g_slist_append(toDelete, child); + } + } + } + for (GSList *item = toDelete; item; item = item->next) { + SP_OBJECT(item->data)->deleteObject(true, true); + } +} + void SPObject::attach(SPObject *object, SPObject *prev) { //g_return_if_fail(parent != NULL); -- cgit v1.2.3 From 77ba51de31dadeed7d4496a01824238320887dc8 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Sat, 5 Apr 2014 15:11:12 +0200 Subject: Commit patch from Johan to remove GSList and replace with vector. (bzr r13271) --- src/sp-object.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index c904705fb..65228ec0a 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -462,18 +462,18 @@ void SPObject::deleteObject(bool propagate, bool propagate_descendants) void SPObject::cropToObject(SPObject *except) { - GSList *toDelete = NULL; + std::vector toDelete; for ( SPObject *child = this->firstChild(); child; child = child->getNext() ) { if (SP_IS_ITEM(child)) { if (child->isAncestorOf(except)) { child->cropToObject(except); } else if(child != except) { - toDelete = g_slist_append(toDelete, child); + toDelete.push_back(child); } } } - for (GSList *item = toDelete; item; item = item->next) { - SP_OBJECT(item->data)->deleteObject(true, true); + for (std::size_t i = 0; i < toDelete.size(); ++i) { + (toDelete[i])->deleteObject(true, true); } } -- cgit v1.2.3 From 1f2d8bc4ce99e970cead4ca96c1859c383a9c043 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 31 Aug 2014 14:17:26 -0400 Subject: Header cleanup: stop using Glib types where they aren't truly needed. Eases GThread deprecation errors. (bzr r13341.1.190) --- src/sp-object.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 65228ec0a..fcff43aa5 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -1406,12 +1406,12 @@ bool SPObject::setDesc(gchar const *desc, bool verbatim) return setTitleOrDesc(desc, "svg:desc", verbatim); } -gchar * SPObject::getTitleOrDesc(gchar const *svg_tagname) const +char * SPObject::getTitleOrDesc(gchar const *svg_tagname) const { - gchar *result = 0; + char *result = NULL; SPObject *elem = findFirstChild(svg_tagname); if ( elem ) { - result = g_string_free(elem->textualContent(), FALSE); + result = elem->textualContent(); } return result; } @@ -1493,7 +1493,7 @@ SPObject * SPObject::findFirstChild(gchar const *tagname) const return NULL; } -GString * SPObject::textualContent() const +char* SPObject::textualContent() const { GString* text = g_string_new(""); @@ -1502,15 +1502,15 @@ GString * SPObject::textualContent() const Inkscape::XML::NodeType child_type = child->repr->type(); if (child_type == Inkscape::XML::ELEMENT_NODE) { - GString * new_text = child->textualContent(); - g_string_append(text, new_text->str); - g_string_free(new_text, TRUE); + char* new_string = child->textualContent(); + g_string_append(text, new_string); + g_free(new_string); } else if (child_type == Inkscape::XML::TEXT_NODE) { g_string_append(text, child->repr->content()); } } - return text; + return g_string_free(text, FALSE); } /* -- cgit v1.2.3 From 9094351b78c40b8ad59e86fcea438a27f666083b Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sat, 15 Nov 2014 10:24:11 -0800 Subject: Purged SP_STYLE_ELEM/SP_IS_STYLE_ELEM macro abuse. (bzr r13711) --- src/sp-object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index fcff43aa5..569714bae 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -406,7 +406,7 @@ void SPObject::requestOrphanCollection() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); // do not remove style or script elements (Bug #276244) - if (SP_IS_STYLE_ELEM(this)) { + if (dynamic_cast(this)) { // leave it } else if (SP_IS_SCRIPT(this)) { // leave it -- cgit v1.2.3 From 692ee3551c1a101b16134b0b446ab98231fa4d1f Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sat, 15 Nov 2014 10:37:38 -0800 Subject: Purged GTKish macros SP_SCRIPT/SP_IS_SCRIPT. (bzr r13712) --- src/sp-object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-object.cpp') diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 569714bae..024fce85a 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -408,7 +408,7 @@ void SPObject::requestOrphanCollection() { // do not remove style or script elements (Bug #276244) if (dynamic_cast(this)) { // leave it - } else if (SP_IS_SCRIPT(this)) { + } else if (dynamic_cast(this)) { // leave it } else if ((! prefs->getBool("/options/cleanupswatches/value", false)) && SP_IS_PAINT_SERVER(this) && static_cast(this)->isSwatch() ) { -- cgit v1.2.3