diff options
| author | Jabiertxof <jtx@jtx> | 2017-01-02 12:14:36 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx> | 2017-01-02 12:14:36 +0000 |
| commit | 0a19b6fbad1ada089488541e60f195a0943c01a8 (patch) | |
| tree | fdfd1b6e29e76f3860ced0cc39e1532182e9cae2 /src/live_effects/parameter | |
| parent | attemt to mirror (diff) | |
| download | inkscape-0a19b6fbad1ada089488541e60f195a0943c01a8.tar.gz inkscape-0a19b6fbad1ada089488541e60f195a0943c01a8.zip | |
Fix inverse clone
(bzr r15356.1.12)
Diffstat (limited to 'src/live_effects/parameter')
| -rw-r--r-- | src/live_effects/parameter/item.cpp | 26 | ||||
| -rw-r--r-- | src/live_effects/parameter/originalitem.cpp | 21 | ||||
| -rw-r--r-- | src/live_effects/parameter/originalitem.h | 5 |
3 files changed, 16 insertions, 36 deletions
diff --git a/src/live_effects/parameter/item.cpp b/src/live_effects/parameter/item.cpp index 0a46ec7ce..8caea4e26 100644 --- a/src/live_effects/parameter/item.cpp +++ b/src/live_effects/parameter/item.cpp @@ -135,31 +135,25 @@ ItemParam::addCanvasIndicators(SPLPEItem const*/*lpeitem*/, std::vector<Geom::Pa void -ItemParam::start_listening(SPObject * to, bool force) +ItemParam::start_listening(SPObject * to) { if ( to == NULL ) { return; } - if (!linked_delete_connection.connected() || force) { - std::cout << "111111111111111111\n"; - linked_delete_connection = to->connectDelete(sigc::mem_fun(*this, &ItemParam::linked_delete)); - linked_modified_connection = to->connectModified(sigc::mem_fun(*this, &ItemParam::linked_modified)); - if (SP_IS_ITEM(to)) { - linked_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::mem_fun(*this, &ItemParam::linked_transformed)); - } - linked_modified(to, SP_OBJECT_MODIFIED_FLAG); // simulate linked_modified signal, so that path data is updated + linked_delete_connection = to->connectDelete(sigc::mem_fun(*this, &ItemParam::linked_delete)); + linked_modified_connection = to->connectModified(sigc::mem_fun(*this, &ItemParam::linked_modified)); + if (SP_IS_ITEM(to)) { + linked_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::mem_fun(*this, &ItemParam::linked_transformed)); } + linked_modified(to, SP_OBJECT_MODIFIED_FLAG); // simulate linked_modified signal, so that path data is updated } void ItemParam::quit_listening(void) { - if (linked_delete_connection.connected()) { - std::cout << "2222222222222222222222\n"; - linked_modified_connection.disconnect(); - linked_delete_connection.disconnect(); - linked_transformed_connection.disconnect(); - } + linked_modified_connection.disconnect(); + linked_delete_connection.disconnect(); + linked_transformed_connection.disconnect(); } void @@ -167,7 +161,7 @@ ItemParam::ref_changed(SPObject */*old_ref*/, SPObject *new_ref) { quit_listening(); if ( new_ref ) { - start_listening(new_ref, true); + start_listening(new_ref); } } diff --git a/src/live_effects/parameter/originalitem.cpp b/src/live_effects/parameter/originalitem.cpp index dc7f2d634..053062128 100644 --- a/src/live_effects/parameter/originalitem.cpp +++ b/src/live_effects/parameter/originalitem.cpp @@ -84,25 +84,12 @@ OriginalItemParam::param_newWidget() } void -OriginalItemParam::param_start_listening(SPObject * to) -{ - if ( to == NULL ) { - return; - } - start_listening(to, false); -} - -void -OriginalItemParam::param_quit_listening(void) -{ - quit_listening(); -} - -void OriginalItemParam::linked_modified_callback(SPObject *linked_obj, guint /*flags*/) { - emit_changed(); - SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); + if (!inverse) { + emit_changed(); + SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); + } } void diff --git a/src/live_effects/parameter/originalitem.h b/src/live_effects/parameter/originalitem.h index 5478a1e4b..58d04e05a 100644 --- a/src/live_effects/parameter/originalitem.h +++ b/src/live_effects/parameter/originalitem.h @@ -23,11 +23,9 @@ public: Inkscape::UI::Widget::Registry* wr, Effect* effect); virtual ~OriginalItemParam(); - + void setInverse(bool inversed) { inverse = inversed; } bool linksToItem() const { return (href != NULL); } SPItem * getObject() const { return ref.getObject(); } - void param_start_listening(SPObject * to); - void param_quit_listening(void); virtual Gtk::Widget * param_newWidget(); @@ -38,6 +36,7 @@ protected: void on_select_original_button_click(); private: + bool inverse; OriginalItemParam(const OriginalItemParam&); OriginalItemParam& operator=(const OriginalItemParam&); }; |
