From 299cde7dda4705e61faf629c4885b8742e66ac82 Mon Sep 17 00:00:00 2001 From: mental Date: Wed, 26 Jul 2006 12:19:15 +0000 Subject: [PATCH] finish switching to sigc++ SPObject signals for SPStyle --- ChangeLog | 6 ++++++ src/style.cpp | 9 +++++---- src/style.h | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6cd34087e..ae6a784f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-07-26 MenTaLguY + + * src/style.cpp, src/style.h: + + finish switching to sigc++ SPObject signals for SPStyle + 2006-07-25 MenTaLguY * src/widgets/gradient-vector.cpp, src/widgets/gradient-vector.h: diff --git a/src/style.cpp b/src/style.cpp index 6b5a953fd..0eb8b0869 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -410,6 +410,8 @@ sp_style_new() style->fill_hreffed = false; style->stroke_hreffed = false; + new (&style->release_connection) sigc::connection(); + new (&style->fill_release_connection) sigc::connection(); new (&style->fill_modified_connection) sigc::connection(); @@ -431,7 +433,7 @@ sp_style_new_from_object(SPObject *object) SPStyle *style = sp_style_new(); style->object = object; - g_signal_connect(G_OBJECT(object), "release", G_CALLBACK(sp_style_object_release), style); + style->release_connection = object->connectRelease(sigc::bind<1>(sigc::ptr_fun(&sp_style_object_release), style)); if (object && SP_OBJECT_IS_CLONED(object)) { style->cloned = true; @@ -468,9 +470,8 @@ sp_style_unref(SPStyle *style) style->refcount -= 1; if (style->refcount < 1) { - if (style->object) - g_signal_handlers_disconnect_matched(G_OBJECT(style->object), - G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, style); + style->release_connection.disconnect(); + style->release_connection.~connection(); if (style->text) sp_text_style_unref(style->text); sp_style_paint_clear(style, &style->fill); sp_style_paint_clear(style, &style->stroke); diff --git a/src/style.h b/src/style.h index 9a70881de..1cc4b5a10 100644 --- a/src/style.h +++ b/src/style.h @@ -346,6 +346,8 @@ struct SPStyle { bool fill_hreffed; bool stroke_hreffed; + sigc::connection release_connection; + sigc::connection fill_release_connection; sigc::connection fill_modified_connection; -- 2.30.2