Code

try to use consistent document for creating guides
authormental <mental@users.sourceforge.net>
Mon, 7 Jul 2008 16:35:28 +0000 (16:35 +0000)
committermental <mental@users.sourceforge.net>
Mon, 7 Jul 2008 16:35:28 +0000 (16:35 +0000)
src/box3d.cpp
src/sp-guide.cpp
src/sp-guide.h
src/sp-item.cpp
src/sp-path.cpp
src/sp-rect.cpp
src/verbs.cpp

index f0bf4647d6b25d1065f106f509e978eb04b918c7..cda482e738c3944c2a05044bcb594d4f5f5c36aa 100644 (file)
@@ -1421,8 +1421,6 @@ box3d_convert_to_guides(SPItem *item) {
         return;
     }
 
-    SPDocument *doc = SP_OBJECT_DOCUMENT(box);
-
     std::list<std::pair<Geom::Point, Geom::Point> > pts;
 
     /* perspective lines in X direction */
@@ -1443,7 +1441,7 @@ box3d_convert_to_guides(SPItem *item) {
     box3d_push_back_corner_pair(box, pts, 2, 6);
     box3d_push_back_corner_pair(box, pts, 3, 7);
 
-    sp_guide_pt_pairs_to_guides(doc, pts);
+    sp_guide_pt_pairs_to_guides(inkscape_active_desktop(), pts);
 }
 
 /*
index 2f91a17cfedeb6375f3e265c03541f36edfab279..5375bc442d7301d12d06d8e3d7076a42d1eae6ad 100644 (file)
@@ -22,6 +22,7 @@
 #include <algorithm>
 #include <cstring>
 #include <string>
+#include "desktop-handles.h"
 #include "display/guideline.h"
 #include "svg/svg.h"
 #include "svg/stringstream.h"
@@ -241,8 +242,8 @@ static void sp_guide_set(SPObject *object, unsigned int key, const gchar *value)
 }
 
 SPGuide *
-sp_guide_create(SPDocument *doc, Geom::Point const &pt1, Geom::Point const &pt2) {
-    SPDesktop *desktop = inkscape_active_desktop();
+sp_guide_create(SPDesktop *desktop, Geom::Point const &pt1, Geom::Point const &pt2) {
+    SPDocument *doc=sp_desktop_document(desktop);
     Inkscape::XML::Document *xml_doc = sp_document_repr_doc(doc);
 
     Inkscape::XML::Node *repr = xml_doc->createElement("sodipodi:guide");
@@ -260,14 +261,15 @@ sp_guide_create(SPDocument *doc, Geom::Point const &pt1, Geom::Point const &pt2)
 }
 
 void
-sp_guide_pt_pairs_to_guides(SPDocument *doc, std::list<std::pair<Geom::Point, Geom::Point> > &pts) {
+sp_guide_pt_pairs_to_guides(SPDesktop *dt, std::list<std::pair<Geom::Point, Geom::Point> > &pts) {
     for (std::list<std::pair<Geom::Point, Geom::Point> >::iterator i = pts.begin(); i != pts.end(); ++i) {
-        sp_guide_create(doc, (*i).first, (*i).second);
+        sp_guide_create(dt, (*i).first, (*i).second);
     }
 }
 
 void
-sp_guide_create_guides_around_page(SPDocument *doc) {
+sp_guide_create_guides_around_page(SPDesktop *dt) {
+    SPDocument *doc=sp_desktop_document(dt);
     std::list<std::pair<Geom::Point, Geom::Point> > pts;
 
     Geom::Point A(0, 0);
@@ -280,7 +282,7 @@ sp_guide_create_guides_around_page(SPDocument *doc) {
     pts.push_back(std::make_pair<Geom::Point, Geom::Point>(C, D));
     pts.push_back(std::make_pair<Geom::Point, Geom::Point>(D, A));
 
-    sp_guide_pt_pairs_to_guides(doc, pts);
+    sp_guide_pt_pairs_to_guides(dt, pts);
 
     sp_document_done (doc, SP_VERB_NONE, _("Guides around page"));
 }
index 502cf2c5b7b7af2bc3b58f4cb199b585e00e90c0..78c795f837f245d53bf3e7c61b19988e7f79791d 100644 (file)
@@ -46,8 +46,8 @@ struct SPGuideClass {
 GType sp_guide_get_type();
 
 SPGuide *sp_guide_create(SPDesktop *desktop, Geom::Point const &pt1, Geom::Point const &pt2);
-void sp_guide_pt_pairs_to_guides(SPDocument *doc, std::list<std::pair<Geom::Point, Geom::Point> > &pts);
-void sp_guide_create_guides_around_page(SPDocument *doc);
+void sp_guide_pt_pairs_to_guides(SPDesktop *dt, std::list<std::pair<Geom::Point, Geom::Point> > &pts);
+void sp_guide_create_guides_around_page(SPDesktop *dt);
 
 void sp_guide_show(SPGuide *guide, SPCanvasGroup *group, GCallback handler);
 void sp_guide_hide(SPGuide *guide, SPCanvas *canvas);
index 33f140de24417947879a3e595e78ec74aa55be05..81e75ad7c1f9aa76eacc3b693863e95b36373732 100644 (file)
@@ -1701,7 +1701,7 @@ sp_item_convert_to_guides(SPItem *item) {
     pts.push_back(std::make_pair(C.to_2geom(), D.to_2geom()));
     pts.push_back(std::make_pair(D.to_2geom(), A.to_2geom()));
 
-    sp_guide_pt_pairs_to_guides(SP_OBJECT_DOCUMENT(item), pts);
+    sp_guide_pt_pairs_to_guides(dt, pts);
 }
 
 /*
index 8327cb88d080bd77cd12549b45d0e2b9fd72f073..47d63b2b92e99724ce99d65c162b0bdb9f766615 100644 (file)
@@ -166,8 +166,7 @@ sp_path_convert_to_guides(SPItem *item)
         }
     }
 
-    SPDocument *doc = SP_OBJECT_DOCUMENT(path);
-    sp_guide_pt_pairs_to_guides(doc, pts);
+    sp_guide_pt_pairs_to_guides(inkscape_active_desktop(), pts);
 }
 
 /**
index 7d3cd1c0c5639f53de382da822380d3293b2e03b..e5ffa8b396a16f8ed1c74a11a60b7f090370894a 100644 (file)
@@ -22,6 +22,7 @@
 #include <libnr/nr-matrix-div.h>
 #include <libnr/nr-matrix-fns.h>
 
+#include "inkscape.h"
 #include "document.h"
 #include "attributes.h"
 #include "style.h"
@@ -110,8 +111,6 @@ sp_rect_init(SPRect */*rect*/)
 static void
 sp_rect_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
 {
-    SPRect *rect = SP_RECT(object);
-
     if (((SPObjectClass *) parent_class)->build)
         ((SPObjectClass *) parent_class)->build(object, document, repr);
 
@@ -578,7 +577,6 @@ sp_rect_convert_to_guides(SPItem *item) {
         return;
     }
 
-    SPDocument *doc = SP_OBJECT_DOCUMENT(rect);
     std::list<std::pair<Geom::Point, Geom::Point> > pts;
 
     NR::Matrix const i2d (from_2geom(sp_item_i2d_affine(SP_ITEM(rect))));
@@ -593,7 +591,7 @@ sp_rect_convert_to_guides(SPItem *item) {
     pts.push_back(std::make_pair(A3.to_2geom(), A4.to_2geom()));
     pts.push_back(std::make_pair(A4.to_2geom(), A1.to_2geom()));
 
-    sp_guide_pt_pairs_to_guides(doc, pts);
+    sp_guide_pt_pairs_to_guides(inkscape_active_desktop(), pts);
 }
 
 /*
index b92eb52c06f03969691c4aa38628e2a3c6ddf996..73612557cf5b6458a09b22dfe3c4c07dafa4a30e 100644 (file)
@@ -977,7 +977,7 @@ EditVerb::perform(SPAction *action, void *data, void */*pdata*/)
             break;
 
         case SP_VERB_EDIT_GUIDES_AROUND_PAGE:
-            sp_guide_create_guides_around_page(sp_desktop_document(dt));
+            sp_guide_create_guides_around_page(dt);
             break;
 
         case SP_VERB_EDIT_NEXT_PATHEFFECT_PARAMETER: