summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-12-07 20:47:44 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-12-07 20:47:44 +0000
commit075a88fc7edbec8682bcd672de325ec1bedf129f (patch)
tree33d64f8ddc366a96e2c480b672224d44fc0e6355 /src/ui/widget
parentUpdate to trunk (diff)
parentFix bug 1733422 - Bezier and pencil tool don't work form: from clipboard (diff)
downloadinkscape-075a88fc7edbec8682bcd672de325ec1bedf129f.tar.gz
inkscape-075a88fc7edbec8682bcd672de325ec1bedf129f.zip
Mege trunk into powerpencilII
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/registered-widget.cpp24
-rw-r--r--src/ui/widget/registered-widget.h11
-rw-r--r--src/ui/widget/scalar.cpp6
-rw-r--r--src/ui/widget/scalar.h5
4 files changed, 26 insertions, 20 deletions
diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp
index a88413347..a3b87f89b 100644
--- a/src/ui/widget/registered-widget.cpp
+++ b/src/ui/widget/registered-widget.cpp
@@ -279,7 +279,6 @@ RegisteredScalar::RegisteredScalar ( const Glib::ustring& label, const Glib::ust
init_parent(key, wr, repr_in, doc_in);
setProgrammatically = false;
-
setRange (-1e6, 1e6);
setDigits (2);
setIncrements(0.1, 1.0);
@@ -299,12 +298,14 @@ RegisteredScalar::on_value_changed()
_wr->setUpdating (true);
Inkscape::SVGOStringStream os;
- os << getValue();
-
- set_sensitive(false);
+ //Force exact 0 if decimals over to 6
+ double val = getValue() < 1e-6 && getValue() > -1e-6?0.0:getValue();
+ os << val;
+ //TODO: Test is ok remove this sensitives
+ //also removed in registed text and in registered random
+ //set_sensitive(false);
write_to_xml(os.str().c_str());
- set_sensitive(true);
-
+ //set_sensitive(true);
_wr->setUpdating (false);
}
@@ -342,11 +343,9 @@ RegisteredText::on_activate()
}
_wr->setUpdating (true);
Glib::ustring str(getText());
- set_sensitive(false);
Inkscape::SVGOStringStream os;
os << str;
write_to_xml(os.str().c_str());
- set_sensitive(true);
_wr->setUpdating (false);
}
@@ -757,7 +756,6 @@ RegisteredRandom::RegisteredRandom ( const Glib::ustring& label, const Glib::ust
init_parent(key, wr, repr_in, doc_in);
setProgrammatically = false;
-
setRange (-1e6, 1e6);
setDigits (2);
setIncrements(0.1, 1.0);
@@ -786,12 +784,10 @@ RegisteredRandom::on_value_changed()
_wr->setUpdating (true);
Inkscape::SVGOStringStream os;
- os << getValue() << ';' << getStartSeed();
-
- set_sensitive(false);
+ //Force exact 0 if decimals over to 6
+ double val = getValue() < 1e-6 && getValue() > -1e-6?0.0:getValue();
+ os << val << ';' << getStartSeed();
write_to_xml(os.str().c_str());
- set_sensitive(true);
-
_wr->setUpdating (false);
}
diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h
index f66d5cbf2..765fa77b6 100644
--- a/src/ui/widget/registered-widget.h
+++ b/src/ui/widget/registered-widget.h
@@ -12,11 +12,11 @@
#ifndef INKSCAPE_UI_WIDGET_REGISTERED_WIDGET__H_
#define INKSCAPE_UI_WIDGET_REGISTERED_WIDGET__H_
-#include "ui/widget/scalar.h"
#include <2geom/affine.h>
#include "xml/node.h"
#include "registry.h"
+#include "ui/widget/scalar.h"
#include "ui/widget/scalar-unit.h"
#include "ui/widget/point.h"
#include "ui/widget/text.h"
@@ -108,12 +108,14 @@ protected:
bool saved = DocumentUndo::getUndoSensitive(local_doc);
DocumentUndo::setUndoSensitive(local_doc, false);
+ const char * svgstr_old = local_repr->attribute(_key.c_str());
if (!write_undo) {
local_repr->setAttribute(_key.c_str(), svgstr);
}
DocumentUndo::setUndoSensitive(local_doc, saved);
-
- local_doc->setModifiedSinceSave();
+ if (svgstr_old && svgstr && strcmp(svgstr_old,svgstr)) {
+ local_doc->setModifiedSinceSave();
+ }
if (write_undo) {
local_repr->setAttribute(_key.c_str(), svgstr);
@@ -244,9 +246,8 @@ public:
Registry& wr,
Inkscape::XML::Node* repr_in = NULL,
SPDocument *doc_in = NULL );
-
protected:
- sigc::connection _value_changed_connection;
+ sigc::connection _value_changed_connection;
void on_value_changed();
};
diff --git a/src/ui/widget/scalar.cpp b/src/ui/widget/scalar.cpp
index f8543a371..937bea697 100644
--- a/src/ui/widget/scalar.cpp
+++ b/src/ui/widget/scalar.cpp
@@ -14,7 +14,6 @@
# include <config.h>
#endif
-
#include "scalar.h"
#include "spinbutton.h"
#include <gtkmm/scale.h>
@@ -149,6 +148,11 @@ Glib::SignalProxy0<void> Scalar::signal_value_changed()
return static_cast<SpinButton*>(_widget)->signal_value_changed();
}
+Glib::SignalProxy1<bool, GdkEventButton*> Scalar::signal_button_release_event()
+{
+ return static_cast<SpinButton*>(_widget)->signal_button_release_event();
+}
+
} // namespace Widget
} // namespace UI
diff --git a/src/ui/widget/scalar.h b/src/ui/widget/scalar.h
index f186f46ac..b2c923953 100644
--- a/src/ui/widget/scalar.h
+++ b/src/ui/widget/scalar.h
@@ -153,6 +153,11 @@ public:
Glib::SignalProxy0<void> signal_value_changed();
/**
+ * Signal raised when the spin button's pressed.
+ */
+ Glib::SignalProxy1<bool, GdkEventButton*> signal_button_release_event();
+
+ /**
* true if the value was set by setValue, not changed by the user;
* if a callback checks it, it must reset it back to false.
*/