diff options
| author | MenTaLguY <mental@rydia.net> | 2006-07-21 19:22:44 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-07-21 19:22:44 +0000 |
| commit | 8541bc72f1d7e7fe58591111d824e8dd5d103895 (patch) | |
| tree | d374cc142954c52074bdf47a62be61bf21ee1ea1 /src/document-subset.cpp | |
| parent | switch to sigc++ signals for "modified" and "release" (diff) | |
| download | inkscape-8541bc72f1d7e7fe58591111d824e8dd5d103895.tar.gz inkscape-8541bc72f1d7e7fe58591111d824e8dd5d103895.zip | |
switch to sigc++ signal for "release"
(bzr r1450)
Diffstat (limited to 'src/document-subset.cpp')
| -rw-r--r-- | src/document-subset.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/document-subset.cpp b/src/document-subset.cpp index 4ef547320..5fcf1641c 100644 --- a/src/document-subset.cpp +++ b/src/document-subset.cpp @@ -36,10 +36,10 @@ struct DocumentSubset::Relations : public GC::Managed<GC::ATOMIC>, SPObject *parent; Siblings children; - gulong release_connection; + sigc::connection release_connection; sigc::connection position_changed_connection; - Record() : parent(NULL), release_connection(0) {} + Record() : parent(NULL) {} unsigned childIndex(SPObject *obj) { Siblings::iterator found; @@ -163,8 +163,9 @@ private: sp_object_ref(obj); Record &record=records[obj]; record.release_connection - = g_signal_connect(obj, "release", - (GCallback)&Relations::_release_object, this); + = obj->connectRelease( + sigc::mem_fun(this, &Relations::_release_object) + ); record.position_changed_connection = obj->connectPositionChanged( sigc::mem_fun(this, &Relations::reorder) @@ -178,10 +179,7 @@ private: void _doRemove(SPObject *obj) { Record &record=records[obj]; - if (record.release_connection) { - g_signal_handler_disconnect(obj, record.release_connection); - record.release_connection = 0; - } + record.release_connection.disconnect(); record.position_changed_connection.disconnect(); records.erase(obj); @@ -212,10 +210,9 @@ private: } } - static void _release_object(SPObject *obj, void *relations_p) { - Relations &relations=*static_cast<Relations *>(relations_p); - if (relations.get(obj)) { - relations.remove(obj, true); + void _release_object(SPObject *obj) { + if (get(obj)) { + remove(obj, true); } } }; |
