diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/parameter/originalpath.cpp | 8 | ||||
| -rw-r--r-- | src/live_effects/parameter/originalpath.h | 2 | ||||
| -rw-r--r-- | src/live_effects/parameter/path.cpp | 10 | ||||
| -rw-r--r-- | src/live_effects/parameter/path.h | 3 |
4 files changed, 23 insertions, 0 deletions
diff --git a/src/live_effects/parameter/originalpath.cpp b/src/live_effects/parameter/originalpath.cpp index e5c16943c..71ab006d6 100644 --- a/src/live_effects/parameter/originalpath.cpp +++ b/src/live_effects/parameter/originalpath.cpp @@ -104,6 +104,14 @@ OriginalPathParam::linked_modified_callback(SPObject *linked_obj, guint /*flags* } void +OriginalPathParam::linked_transformed_callback(Geom::Affine const * /*rel_transf*/, SPItem * /*moved_item*/) +{ +/** \todo find good way to compensate for referenced path transform, like done for normal clones. + * See sp-use.cpp: sp_use_move_compensate */ +} + + +void OriginalPathParam::on_select_original_button_click() { SPDesktop *desktop = SP_ACTIVE_DESKTOP; diff --git a/src/live_effects/parameter/originalpath.h b/src/live_effects/parameter/originalpath.h index f05f17d9a..7dd17edb0 100644 --- a/src/live_effects/parameter/originalpath.h +++ b/src/live_effects/parameter/originalpath.h @@ -35,6 +35,8 @@ public: protected: virtual void linked_modified_callback(SPObject *linked_obj, guint flags); + virtual void linked_transformed_callback(Geom::Affine const *rel_transf, SPItem *moved_item); + void on_select_original_button_click(); private: diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index 186cfff9a..69c337a7c 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -326,6 +326,9 @@ PathParam::start_listening(SPObject * to) } linked_delete_connection = to->connectDelete(sigc::mem_fun(*this, &PathParam::linked_delete)); linked_modified_connection = to->connectModified(sigc::mem_fun(*this, &PathParam::linked_modified)); + if (SP_IS_ITEM(to)) { + linked_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::mem_fun(*this, &PathParam::linked_transformed)); + } linked_modified(to, SP_OBJECT_MODIFIED_FLAG); // simulate linked_modified signal, so that path data is updated } @@ -334,6 +337,7 @@ PathParam::quit_listening(void) { linked_modified_connection.disconnect(); linked_delete_connection.disconnect(); + linked_transformed_connection.disconnect(); } void @@ -368,6 +372,11 @@ void PathParam::linked_modified(SPObject *linked_obj, guint flags) linked_modified_callback(linked_obj, flags); } +void PathParam::linked_transformed(Geom::Affine const *rel_transf, SPItem *moved_item) +{ + linked_transformed_callback(rel_transf, moved_item); +} + void PathParam::linked_modified_callback(SPObject *linked_obj, guint /*flags*/) { @@ -392,6 +401,7 @@ PathParam::linked_modified_callback(SPObject *linked_obj, guint /*flags*/) SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); } + /* CALLBACK FUNCTIONS FOR THE BUTTONS */ void PathParam::on_edit_button_click() diff --git a/src/live_effects/parameter/path.h b/src/live_effects/parameter/path.h index 7b51dc48a..a4f46f11f 100644 --- a/src/live_effects/parameter/path.h +++ b/src/live_effects/parameter/path.h @@ -70,13 +70,16 @@ protected: sigc::connection ref_changed_connection; sigc::connection linked_delete_connection; sigc::connection linked_modified_connection; + sigc::connection linked_transformed_connection; void ref_changed(SPObject *old_ref, SPObject *new_ref); void remove_link(); void start_listening(SPObject * to); void quit_listening(void); void linked_delete(SPObject *deleted); void linked_modified(SPObject *linked_obj, guint flags); + void linked_transformed(Geom::Affine const *rel_transf, SPItem *moved_item); virtual void linked_modified_callback(SPObject *linked_obj, guint flags); + virtual void linked_transformed_callback(Geom::Affine const * /*rel_transf*/, SPItem * /*moved_item*/) {}; void on_edit_button_click(); void on_copy_button_click(); |
