Code

Small snap bug has been eliminated, flowed text snapping now uses baseline, replacing...
[inkscape.git] / src / sp-item.cpp
index 16efe677f39d1731ead7dd30c86fa4d38a8a4919..1a5ca6f772a72f7ba94fd99c153062bdabf9502b 100644 (file)
@@ -83,7 +83,7 @@
 static void sp_item_class_init(SPItemClass *klass);
 static void sp_item_init(SPItem *item);
 
-static void sp_item_build(SPObject *object, Document *document, Inkscape::XML::Node *repr);
+static void sp_item_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
 static void sp_item_release(SPObject *object);
 static void sp_item_set(SPObject *object, unsigned key, gchar const *value);
 static void sp_item_update(SPObject *object, SPCtx *ctx, guint flags);
@@ -401,7 +401,7 @@ void SPItem::lowerToBottom() {
 }
 
 static void
-sp_item_build(SPObject *object, Document *document, Inkscape::XML::Node *repr)
+sp_item_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
 {
     sp_object_read_attr(object, "style");
     sp_object_read_attr(object, "transform");
@@ -412,6 +412,7 @@ sp_item_build(SPObject *object, Document *document, Inkscape::XML::Node *repr)
     sp_object_read_attr(object, "inkscape:transform-center-x");
     sp_object_read_attr(object, "inkscape:transform-center-y");
     sp_object_read_attr(object, "inkscape:connector-avoid");
+    sp_object_read_attr(object, "inkscape:connection-points");
 
     if (((SPObjectClass *) (parent_class))->build) {
         (* ((SPObjectClass *) (parent_class))->build)(object, document, repr);
@@ -514,6 +515,9 @@ sp_item_set(SPObject *object, unsigned key, gchar const *value)
         case SP_ATTR_CONNECTOR_AVOID:
             item->avoidRef->setAvoid(value);
             break;
+        case SP_ATTR_CONNECTION_POINTS:
+            item->avoidRef->setConnectionPoints(value);
+            break;
         case SP_ATTR_TRANSFORM_CENTER_X:
             if (value) {
                 item->transform_center_x = g_strtod(value, NULL);
@@ -958,11 +962,11 @@ static void sp_item_private_snappoints(SPItem const *item, bool const target, Sn
         Geom::Point p1, p2;
         p1 = bbox->min();
         p2 = bbox->max();
-        int type = target ? int(Inkscape::SNAPSOURCE_CONVEX_HULL_CORNER) : int(Inkscape::SNAPSOURCE_CONVEX_HULL_CORNER);
+        int type = target ? int(Inkscape::SNAPTARGET_BBOX_CORNER) : int(Inkscape::SNAPSOURCE_BBOX_CORNER);
         p.push_back(std::make_pair(p1, type));
         p.push_back(std::make_pair(Geom::Point(p1[Geom::X], p2[Geom::Y]), type));
         p.push_back(std::make_pair(p2, type));
-        p.push_back(std::make_pair(Geom::Point(p1[Geom::Y], p2[Geom::X]), type));
+        p.push_back(std::make_pair(Geom::Point(p2[Geom::X], p1[Geom::Y]), type));
     }
 
 }
@@ -1062,7 +1066,7 @@ sp_item_description(SPItem *item)
             const gchar *label = SP_OBJECT_STYLE(item)->filter.href->getObject()->label();
             gchar *snew;
             if (label) {
-                snew = g_strdup_printf (_("%s; <i>filtered (%s)</i>"), s, label);
+                snew = g_strdup_printf (_("%s; <i>filtered (%s)</i>"), s, _(label));
             } else {
                 snew = g_strdup_printf (_("%s; <i>filtered</i>"), s);
             }