summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthew Petroff <matthew@mpetroff.net>2013-08-04 22:01:18 +0000
committerMatthew Petroff <matthew@mpetroff.net>2013-08-04 22:01:18 +0000
commit6ae6c0bea96eef09907091279e0678aa5f83102d (patch)
tree825708d13704e27c33cb90a5269b25ae390cf4d2 /src
parentFix handling of SVG lengths with spaces [Bug #1208002]. (diff)
downloadinkscape-6ae6c0bea96eef09907091279e0678aa5f83102d.tar.gz
inkscape-6ae6c0bea96eef09907091279e0678aa5f83102d.zip
Switched to global UnitTable.
(bzr r12380.1.62)
Diffstat (limited to 'src')
-rw-r--r--src/display/canvas-axonomgrid.cpp4
-rw-r--r--src/display/canvas-grid.cpp7
-rw-r--r--src/document.cpp3
-rw-r--r--src/live_effects/parameter/unit.cpp4
-rw-r--r--src/lpe-tool-context.cpp5
-rw-r--r--src/main.cpp1
-rw-r--r--src/measure-context.cpp2
-rw-r--r--src/preferences.cpp4
-rw-r--r--src/sp-namedview.cpp5
-rw-r--r--src/ui/dialog/clonetiler.cpp6
-rw-r--r--src/ui/dialog/export.cpp4
-rw-r--r--src/ui/widget/page-sizer.cpp3
-rw-r--r--src/ui/widget/page-sizer.h1
-rw-r--r--src/ui/widget/scalar-unit.cpp7
-rw-r--r--src/ui/widget/selected-style.cpp3
-rw-r--r--src/ui/widget/unit-menu.cpp16
-rw-r--r--src/ui/widget/unit-menu.h3
-rw-r--r--src/ui/widget/unit-tracker.cpp12
-rw-r--r--src/ui/widget/unit-tracker.h2
-rw-r--r--src/util/expression-evaluator.cpp4
-rw-r--r--src/util/units.cpp9
-rw-r--r--src/util/units.h2
-rw-r--r--src/widgets/desktop-widget.cpp2
-rw-r--r--src/widgets/node-toolbar.cpp4
-rw-r--r--src/widgets/paintbucket-toolbar.cpp2
-rw-r--r--src/widgets/rect-toolbar.cpp3
-rw-r--r--src/widgets/ruler.cpp6
-rw-r--r--src/widgets/select-toolbar.cpp5
-rw-r--r--src/widgets/stroke-style.cpp2
29 files changed, 50 insertions, 81 deletions
diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp
index d3db94975..f7a7cb39a 100644
--- a/src/display/canvas-axonomgrid.cpp
+++ b/src/display/canvas-axonomgrid.cpp
@@ -53,6 +53,7 @@
#include "round.h"
#include "util/units.h"
+using Inkscape::Util::unit_table;
enum Dim3 { X=0, Y, Z };
@@ -160,7 +161,6 @@ CanvasAxonomGrid::CanvasAxonomGrid (SPNamedView * nv, Inkscape::XML::Node * in_r
: CanvasGrid(nv, in_repr, in_doc, GRID_AXONOMETRIC)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- Inkscape::Util::UnitTable unit_table;
gridunit = new Inkscape::Util::Unit(unit_table.getUnit(prefs->getString("/options/grids/axonom/units")));
if (!gridunit)
gridunit = new Inkscape::Util::Unit(unit_table.getUnit("px"));
@@ -213,7 +213,6 @@ void
CanvasAxonomGrid::readRepr()
{
gchar const *value;
- Inkscape::Util::UnitTable unit_table;
if ( (value = repr->attribute("originx")) ) {
Inkscape::Util::Quantity q = unit_table.getQuantity(value);
gridunit = q.unit;
@@ -370,7 +369,6 @@ _wr.setUpdating (false);
_rumg->setUnit (gridunit->abbr);
gdouble val;
- Inkscape::Util::UnitTable unit_table;
val = origin[Geom::X];
val = Inkscape::Util::Quantity::convert(val, "px", *gridunit);
_rsu_ox->setValue (val);
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp
index 1a5e0e52d..ef32c113b 100644
--- a/src/display/canvas-grid.cpp
+++ b/src/display/canvas-grid.cpp
@@ -55,6 +55,7 @@
#include "display/sp-canvas.h"
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
namespace Inkscape {
@@ -397,8 +398,6 @@ void CanvasGrid::setOrigin(Geom::Point const &origin_px)
Inkscape::SVGOStringStream os_x, os_y;
gdouble val;
- Inkscape::Util::UnitTable unit_table;
-
val = origin_px[Geom::X];
val = Inkscape::Util::Quantity::convert(val, "px", *gridunit);
os_x << val << gridunit->abbr;
@@ -490,7 +489,6 @@ CanvasXYGrid::CanvasXYGrid (SPNamedView * nv, Inkscape::XML::Node * in_repr, SPD
: CanvasGrid(nv, in_repr, in_doc, GRID_RECTANGULAR)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- Inkscape::Util::UnitTable unit_table;
gridunit = new Inkscape::Util::Unit(unit_table.getUnit(prefs->getString("/options/grids/xy/units")));
if (!gridunit) {
gridunit = new Inkscape::Util::Unit(unit_table.getUnit("px"));
@@ -588,8 +586,6 @@ static void validateInt(gint oldVal,
void
CanvasXYGrid::readRepr()
{
- Inkscape::Util::UnitTable unit_table;
-
gchar const *value;
if ( (value = repr->attribute("originx")) ) {
Inkscape::Util::Quantity q = unit_table.getQuantity(value);
@@ -756,7 +752,6 @@ CanvasXYGrid::newSpecificWidget()
_rumg->setUnit (gridunit->abbr);
gdouble val;
- Inkscape::Util::UnitTable unit_table;
val = origin[Geom::X];
val = Inkscape::Util::Quantity::convert(val, "px", *gridunit);
_rsu_ox->setValue (val);
diff --git a/src/document.cpp b/src/document.cpp
index afd0a6ddc..0b742e491 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -68,6 +68,7 @@
#include "libcroco/cr-cascade.h"
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
// Higher number means lower priority.
#define SP_DOCUMENT_UPDATE_PRIORITY (G_PRIORITY_HIGH_IDLE - 2)
@@ -86,8 +87,6 @@ static gint doc_count = 0;
static unsigned long next_serial = 0;
-static Inkscape::Util::UnitTable unit_table;
-
SPDocument::SPDocument() :
keepalive(FALSE),
virgin(TRUE),
diff --git a/src/live_effects/parameter/unit.cpp b/src/live_effects/parameter/unit.cpp
index 264b4b9ee..561766920 100644
--- a/src/live_effects/parameter/unit.cpp
+++ b/src/live_effects/parameter/unit.cpp
@@ -12,6 +12,8 @@
#include "verbs.h"
#include "util/units.h"
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
namespace LivePathEffect {
@@ -22,7 +24,6 @@ UnitParam::UnitParam( const Glib::ustring& label, const Glib::ustring& tip,
Effect* effect, Glib::ustring default_unit)
: Parameter(label, tip, key, wr, effect)
{
- Inkscape::Util::UnitTable unit_table;
defunit = new Inkscape::Util::Unit(unit_table.getUnit(default_unit));
unit = defunit;
}
@@ -34,7 +35,6 @@ UnitParam::~UnitParam()
bool
UnitParam::param_readSVGValue(const gchar * strvalue)
{
- Inkscape::Util::UnitTable unit_table;
if (strvalue) {
param_set_value(unit_table.getUnit(strvalue));
return true;
diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp
index 32096970f..4e50a12e1 100644
--- a/src/lpe-tool-context.cpp
+++ b/src/lpe-tool-context.cpp
@@ -41,6 +41,8 @@
#include "lpe-tool-context.h"
+using Inkscape::Util::unit_table;
+
static void sp_lpetool_context_dispose(GObject *object);
static void sp_lpetool_context_setup(SPEventContext *ec);
@@ -444,8 +446,6 @@ 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);
@@ -488,7 +488,6 @@ void
lpetool_update_measuring_items(SPLPEToolContext *lc)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- Inkscape::Util::UnitTable unit_table;
SPPath *path;
SPCurve *curve;
double lengthval;
diff --git a/src/main.cpp b/src/main.cpp
index 577cc3d79..29f431aa8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -68,7 +68,6 @@
#include "color.h"
#include "sp-item.h"
#include "sp-root.h"
-#include "util/units.h"
#include "svg/svg.h"
#include "svg/svg-color.h"
diff --git a/src/measure-context.cpp b/src/measure-context.cpp
index 465b1da80..3c02c6f15 100644
--- a/src/measure-context.cpp
+++ b/src/measure-context.cpp
@@ -46,6 +46,7 @@
using Inkscape::ControlManager;
using Inkscape::CTLINE_SECONDARY;
+using Inkscape::Util::unit_table;
static void sp_measure_context_setup(SPEventContext *ec);
static void sp_measure_context_finish(SPEventContext *ec);
@@ -515,7 +516,6 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
std::sort(intersections.begin(), intersections.end(), GeomPointSortPredicate);
}
- Inkscape::Util::UnitTable unit_table;
Glib::ustring unit_name = prefs->getString("/tools/measure/unit");
if (!unit_name.compare("")) {
unit_name = "px";
diff --git a/src/preferences.cpp b/src/preferences.cpp
index 1d7009a99..0dc6f1ec4 100644
--- a/src/preferences.cpp
+++ b/src/preferences.cpp
@@ -28,6 +28,8 @@
#define PREFERENCES_FILE_NAME "preferences.xml"
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
static Inkscape::XML::Document *loadImpl( std::string const& prefsFilename, Glib::ustring & errMsg );
@@ -777,8 +779,6 @@ double Preferences::_extractDouble(Entry const &v)
double Preferences::_extractDouble(Entry const &v, Glib::ustring const &requested_unit)
{
- static Inkscape::Util::UnitTable unit_table; // load the unit_table once by making it static
-
double val = _extractDouble(v);
Glib::ustring unit = _extractUnit(v);
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index dde205eed..48f8eba2a 100644
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
@@ -40,6 +40,7 @@
#include <gtkmm/window.h>
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
#define DEFAULTGRIDCOLOR 0x3f3fff25
#define DEFAULTGRIDEMPCOLOR 0x3f3fff60
@@ -287,8 +288,6 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
{
SPNamedView *nv = SP_NAMEDVIEW(object);
- static Inkscape::Util::UnitTable unit_table;
-
switch (key) {
case SP_ATTR_VIEWONLY:
nv->editable = (!value);
@@ -1111,7 +1110,6 @@ double SPNamedView::getMarginLength(gchar const * const key,
bool const use_width)
{
double value;
- static Inkscape::Util::UnitTable unit_table;
Inkscape::Util::Unit percent = unit_table.getUnit("%");
if(!this->storeAsDouble(key,&value)) {
return 0.0;
@@ -1133,7 +1131,6 @@ Inkscape::Util::Unit const SPNamedView::getDefaultUnit() const
if (doc_units) {
return *doc_units;
} else {
- Inkscape::Util::UnitTable unit_table;
return *(new Inkscape::Util::Unit(unit_table.getUnit("pt")));
}
}
diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index abb2512f7..b3675440b 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -58,6 +58,7 @@
#include "sp-root.h"
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
namespace Inkscape {
namespace UI {
@@ -1107,7 +1108,6 @@ CloneTiler::CloneTiler (void) :
double value = prefs->getDouble(prefs_path + "fillwidth", 50.0);
Inkscape::Util::Unit const unit = unit_menu->getUnit();
- Inkscape::Util::UnitTable unit_table;
gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit);
fill_width->set_value (units);
@@ -1141,7 +1141,6 @@ CloneTiler::CloneTiler (void) :
double value = prefs->getDouble(prefs_path + "fillheight", 50.0);
Inkscape::Util::Unit const unit = unit_menu->getUnit();
- Inkscape::Util::UnitTable unit_table;
gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit);
fill_height->set_value (units);
@@ -2950,7 +2949,6 @@ void CloneTiler::clonetiler_fill_width_changed(GtkAdjustment *adj, Inkscape::UI:
{
gdouble const raw_dist = gtk_adjustment_get_value (adj);
Inkscape::Util::Unit const unit = u->getUnit();
- Inkscape::Util::UnitTable unit_table;
gdouble const pixels = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -2961,7 +2959,6 @@ void CloneTiler::clonetiler_fill_height_changed(GtkAdjustment *adj, Inkscape::UI
{
gdouble const raw_dist = gtk_adjustment_get_value (adj);
Inkscape::Util::Unit const unit = u->getUnit();
- Inkscape::Util::UnitTable unit_table;
gdouble const pixels = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -2975,7 +2972,6 @@ void CloneTiler::clonetiler_unit_changed()
gdouble height_pixels = prefs->getDouble(prefs_path + "fillheight");
Inkscape::Util::Unit unit = unit_menu->getUnit();
- Inkscape::Util::UnitTable unit_table;
gdouble width_value = Inkscape::Util::Quantity::convert(width_pixels, "px", unit);
gdouble height_value = Inkscape::Util::Quantity::convert(height_pixels, "px", unit);
diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
index 063902aa7..2c92608d7 100644
--- a/src/ui/dialog/export.cpp
+++ b/src/ui/dialog/export.cpp
@@ -107,6 +107,8 @@
#include "verbs.h"
#include "export.h"
+using Inkscape::Util::unit_table;
+
namespace {
class MessageCleaner
@@ -1883,7 +1885,6 @@ void Export::setValuePx( Gtk::Adjustment *adj, double val)
#endif
{
const Unit unit = unit_selector->getUnit();
- Inkscape::Util::UnitTable unit_table;
setValue(adj, Inkscape::Util::Quantity::convert(val, "px", unit));
@@ -1934,7 +1935,6 @@ float Export::getValuePx( Gtk::Adjustment *adj )
{
float value = getValue( adj);
const Unit unit = unit_selector->getUnit();
- Inkscape::Util::UnitTable unit_table;
return Inkscape::Util::Quantity::convert(value, unit, "px");
} // end of sp_export_value_get_px()
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index b15ab2823..d912fd9d3 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -47,9 +47,8 @@
#include "xml/node.h"
#include "xml/repr.h"
-static Inkscape::Util::UnitTable unit_table;
-
using std::pair;
+using Inkscape::Util::unit_table;
namespace Inkscape {
namespace UI {
diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h
index fc8edeeac..34ed7592d 100644
--- a/src/ui/widget/page-sizer.h
+++ b/src/ui/widget/page-sizer.h
@@ -117,7 +117,6 @@ private:
name = "";
smaller = 0.0;
larger = 0.0;
- static Inkscape::Util::UnitTable unit_table;
unit = unit_table.getUnit("px");
}
diff --git a/src/ui/widget/scalar-unit.cpp b/src/ui/widget/scalar-unit.cpp
index 99ff70846..2f4c1f341 100644
--- a/src/ui/widget/scalar-unit.cpp
+++ b/src/ui/widget/scalar-unit.cpp
@@ -16,6 +16,8 @@
#include "scalar-unit.h"
#include "spinbutton.h"
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
namespace UI {
namespace Widget {
@@ -226,9 +228,8 @@ void ScalarUnit::on_unit_changed()
Glib::ustring abbr = _unit_menu->getUnitAbbr();
_suffix->set_label(abbr);
- Inkscape::Util::UnitTable &table = _unit_menu->getUnitTable();
- Inkscape::Util::Unit new_unit = (table.getUnit(abbr));
- Inkscape::Util::Unit old_unit = (table.getUnit(lastUnits));
+ Inkscape::Util::Unit new_unit = (unit_table.getUnit(abbr));
+ Inkscape::Util::Unit old_unit = (unit_table.getUnit(lastUnits));
double convertedVal = 0;
if (old_unit.type == UNIT_TYPE_DIMENSIONLESS && new_unit.type == UNIT_TYPE_LINEAR) {
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index edf53d25c..388a0bcea 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -52,6 +52,8 @@
#include "gradient-chemistry.h"
#include "util/units.h"
+using Inkscape::Util::unit_table;
+
static gdouble const _sw_presets[] = { 32 , 16 , 10 , 8 , 6 , 4 , 3 , 2 , 1.5 , 1 , 0.75 , 0.5 , 0.25 , 0.1 };
static gchar const *const _sw_presets_str[] = {"32", "16", "10", "8", "6", "4", "3", "2", "1.5", "1", "0.75", "0.5", "0.25", "0.1"};
@@ -307,7 +309,6 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
{
int row = 0;
- Inkscape::Util::UnitTable unit_table;
Inkscape::Util::UnitTable::UnitMap m = unit_table.units(Inkscape::Util::UNIT_TYPE_LINEAR);
Inkscape::Util::UnitTable::UnitMap::iterator iter = m.begin();
while(iter != m.end()) {
diff --git a/src/ui/widget/unit-menu.cpp b/src/ui/widget/unit-menu.cpp
index 18b7bcab9..111226774 100644
--- a/src/ui/widget/unit-menu.cpp
+++ b/src/ui/widget/unit-menu.cpp
@@ -15,6 +15,8 @@
#include "unit-menu.h"
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
namespace UI {
namespace Widget {
@@ -30,7 +32,7 @@ UnitMenu::~UnitMenu() {
bool UnitMenu::setUnitType(UnitType unit_type)
{
// Expand the unit widget with unit entries from the unit table
- UnitTable::UnitMap m = _unit_table.units(unit_type);
+ UnitTable::UnitMap m = unit_table.units(unit_type);
UnitTable::UnitMap::iterator iter = m.begin();
while(iter != m.end()) {
Glib::ustring text = (*iter).first;
@@ -38,7 +40,7 @@ bool UnitMenu::setUnitType(UnitType unit_type)
++iter;
}
_type = unit_type;
- set_active_text(_unit_table.primary(unit_type));
+ set_active_text(unit_table.primary(unit_type));
return true;
}
@@ -52,7 +54,7 @@ bool UnitMenu::resetUnitType(UnitType unit_type)
void UnitMenu::addUnit(Unit const& u)
{
- _unit_table.addUnit(u, false);
+ unit_table.addUnit(u, false);
append(u.abbr);
}
@@ -60,9 +62,9 @@ Unit UnitMenu::getUnit() const
{
if (get_active_text() == "") {
g_assert(_type != UNIT_TYPE_NONE);
- return _unit_table.getUnit(_unit_table.primary(_type));
+ return unit_table.getUnit(unit_table.primary(_type));
}
- return _unit_table.getUnit(get_active_text());
+ return unit_table.getUnit(get_active_text());
}
bool UnitMenu::setUnit(Glib::ustring const & unit)
@@ -112,8 +114,8 @@ double UnitMenu::getConversion(Glib::ustring const &new_unit_abbr, Glib::ustring
{
double old_factor = getUnit().factor;
if (old_unit_abbr != "no_unit")
- old_factor = _unit_table.getUnit(old_unit_abbr).factor;
- Unit new_unit = _unit_table.getUnit(new_unit_abbr);
+ old_factor = unit_table.getUnit(old_unit_abbr).factor;
+ Unit new_unit = unit_table.getUnit(new_unit_abbr);
// Catch the case of zero or negative unit factors (error!)
if (old_factor < 0.0000001 ||
diff --git a/src/ui/widget/unit-menu.h b/src/ui/widget/unit-menu.h
index 3104d5aef..3f4df6bf9 100644
--- a/src/ui/widget/unit-menu.h
+++ b/src/ui/widget/unit-menu.h
@@ -127,10 +127,7 @@ public:
*/
bool isRadial() const;
- UnitTable &getUnitTable() {return _unit_table;}
-
protected:
- UnitTable _unit_table;
UnitType _type;
};
diff --git a/src/ui/widget/unit-tracker.cpp b/src/ui/widget/unit-tracker.cpp
index 99074be40..5b2dc031b 100644
--- a/src/ui/widget/unit-tracker.cpp
+++ b/src/ui/widget/unit-tracker.cpp
@@ -17,6 +17,9 @@
#define COLUMN_STRING 0
+using Inkscape::Util::UnitTable;
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
namespace UI {
namespace Widget {
@@ -32,10 +35,9 @@ UnitTracker::UnitTracker(UnitType unit_type) :
_priorValues()
{
_store = gtk_list_store_new(1, G_TYPE_STRING);
- static Inkscape::Util::UnitTable unit_table;
GtkTreeIter iter;
- UnitTable::UnitMap m = _unit_table.units(unit_type);
+ UnitTable::UnitMap m = unit_table.units(unit_type);
UnitTable::UnitMap::iterator m_iter = m.begin();
while(m_iter != m.end()) {
Glib::ustring text = (*m_iter).first;
@@ -99,7 +101,7 @@ void UnitTracker::setActiveUnit(Inkscape::Util::Unit const *unit)
void UnitTracker::setActiveUnitByAbbr(gchar const *abbr)
{
- Inkscape::Util::Unit u = _unit_table.getUnit(abbr);
+ Inkscape::Util::Unit u = unit_table.getUnit(abbr);
setActiveUnit(&u);
}
@@ -195,13 +197,13 @@ void UnitTracker::_setActive(gint active)
if (found) {
gchar *abbr;
gtk_tree_model_get(GTK_TREE_MODEL(_store), &iter, COLUMN_STRING, &abbr, -1);
- Inkscape::Util::Unit unit = _unit_table.getUnit(abbr);
+ Inkscape::Util::Unit unit = unit_table.getUnit(abbr);
found = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(_store), &iter, NULL, active);
if (found) {
gchar *newAbbr;
gtk_tree_model_get(GTK_TREE_MODEL(_store), &iter, COLUMN_STRING, &newAbbr, -1);
- Inkscape::Util::Unit newUnit = _unit_table.getUnit(newAbbr);
+ Inkscape::Util::Unit newUnit = unit_table.getUnit(newAbbr);
_activeUnit = newUnit;
if (_adjList) {
diff --git a/src/ui/widget/unit-tracker.h b/src/ui/widget/unit-tracker.h
index cdcb07c57..19559ae1c 100644
--- a/src/ui/widget/unit-tracker.h
+++ b/src/ui/widget/unit-tracker.h
@@ -21,7 +21,6 @@
#include "util/units.h"
using Inkscape::Util::Unit;
-using Inkscape::Util::UnitTable;
using Inkscape::Util::UnitType;
namespace Inkscape {
@@ -46,7 +45,6 @@ public:
GtkAction *createAction(gchar const *name, gchar const *label, gchar const *tooltip);
protected:
- UnitTable _unit_table;
UnitType _type;
private:
diff --git a/src/util/expression-evaluator.cpp b/src/util/expression-evaluator.cpp
index 3e1bab6bc..dc59c67f4 100644
--- a/src/util/expression-evaluator.cpp
+++ b/src/util/expression-evaluator.cpp
@@ -29,6 +29,8 @@
#include <string.h>
+using Inkscape::Util::unit_table;
+
namespace Inkscape {
namespace Util {
@@ -77,8 +79,6 @@ typedef struct
*/
static bool unitresolverproc (const gchar* identifier, GimpEevlQuantity *result, Unit* unit)
{
- static UnitTable unit_table;
-
if (!unit) {
result->value = 1;
result->dimension = 1;
diff --git a/src/util/units.cpp b/src/util/units.cpp
index 7f60eb391..7bc910fcc 100644
--- a/src/util/units.cpp
+++ b/src/util/units.cpp
@@ -303,6 +303,8 @@ bool UnitTable::save(std::string const &filename) {
return true;
}
+Inkscape::Util::UnitTable unit_table;
+
void UnitParser::on_start_element(Ctx &ctx, Glib::ustring const &name, AttrMap const &attrs)
{
if (name == "unit") {
@@ -358,7 +360,6 @@ Quantity::Quantity(double q, const Unit &u)
}
Quantity::Quantity(double q, const Glib::ustring u)
{
- UnitTable unit_table;
unit = new Unit(unit_table.getUnit(u));
quantity = q;
}
@@ -369,7 +370,6 @@ bool Quantity::compatibleWith(const Unit &u) const
}
bool Quantity::compatibleWith(const Glib::ustring u) const
{
- static UnitTable unit_table;
return compatibleWith(unit_table.getUnit(u));
}
@@ -379,7 +379,6 @@ double Quantity::value(const Unit &u) const
}
double Quantity::value(const Glib::ustring u) const
{
- static UnitTable unit_table;
return value(unit_table.getUnit(u));
}
@@ -387,7 +386,6 @@ Glib::ustring Quantity::string(const Unit &u) const {
return Glib::ustring::format(std::fixed, std::setprecision(2), value(u)) + " " + unit->abbr;
}
Glib::ustring Quantity::string(const Glib::ustring u) const {
- static UnitTable unit_table;
return string(unit_table.getUnit(u));
}
Glib::ustring Quantity::string() const {
@@ -411,17 +409,14 @@ double Quantity::convert(const double from_dist, const Unit &from, const Unit &t
}
double Quantity::convert(const double from_dist, const Glib::ustring from, const Unit &to)
{
- static UnitTable unit_table;
return convert(from_dist, unit_table.getUnit(from), to);
}
double Quantity::convert(const double from_dist, const Unit &from, const Glib::ustring to)
{
- static UnitTable unit_table;
return convert(from_dist, from, unit_table.getUnit(to));
}
double Quantity::convert(const double from_dist, const Glib::ustring from, const Glib::ustring to)
{
- static UnitTable unit_table;
return convert(from_dist, unit_table.getUnit(from), unit_table.getUnit(to));
}
diff --git a/src/util/units.h b/src/util/units.h
index c30fa24b3..bb202b96a 100644
--- a/src/util/units.h
+++ b/src/util/units.h
@@ -175,6 +175,8 @@ class UnitTable {
};
+extern UnitTable unit_table;
+
} // namespace Util
} // namespace Inkscape
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 863912d03..6493da84d 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -83,6 +83,7 @@ using Inkscape::UI::Widget::UnitTracker;
using Inkscape::UI::UXManager;
using Inkscape::UI::ToolboxFactory;
using ege::AppearTimeTracker;
+using Inkscape::Util::unit_table;
enum {
ACTIVATE,
@@ -393,7 +394,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
GtkWidget *eventbox = gtk_event_box_new ();
dtw->hruler = sp_ruler_new(GTK_ORIENTATION_HORIZONTAL);
dtw->hruler_box = eventbox;
- Inkscape::Util::UnitTable unit_table;
Inkscape::Util::Unit pt = unit_table.getUnit("pt");
sp_ruler_set_unit(SP_RULER(dtw->hruler), pt);
gtk_widget_set_tooltip_text (dtw->hruler_box, gettext(pt.name_plural.c_str()));
diff --git a/src/widgets/node-toolbar.cpp b/src/widgets/node-toolbar.cpp
index 65e42a60b..a9e298f1d 100644
--- a/src/widgets/node-toolbar.cpp
+++ b/src/widgets/node-toolbar.cpp
@@ -70,6 +70,7 @@ using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
+using Inkscape::Util::unit_table;
//####################################
//# node editing callbacks
@@ -249,7 +250,6 @@ static void sp_node_toolbox_coord_changed(gpointer /*shape_editor*/, GObject *tb
} else {
gtk_action_set_sensitive(xact, TRUE);
gtk_action_set_sensitive(yact, TRUE);
- Inkscape::Util::UnitTable unit_table;
Geom::Coord oldx = Quantity::convert(gtk_adjustment_get_value(xadj), unit, "px");
Geom::Coord oldy = Quantity::convert(gtk_adjustment_get_value(yadj), unit, "px");
Geom::Point mid = nt->_selected_nodes->pointwiseBounds()->midpoint();
@@ -276,8 +276,6 @@ static void sp_node_path_value_changed(GtkAdjustment *adj, GObject *tbl, Geom::D
}
Unit const unit = tracker->getActiveUnit();
- Inkscape::Util::UnitTable unit_table;
-
if (DocumentUndo::getUndoSensitive(sp_desktop_document(desktop))) {
prefs->setDouble(Glib::ustring("/tools/nodes/") + (d == Geom::X ? "x" : "y"),
Quantity::convert(gtk_adjustment_get_value(adj), unit, "px"));
diff --git a/src/widgets/paintbucket-toolbar.cpp b/src/widgets/paintbucket-toolbar.cpp
index 3bb1fa24a..7c23379cd 100644
--- a/src/widgets/paintbucket-toolbar.cpp
+++ b/src/widgets/paintbucket-toolbar.cpp
@@ -68,6 +68,7 @@ using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
+using Inkscape::Util::unit_table;
@@ -175,7 +176,6 @@ void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
// Create the units menu.
UnitTracker* tracker = new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR);
- Inkscape::Util::UnitTable unit_table;
Glib::ustring stored_unit = prefs->getString("/tools/paintbucket/offsetunits");
if (!stored_unit.empty()) {
Unit u = unit_table.getUnit(stored_unit);
diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp
index 29488031f..6dfd9cfcb 100644
--- a/src/widgets/rect-toolbar.cpp
+++ b/src/widgets/rect-toolbar.cpp
@@ -66,6 +66,7 @@ using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
using Inkscape::Util::Unit;
using Inkscape::Util::Quantity;
+using Inkscape::Util::unit_table;
//########################
@@ -93,7 +94,6 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *
UnitTracker* tracker = reinterpret_cast<UnitTracker*>(g_object_get_data( tbl, "tracker" ));
Unit const unit = tracker->getActiveUnit();
- Inkscape::Util::UnitTable unit_table;
if (DocumentUndo::getUndoSensitive(sp_desktop_document(desktop))) {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -187,7 +187,6 @@ static void rect_tb_event_attr_changed(Inkscape::XML::Node * /*repr*/, gchar con
UnitTracker* tracker = reinterpret_cast<UnitTracker*>( g_object_get_data( tbl, "tracker" ) );
Unit const unit = tracker->getActiveUnit();
- Inkscape::Util::UnitTable unit_table;
gpointer item = g_object_get_data( tbl, "item" );
if (item && SP_IS_RECT(item)) {
diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp
index 274e1df54..e4e72d86e 100644
--- a/src/widgets/ruler.cpp
+++ b/src/widgets/ruler.cpp
@@ -44,6 +44,7 @@
#define DEFAULT_RULER_FONT_SCALE PANGO_SCALE_X_SMALL
#define MINIMUM_INCR 5
+using Inkscape::Util::unit_table;
enum {
PROP_0,
@@ -258,8 +259,6 @@ sp_ruler_init (SPRuler *ruler)
gtk_widget_set_has_window (GTK_WIDGET (ruler), FALSE);
- Inkscape::Util::UnitTable unit_table;
-
priv->orientation = GTK_ORIENTATION_HORIZONTAL;
priv->unit = new Inkscape::Util::Unit(unit_table.getUnit("px"));
priv->lower = 0;
@@ -380,8 +379,6 @@ sp_ruler_set_property (GObject *object,
SPRuler *ruler = SP_RULER (object);
SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
- Inkscape::Util::UnitTable unit_table;
-
switch (prop_id)
{
case PROP_ORIENTATION:
@@ -1189,7 +1186,6 @@ sp_ruler_draw_ticks (SPRuler *ruler)
SPRulerMetric ruler_metric = ruler_metric_general; /* The metric to use for this unit system */
PangoLayout *layout;
PangoRectangle logical_rect, ink_rect;
- Inkscape::Util::UnitTable unit_table;
if (! gtk_widget_is_drawable (widget))
return;
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index b39423635..e4a5a2905 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -59,6 +59,7 @@ using Inkscape::UI::Widget::UnitTracker;
using Inkscape::Util::Unit;
using Inkscape::Util::Quantity;
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
static void
sp_selection_layout_widget_update(SPWidget *spw, Inkscape::Selection *sel)
@@ -96,7 +97,6 @@ sp_selection_layout_widget_update(SPWidget *spw, Inkscape::Selection *sel)
tracker->setFullVal( a, keyval[i].val );
}
} else {
- Inkscape::Util::UnitTable unit_table;
for (unsigned i = 0; i < G_N_ELEMENTS(keyval); ++i) {
GtkAdjustment *a = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(spw), keyval[i].key));
gtk_adjustment_set_value(a, Quantity::convert(keyval[i].val, "px", unit));
@@ -192,8 +192,6 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw)
GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "width" ) );
GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "height" ) );
- Inkscape::Util::UnitTable unit_table;
-
if (unit.type == Inkscape::Util::UNIT_TYPE_LINEAR) {
x0 = Quantity::convert(gtk_adjustment_get_value(a_x), unit, "px");
y0 = Quantity::convert(gtk_adjustment_get_value(a_y), unit, "px");
@@ -493,7 +491,6 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
// Create the units menu.
UnitTracker* tracker = new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR);
- Inkscape::Util::UnitTable unit_table;
tracker->addUnit(unit_table.getUnit("%"));
tracker->setActiveUnit( sp_desktop_namedview(desktop)->doc_units );
diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp
index e35a8b36b..12d4002b8 100644
--- a/src/widgets/stroke-style.cpp
+++ b/src/widgets/stroke-style.cpp
@@ -26,6 +26,7 @@
#include "ui/widget/unit-menu.h"
using Inkscape::DocumentUndo;
+using Inkscape::Util::unit_table;
/**
* Creates a new widget for the line stroke paint.
@@ -196,7 +197,6 @@ StrokeStyle::StrokeStyle() :
Gtk::Widget *us = manage(unitSelector);
SPDesktop *desktop = SP_ACTIVE_DESKTOP;
- Inkscape::Util::UnitTable unit_table;
unitSelector->addUnit(unit_table.getUnit("%"));
if (desktop) {
unitSelector->setUnit(sp_desktop_namedview(desktop)->doc_units->abbr);