index 9e304799876e359a48449e9f8ef7687c2a911953..e39b6b7b4e897f950c609bf60da65a0bcf3319fb 100644 (file)
--- a/src/sp-use-reference.cpp
+++ b/src/sp-use-reference.cpp
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)
{
sourceHref = NULL;
sourceRepr = NULL;
sourceObject = NULL;
- new (&_delete_connection) sigc::connection();
- new (&_changed_connection) sigc::connection();
- new (&_transformed_connection) sigc::connection();
_changed_connection = changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_usepath_href_changed), this)); // listening to myself, this should be virtual instead
user_unlink = NULL;
quit_listening();
unlink();
-
- _delete_connection.~connection();
- _changed_connection.~connection();
- _transformed_connection.~connection();
}
void
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
if ( sourceObject == NULL ) {
return;
}
- g_signal_handler_disconnect(sourceObject, _modified_connection);
+ _modified_connection.disconnect();
_delete_connection.disconnect();
_transformed_connection.disconnect();
sourceRepr = NULL;
}
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);
}