summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-10-15 01:00:13 +0000
committerJabiertxof <jtx@jtx.marker.es>2013-10-15 01:00:13 +0000
commit4e55047ecca768151c26faa9a6b35b87067bed94 (patch)
tree885fbca4a07e791ddce5a591f3e7346023de5e91 /src
parentFix errors on compile and in console detected by su_v, added selection of str... (diff)
parentFix tangent calculation for counter-clockwise arcs. (diff)
downloadinkscape-4e55047ecca768151c26faa9a6b35b87067bed94.tar.gz
inkscape-4e55047ecca768151c26faa9a6b35b87067bed94.zip
Update to trunk
(bzr r12588.1.14)
Diffstat (limited to 'src')
-rw-r--r--src/2geom/elliptical-arc.cpp2
-rw-r--r--src/sp-object.cpp29
2 files changed, 16 insertions, 15 deletions
diff --git a/src/2geom/elliptical-arc.cpp b/src/2geom/elliptical-arc.cpp
index 29e983ad4..d2cb0b707 100644
--- a/src/2geom/elliptical-arc.cpp
+++ b/src/2geom/elliptical-arc.cpp
@@ -360,7 +360,7 @@ EllipticalArc::pointAndDerivatives(Coord t, unsigned int n) const
for ( unsigned int i = 0; i < m; ++i )
{
result.push_back( ea->pointAtAngle(angle) );
- angle += M_PI/2;
+ angle += (_sweep ? M_PI/2 : -M_PI/2);
if ( !(angle < 2*M_PI) ) angle -= 2*M_PI;
}
m = nn / 4;
diff --git a/src/sp-object.cpp b/src/sp-object.cpp
index 6fd4de43b..8c54caf48 100644
--- a/src/sp-object.cpp
+++ b/src/sp-object.cpp
@@ -596,14 +596,11 @@ 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.empty()) return; // comments, usually
- 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());
+ // Currenty, there are many node types that do not have
+ // corresponding classes in the SPObject tree.
+ // (rdf:RDF, inkscape:clipboard, ...)
+ // Thus, simply ignore this case for now.
+ return;
}
}
@@ -617,13 +614,13 @@ void SPObject::release() {
}
void SPObject::remove_child(Inkscape::XML::Node* child) {
- SPObject* object = this;
+ debug("id=%x, typename=%s", this, g_type_name_from_instance((GTypeInstance*)this));
- debug("id=%x, typename=%s", object, g_type_name_from_instance((GTypeInstance*)object));
- SPObject *ochild = object->get_child_by_repr(child);
- g_return_if_fail (ochild != NULL || !strcmp("comment", child->name())); // comments have no objects
+ SPObject *ochild = this->get_child_by_repr(child);
+
+ // If the xml node has got a corresponding child in the object tree
if (ochild) {
- object->detach(ochild);
+ this->detach(ochild);
}
}
@@ -662,7 +659,11 @@ void SPObject::build(SPDocument *document, Inkscape::XML::Node *repr) {
sp_object_unref(child, NULL);
child->invoke_build(document, rchild, object->cloned);
} catch (const FactoryExceptions::TypeNotRegistered& e) {
- g_warning("TypeNotRegistered exception: %s", e.what());
+ // Currenty, there are many node types that do not have
+ // corresponding classes in the SPObject tree.
+ // (rdf:RDF, inkscape:clipboard, ...)
+ // Thus, simply ignore this case for now.
+ return;
}
}
}