diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index a890f9754254f23743b9b83c3f9c1f0423b2ba95..54e84927a768c73995bdbc3529042aa6e91d6314 100644 (file)
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *value);
static void sp_namedview_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref);
static void sp_namedview_remove_child(SPObject *object, Inkscape::XML::Node *child);
-static Inkscape::XML::Node *sp_namedview_write(SPObject *object, Inkscape::XML::Node *repr, guint flags);
+static Inkscape::XML::Node *sp_namedview_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
static void sp_namedview_setup_guides(SPNamedView * nv);
@@ -459,7 +459,7 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_INKSCAPE_SNAP_INDICATOR:
- nv->snapindicator = (value) ? sp_str_to_bool (value) : FALSE;
+ nv->snapindicator = (value) ? sp_str_to_bool (value) : TRUE;
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_INKSCAPE_SNAP_BBOX:
@@ -687,7 +687,7 @@ static void sp_namedview_remove_child(SPObject *object, Inkscape::XML::Node *chi
}
}
-static Inkscape::XML::Node *sp_namedview_write(SPObject *object, Inkscape::XML::Node *repr, guint flags)
+static Inkscape::XML::Node *sp_namedview_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
{
if ( ( flags & SP_OBJECT_WRITE_EXT ) &&
repr != SP_OBJECT_REPR(object) )
@@ -695,8 +695,7 @@ static Inkscape::XML::Node *sp_namedview_write(SPObject *object, Inkscape::XML::
if (repr) {
repr->mergeFrom(SP_OBJECT_REPR(object), "id");
} else {
- /// \todo FIXME: Plumb an appropriate XML::Document into this
- repr = SP_OBJECT_REPR(object)->duplicate(NULL);
+ repr = SP_OBJECT_REPR(object)->duplicate(doc);
}
}
}
// restore zoom and view
- if (nv->zoom != 0 && nv->zoom != HUGE_VAL && !isNaN(nv->zoom)
- && nv->cx != HUGE_VAL && !isNaN(nv->cx)
- && nv->cy != HUGE_VAL && !isNaN(nv->cy)) {
+ if (nv->zoom != 0 && nv->zoom != HUGE_VAL && !IS_NAN(nv->zoom)
+ && nv->cx != HUGE_VAL && !IS_NAN(nv->cx)
+ && nv->cy != HUGE_VAL && !IS_NAN(nv->cy)) {
desktop->zoom_absolute(nv->cx, nv->cy, nv->zoom);
} else if (sp_desktop_document(desktop)) { // document without saved zoom, zoom to its page
desktop->zoom_page();
@@ -1063,6 +1062,23 @@ Inkscape::CanvasGrid * sp_namedview_get_first_enabled_grid(SPNamedView *namedvie
return NULL;
}
+void SPNamedView::translateGuides(NR::translate const &tr) {
+ for (GSList *l = guides; l != NULL; l = l->next) {
+ SPGuide &guide = *SP_GUIDE(l->data);
+ Geom::Point point_on_line = guide.point_on_line;
+ point_on_line[0] += tr[0];
+ point_on_line[1] += tr[1];
+ sp_guide_moveto(guide, point_on_line, true);
+ }
+}
+
+void SPNamedView::scrollAllDesktops(double dx, double dy, bool is_scrolling) {
+ for(GSList *l = views; l; l = l->next) {
+ SPDesktop *desktop = static_cast<SPDesktop *>(l->data);
+ desktop->scroll_world_in_svg_coords(dx, dy, is_scrolling);
+ }
+}
+
/*
Local Variables: