summaryrefslogtreecommitdiffstats
path: root/src/widgets/dash-selector.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-06-10 14:20:18 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-08-05 00:31:06 +0000
commit7aaeaacc08de60fd324646afe69f4dbed93f89d4 (patch)
tree13c87e946659151021e553dc3b752c3dbcd2f4a2 /src/widgets/dash-selector.cpp
parentFix one symbolic icon bug (diff)
downloadinkscape-7aaeaacc08de60fd324646afe69f4dbed93f89d4.tar.gz
inkscape-7aaeaacc08de60fd324646afe69f4dbed93f89d4.zip
Allow inkscape handle units and percent in dasharray and dashoffset. Add pref optional to scale dashes on stroke scale
Diffstat (limited to 'src/widgets/dash-selector.cpp')
-rw-r--r--src/widgets/dash-selector.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp
index 37bf08b3d..43f5f66e9 100644
--- a/src/widgets/dash-selector.cpp
+++ b/src/widgets/dash-selector.cpp
@@ -27,7 +27,9 @@
#include "preferences.h"
#include "display/cairo-utils.h"
-
+#include "util/units.h"
+#include "inkscape.h"
+#include "object/sp-namedview.h"
#include "style.h"
#include "ui/dialog-events.h"
@@ -111,7 +113,12 @@ void SPDashSelector::init_dashes() {
if (!dash_prefs.empty()) {
SPStyle style;
dashes = g_new (double *, dash_prefs.size() + 2); // +1 for custom slot, +1 for terminator slot
-
+ SPDocument * document = SP_ACTIVE_DOCUMENT;
+ SPNamedView *nv = sp_document_namedview(document, NULL);
+ Glib::ustring display_unit = "px";
+ if (nv) {
+ display_unit = nv->display_units->abbr;
+ }
for (std::vector<Glib::ustring>::iterator i = dash_prefs.begin(); i != dash_prefs.end(); ++i) {
style.readFromPrefs( *i );
@@ -120,7 +127,7 @@ void SPDashSelector::init_dashes() {
double *d = dashes[pos];
unsigned i = 0;
for (; i < style.stroke_dasharray.values.size(); i++) {
- d[i] = style.stroke_dasharray.values[i];
+ d[i] = Inkscape::Util::Quantity::convert(style.stroke_dasharray.values[i].computed, "px", display_unit.c_str());
}
d[i] = -1;
} else {