summaryrefslogtreecommitdiffstats
path: root/src/lpe-tool-context.cpp
diff options
context:
space:
mode:
authorMatthew Petroff <matthew@mpetroff.net>2013-07-19 18:59:49 +0000
committerMatthew Petroff <matthew@mpetroff.net>2013-07-19 18:59:49 +0000
commit6e9cf2ac415ff74108850236175ed7aeef496059 (patch)
tree39ccc1ab3870100ab7e2c780baf60bea7a89074a /src/lpe-tool-context.cpp
parentRemoved "helper/units.h" from "snap-preferences.h". (diff)
downloadinkscape-6e9cf2ac415ff74108850236175ed7aeef496059.tar.gz
inkscape-6e9cf2ac415ff74108850236175ed7aeef496059.zip
Ported "src/lpe-tool-context.*"
(bzr r12380.1.35)
Diffstat (limited to 'src/lpe-tool-context.cpp')
-rw-r--r--src/lpe-tool-context.cpp37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp
index feabfa02d..bf032b7eb 100644
--- a/src/lpe-tool-context.cpp
+++ b/src/lpe-tool-context.cpp
@@ -37,7 +37,7 @@
#include "display/canvas-text.h"
#include "message-stack.h"
#include "sp-path.h"
-#include "helper/units.h"
+#include "util/units.h"
#include "lpe-tool-context.h"
@@ -444,6 +444,8 @@ lpetool_create_measuring_items(SPLPEToolContext *lc, Inkscape::Selection *select
gchar *arc_length;
double lengthval;
+ Inkscape::Util::UnitTable unit_table;
+
for (GSList const *i = selection->itemList(); i != NULL; i = i->next) {
if (SP_IS_PATH(i->data)) {
path = SP_PATH(i->data);
@@ -453,13 +455,21 @@ lpetool_create_measuring_items(SPLPEToolContext *lc, Inkscape::Selection *select
if (!show)
sp_canvas_item_hide(SP_CANVAS_ITEM(canvas_text));
- SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
- SPUnit unit = sp_unit_get_by_id(unitid);
+ //SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
+ //SPUnit unit = sp_unit_get_by_id(unitid);
+ Inkscape::Util::Unit unit;
+ if (prefs->getString("/tools/lpetool/unit").compare("")) {
+ unit = unit_table.getUnit(prefs->getString("/tools/lpetool/unit"));
+ } else {
+ unit = unit_table.getUnit("px");
+ }
lengthval = Geom::length(pwd2);
gboolean success;
- success = sp_convert_distance(&lengthval, &sp_unit_get_by_id(SP_UNIT_PX), &unit);
- arc_length = g_strdup_printf("%.2f %s", lengthval, success ? sp_unit_get_abbreviation(&unit) : "px");
+ //success = sp_convert_distance(&lengthval, &sp_unit_get_by_id(SP_UNIT_PX), &unit);
+ lengthval = Inkscape::Util::Quantity::convert(lengthval, "px", unit);
+ //arc_length = g_strdup_printf("%.2f %s", lengthval, success ? sp_unit_get_abbreviation(&unit) : "px");
+ arc_length = g_strdup_printf("%.2f %s", lengthval, unit.abbr.c_str());
sp_canvastext_set_text (canvas_text, arc_length);
set_pos_and_anchor(canvas_text, pwd2, 0.5, 10);
// TODO: must we free arc_length?
@@ -482,6 +492,7 @@ void
lpetool_update_measuring_items(SPLPEToolContext *lc)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ Inkscape::Util::UnitTable unit_table;
SPPath *path;
SPCurve *curve;
double lengthval;
@@ -491,12 +502,20 @@ lpetool_update_measuring_items(SPLPEToolContext *lc)
path = i->first;
curve = SP_SHAPE(path)->getCurve();
Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2 = Geom::paths_to_pw(curve->get_pathvector());
- SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
- SPUnit unit = sp_unit_get_by_id(unitid);
+ //SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
+ //SPUnit unit = sp_unit_get_by_id(unitid);
+ Inkscape::Util::Unit unit;
+ if (prefs->getString("/tools/lpetool/unit").compare("")) {
+ unit = unit_table.getUnit(prefs->getString("/tools/lpetool/unit"));
+ } else {
+ unit = unit_table.getUnit("px");
+ }
lengthval = Geom::length(pwd2);
gboolean success;
- success = sp_convert_distance(&lengthval, &sp_unit_get_by_id(SP_UNIT_PX), &unit);
- arc_length = g_strdup_printf("%.2f %s", lengthval, success ? sp_unit_get_abbreviation(&unit) : "px");
+ //success = sp_convert_distance(&lengthval, &sp_unit_get_by_id(SP_UNIT_PX), &unit);
+ lengthval = Inkscape::Util::Quantity::convert(lengthval, "px", unit);
+ //arc_length = g_strdup_printf("%.2f %s", lengthval, success ? sp_unit_get_abbreviation(&unit) : "px");
+ arc_length = g_strdup_printf("%.2f %s", lengthval, unit.abbr.c_str());
sp_canvastext_set_text (SP_CANVASTEXT(i->second), arc_length);
set_pos_and_anchor(SP_CANVASTEXT(i->second), pwd2, 0.5, 10);
// TODO: must we free arc_length?