summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter
diff options
context:
space:
mode:
authorJabiertxof <jtx@jtx>2017-01-02 12:14:36 +0000
committerJabiertxof <jtx@jtx>2017-01-02 12:14:36 +0000
commit0a19b6fbad1ada089488541e60f195a0943c01a8 (patch)
treefdfd1b6e29e76f3860ced0cc39e1532182e9cae2 /src/live_effects/parameter
parentattemt to mirror (diff)
downloadinkscape-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.cpp26
-rw-r--r--src/live_effects/parameter/originalitem.cpp21
-rw-r--r--src/live_effects/parameter/originalitem.h5
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&);
};