diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-12-07 20:47:44 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-12-07 20:47:44 +0000 |
| commit | 075a88fc7edbec8682bcd672de325ec1bedf129f (patch) | |
| tree | 33d64f8ddc366a96e2c480b672224d44fc0e6355 /src/ui/widget | |
| parent | Update to trunk (diff) | |
| parent | Fix bug 1733422 - Bezier and pencil tool don't work form: from clipboard (diff) | |
| download | inkscape-075a88fc7edbec8682bcd672de325ec1bedf129f.tar.gz inkscape-075a88fc7edbec8682bcd672de325ec1bedf129f.zip | |
Mege trunk into powerpencilII
Diffstat (limited to 'src/ui/widget')
| -rw-r--r-- | src/ui/widget/registered-widget.cpp | 24 | ||||
| -rw-r--r-- | src/ui/widget/registered-widget.h | 11 | ||||
| -rw-r--r-- | src/ui/widget/scalar.cpp | 6 | ||||
| -rw-r--r-- | src/ui/widget/scalar.h | 5 |
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. */ |
