summaryrefslogtreecommitdiffstats
path: root/src/sp-text.cpp
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2016-08-12 04:11:03 +0000
committerTed Gould <ted@gould.cx>2016-08-12 04:11:03 +0000
commitff848ebc9919d158c3ec3d7420e72b6aca99a3ea (patch)
tree030ab171865d0ed7f6bae3ef68315639cdb2622b /src/sp-text.cpp
parentMerging 0.92.x branch (diff)
parentCloneTiler: Further C++ification (diff)
downloadinkscape-ff848ebc9919d158c3ec3d7420e72b6aca99a3ea.tar.gz
inkscape-ff848ebc9919d158c3ec3d7420e72b6aca99a3ea.zip
Merge trunk
(bzr r14950.1.20)
Diffstat (limited to 'src/sp-text.cpp')
-rw-r--r--src/sp-text.cpp71
1 files changed, 33 insertions, 38 deletions
diff --git a/src/sp-text.cpp b/src/sp-text.cpp
index 4afc38524..9beb812f5 100644
--- a/src/sp-text.cpp
+++ b/src/sp-text.cpp
@@ -29,17 +29,14 @@
#include <glibmm/i18n.h>
#include "svg/svg.h"
-#include "svg/stringstream.h"
#include "display/drawing-text.h"
#include "attributes.h"
#include "document.h"
#include "preferences.h"
#include "desktop.h"
#include "sp-namedview.h"
-#include "style.h"
#include "inkscape.h"
#include "xml/quote.h"
-#include "xml/repr.h"
#include "mod360.h"
#include "sp-title.h"
#include "sp-desc.h"
@@ -52,9 +49,7 @@
#include "text-editing.h"
// For SVG 2 text flow
-#include "livarot/Path.h"
#include "livarot/Shape.h"
-#include "sp-shape.h"
#include "display/curve.h"
/*#####################################################
@@ -155,9 +150,9 @@ void SPText::update(SPCtx *ctx, guint flags) {
// Create temporary list of children
GSList *l = NULL;
- for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) {
- sp_object_ref(child, this);
- l = g_slist_prepend (l, child);
+ for (auto& child: children) {
+ sp_object_ref(&child, this);
+ l = g_slist_prepend (l, &child);
}
l = g_slist_reverse (l);
@@ -235,9 +230,9 @@ void SPText::modified(guint flags) {
// Create temporary list of children
GSList *l = NULL;
- for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) {
- sp_object_ref(child, this);
- l = g_slist_prepend (l, child);
+ for (auto& child: children) {
+ sp_object_ref(&child, this);
+ l = g_slist_prepend (l, &child);
}
l = g_slist_reverse (l);
@@ -262,17 +257,17 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X
GSList *l = NULL;
- for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) {
- if (SP_IS_TITLE(child) || SP_IS_DESC(child)) {
+ for (auto& child: children) {
+ if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) {
continue;
}
Inkscape::XML::Node *crepr = NULL;
- if (SP_IS_STRING(child)) {
- crepr = xml_doc->createTextNode(SP_STRING(child)->string.c_str());
+ if (SP_IS_STRING(&child)) {
+ crepr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str());
} else {
- crepr = child->updateRepr(xml_doc, NULL, flags);
+ crepr = child.updateRepr(xml_doc, NULL, flags);
}
if (crepr) {
@@ -286,15 +281,15 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X
l = g_slist_remove (l, l->data);
}
} else {
- for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) {
- if (SP_IS_TITLE(child) || SP_IS_DESC(child)) {
+ for (auto& child: children) {
+ if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) {
continue;
}
- if (SP_IS_STRING(child)) {
- child->getRepr()->setContent(SP_STRING(child)->string.c_str());
+ if (SP_IS_STRING(&child)) {
+ child.getRepr()->setContent(SP_STRING(&child)->string.c_str());
} else {
- child->updateRepr(flags);
+ child.updateRepr(flags);
}
}
}
@@ -606,16 +601,16 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio
}
}
- for (SPObject *child = root->firstChild() ; child ; child = child->getNext() ) {
- SPString *str = dynamic_cast<SPString *>(child);
+ for (auto& child: root->children) {
+ SPString *str = dynamic_cast<SPString *>(&child);
if (str) {
Glib::ustring const &string = str->string;
// std::cout << " Appending: >" << string << "<" << std::endl;
- layout.appendText(string, root->style, child, &optional_attrs, child_attrs_offset + length);
+ layout.appendText(string, root->style, &child, &optional_attrs, child_attrs_offset + length);
length += string.length();
- } else if (!sp_repr_is_meta_element(child->getRepr())) {
+ } else if (!sp_repr_is_meta_element(child.getRepr())) {
/* ^^^^ XML Tree being directly used here while it shouldn't be.*/
- length += _buildLayoutInput(child, optional_attrs, child_attrs_offset + length, in_textpath);
+ length += _buildLayoutInput(&child, optional_attrs, child_attrs_offset + length, in_textpath);
}
}
@@ -628,9 +623,9 @@ void SPText::rebuildLayout()
Inkscape::Text::Layout::OptionalTextTagAttrs optional_attrs;
_buildLayoutInput(this, optional_attrs, 0, false);
layout.calculateFlow();
- for (SPObject *child = firstChild() ; child ; child = child->getNext() ) {
- if (SP_IS_TEXTPATH(child)) {
- SPTextPath const *textpath = SP_TEXTPATH(child);
+ for (auto& child: children) {
+ if (SP_IS_TEXTPATH(&child)) {
+ SPTextPath const *textpath = SP_TEXTPATH(&child);
if (textpath->originalPath != NULL) {
//g_print("%s", layout.dumpAsText().c_str());
layout.fitToPathAlign(textpath->startOffset, *textpath->originalPath);
@@ -640,9 +635,9 @@ void SPText::rebuildLayout()
//g_print("%s", layout.dumpAsText().c_str());
// set the x,y attributes on role:line spans
- for (SPObject *child = firstChild() ; child ; child = child->getNext() ) {
- if (SP_IS_TSPAN(child)) {
- SPTSpan *tspan = SP_TSPAN(child);
+ for (auto& child: children) {
+ if (SP_IS_TSPAN(&child)) {
+ SPTSpan *tspan = SP_TSPAN(&child);
if ( (tspan->role != SP_TSPAN_ROLE_UNSPECIFIED)
&& tspan->attributes.singleXYCoordinates() ) {
Inkscape::Text::Layout::iterator iter = layout.sourceToIterator(tspan);
@@ -676,9 +671,9 @@ void SPText::_adjustFontsizeRecursive(SPItem *item, double ex, bool is_root)
item->updateRepr();
}
- for (SPObject *o = item->children; o != NULL; o = o->next) {
- if (SP_IS_ITEM(o))
- _adjustFontsizeRecursive(SP_ITEM(o), ex, false);
+ for(auto& o: item->children) {
+ if (SP_IS_ITEM(&o))
+ _adjustFontsizeRecursive(SP_ITEM(&o), ex, false);
}
}
@@ -695,9 +690,9 @@ void SPText::_adjustCoordsRecursive(SPItem *item, Geom::Affine const &m, double
SP_TREF(item)->attributes.transform(m, ex, ex, is_root);
}
- for (SPObject *o = item->children; o != NULL; o = o->next) {
- if (SP_IS_ITEM(o))
- _adjustCoordsRecursive(SP_ITEM(o), m, ex, false);
+ for(auto& o: item->children) {
+ if (SP_IS_ITEM(&o))
+ _adjustCoordsRecursive(SP_ITEM(&o), m, ex, false);
}
}