diff options
| author | MenTaLguY <mental@rydia.net> | 2006-07-28 03:42:38 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-07-28 03:42:38 +0000 |
| commit | 5c1cc8a7842b96b5160a9b31bf98c1fde8dc9372 (patch) | |
| tree | 5c250c7c8cddca8fa7eacf016e2f1e52e88940f3 /src/sp-use-reference.cpp | |
| parent | switch to sigc++ SPObject signals for SPAttributeWidget and SPAttributeTable (diff) | |
| download | inkscape-5c1cc8a7842b96b5160a9b31bf98c1fde8dc9372.tar.gz inkscape-5c1cc8a7842b96b5160a9b31bf98c1fde8dc9372.zip | |
switch to sigc++ SPObject signals for SPUsePathReference
(bzr r1498)
Diffstat (limited to 'src/sp-use-reference.cpp')
| -rw-r--r-- | src/sp-use-reference.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/sp-use-reference.cpp b/src/sp-use-reference.cpp index 9e3047998..8e65593c1 100644 --- a/src/sp-use-reference.cpp +++ b/src/sp-use-reference.cpp @@ -39,7 +39,7 @@ bool SPUseReference::_acceptObject(SPObject * const obj) const static void sp_usepath_href_changed(SPObject *old_ref, SPObject *ref, SPUsePath *offset); static void sp_usepath_move_compensate(NR::Matrix const *mp, SPItem *original, SPUsePath *self); static void sp_usepath_delete_self(SPObject *deleted, SPUsePath *offset); -static void sp_usepath_source_modified(SPObject *iSource, guint flags, SPItem *item); +static void sp_usepath_source_modified(SPObject *iSource, guint flags, SPUsePath *offset); SPUsePath::SPUsePath(SPObject* i_owner):SPUseReference(i_owner) { @@ -49,6 +49,7 @@ SPUsePath::SPUsePath(SPObject* i_owner):SPUseReference(i_owner) sourceHref = NULL; sourceRepr = NULL; sourceObject = NULL; + new (&_modified_connection) sigc::connection(); new (&_delete_connection) sigc::connection(); new (&_changed_connection) sigc::connection(); new (&_transformed_connection) sigc::connection(); @@ -67,6 +68,7 @@ SPUsePath::~SPUsePath(void) quit_listening(); unlink(); + _modified_connection.~connection(); _delete_connection.~connection(); _changed_connection.~connection(); _transformed_connection.~connection(); @@ -113,7 +115,7 @@ SPUsePath::start_listening(SPObject* to) sourceRepr = SP_OBJECT_REPR(to); _delete_connection = to->connectDelete(sigc::bind(sigc::ptr_fun(&sp_usepath_delete_self), this)); _transformed_connection = SP_ITEM(to)->connectTransformed(sigc::bind(sigc::ptr_fun(&sp_usepath_move_compensate), this)); - _modified_connection = g_signal_connect(G_OBJECT(to), "modified", G_CALLBACK(sp_usepath_source_modified), this); + _modified_connection = to->connectModified(sigc::bind<2>(sigc::ptr_fun(&sp_usepath_source_modified), this)); } void @@ -122,7 +124,7 @@ SPUsePath::quit_listening(void) if ( sourceObject == NULL ) { return; } - g_signal_handler_disconnect(sourceObject, _modified_connection); + _modified_connection.disconnect(); _delete_connection.disconnect(); _transformed_connection.disconnect(); sourceRepr = NULL; @@ -196,9 +198,8 @@ sp_usepath_delete_self(SPObject */*deleted*/, SPUsePath *offset) } static void -sp_usepath_source_modified(SPObject *iSource, guint flags, SPItem *item) +sp_usepath_source_modified(SPObject *iSource, guint flags, SPUsePath *offset) { - SPUsePath *offset = (SPUsePath*)item; offset->sourceDirty = true; offset->owner->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); } |
