Code

finally getting closer to processing axes and contexts correctly
[inkscape.git] / src / seltrans.cpp
index f6134a01c985cece95299382e1af11009ca25444..9a648e2efa752649aaba270db9741ccc4ed67a0d 100644 (file)
@@ -39,6 +39,7 @@
 #include "seltrans.h"
 #include "selection-chemistry.h"
 #include "sp-metrics.h"
+#include "verbs.h"
 #include <glibmm/i18n.h>
 #include "display/sp-ctrlline.h"
 #include "prefs-utils.h"
@@ -222,7 +223,8 @@ void Inkscape::SelTrans::setCenter(NR::Point const &p)
         it->setCenter(p);
         SP_OBJECT(it)->updateRepr();
     }
-    sp_document_maybe_done (sp_desktop_document(_desktop), "center::move");
+    sp_document_maybe_done (sp_desktop_document(_desktop), "center::move", SP_VERB_CONTEXT_SELECT, 
+                            _("Set center"));
 
     _updateHandles();
 }
@@ -253,8 +255,8 @@ void Inkscape::SelTrans::grab(NR::Point const &p, gdouble x, gdouble y, bool sho
 
     _point = p;
 
-    _snap_points = selection->getSnapPoints();
-    _bbox_points = selection->getBBoxPoints();
+    _snap_points = selection->getSnapPointsConvexHull();
+    _bbox_points = selection->getBBoxPointsOuter();
 
     gchar const *scale_origin = prefs_get_string_attribute("tools.select", "scale_origin");
     bool const origin_on_bbox = (scale_origin == NULL || !strcmp(scale_origin, "bbox"));
@@ -340,7 +342,20 @@ void Inkscape::SelTrans::ungrab()
             }
         }
 
-        sp_document_done(sp_desktop_document(_desktop));
+        if (_current.is_translation()) {
+            sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT,
+                             _("Move"));
+        } else if (_current.is_scale()) {
+            sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT,
+                             _("Scale"));
+        } else if (_current.is_rotation()) {
+            sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT,
+                             _("Rotate"));
+        } else {
+            sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT,
+                             _("Skew"));
+        }
+
         updh = false;
     }
 
@@ -436,7 +451,8 @@ void Inkscape::SelTrans::stamp()
             Inkscape::GC::release(copy_repr);
             l = l->next;
         }
-        sp_document_done(sp_desktop_document(_desktop));
+        sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT,
+                         _("Stamp"));
     }
 
     if ( fixup && _stamp_cache ) {
@@ -621,7 +637,8 @@ void Inkscape::SelTrans::handleClick(SPKnot *knot, guint state, SPSelTransHandle
                     _center_is_set = false;  // center has changed
                     _updateHandles();
                 }
-                sp_document_maybe_done (sp_desktop_document(_desktop), "center::unset");
+                sp_document_maybe_done (sp_desktop_document(_desktop), "center::unset", SP_VERB_CONTEXT_SELECT, 
+                                        _("Reset center"));
             }
             break;
         default: