diff options
author | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-06 21:03:04 +0800 |
---|---|---|
committer | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-06 21:03:04 +0800 |
commit | 60dd2703f835a3fc7c1c78a94727a4ee241a0217 (patch) | |
tree | e692a05602d06a4f483c861bd0931edfe2b56873 /libempathy | |
parent | 483aec8b93d13a682be21ff569968ece36f00217 (diff) | |
download | gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar.gz gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar.bz2 gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar.lz gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar.xz gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.tar.zst gsoc2013-empathy-60dd2703f835a3fc7c1c78a94727a4ee241a0217.zip |
empathy-irc-server.c: add the modified signal
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-irc-server.c | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/libempathy/empathy-irc-server.c b/libempathy/empathy-irc-server.c index da99de94f..a57394fe6 100644 --- a/libempathy/empathy-irc-server.c +++ b/libempathy/empathy-irc-server.c @@ -25,6 +25,9 @@ #include <glib.h> #include <glib/gi18n.h> +#include <telepathy-glib/util.h> + +#include "empathy-marshal.h" #include "empathy-irc-server.h" G_DEFINE_TYPE (EmpathyIrcServer, empathy_irc_server, G_TYPE_OBJECT); @@ -38,6 +41,15 @@ enum LAST_PROPERTY }; +/* signals */ +enum +{ + MODIFIED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = {0}; + typedef struct _EmpathyIrcServerPrivate EmpathyIrcServerPrivate; struct _EmpathyIrcServerPrivate @@ -88,14 +100,26 @@ empathy_irc_server_set_property (GObject *object, switch (property_id) { case PROP_ADDRESS: - g_free (priv->address); - priv->address = g_value_dup_string (value); + if (tp_strdiff (priv->address, g_value_get_string (value))) + { + g_free (priv->address); + priv->address = g_value_dup_string (value); + g_signal_emit (object, signals[MODIFIED], 0); + } break; case PROP_PORT: - priv->port = g_value_get_uint (value); + if (priv->port != g_value_get_uint (value)) + { + priv->port = g_value_get_uint (value); + g_signal_emit (object, signals[MODIFIED], 0); + } break; case PROP_SSL: - priv->ssl = g_value_get_boolean (value); + if (priv->ssl != g_value_get_boolean (value)) + { + priv->ssl = g_value_get_boolean (value); + g_signal_emit (object, signals[MODIFIED], 0); + } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -169,6 +193,15 @@ empathy_irc_server_class_init (EmpathyIrcServerClass *klass) G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB); g_object_class_install_property (object_class, PROP_SSL, param_spec); + + signals[MODIFIED] = g_signal_new ( + "modified", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + empathy_marshal_VOID__VOID, + G_TYPE_NONE, 0); } EmpathyIrcServer * |