[Telepathy-commits] [telepathy-mission-control/master] Create update string function
Alberto Mardegan
alberto.mardegan at nokia.com
Mon Jan 5 01:40:43 PST 2009
Create function for some common code
---
libmcclient/mc-account.c | 49 +++++++++++++++++++--------------------------
1 files changed, 21 insertions(+), 28 deletions(-)
diff --git a/libmcclient/mc-account.c b/libmcclient/mc-account.c
index 1c94205..141ff20 100644
--- a/libmcclient/mc-account.c
+++ b/libmcclient/mc-account.c
@@ -383,19 +383,27 @@ mc_account_new (TpDBusDaemon *dbus, const gchar *object_path)
}
static void
+update_string (McAccount *account, gchar **ptr, const GValue *value,
+ GQuark quark, gboolean emit_changed)
+{
+ g_free (*ptr);
+ *ptr = g_value_dup_string (value);
+ if (emit_changed)
+ g_signal_emit (account, _mc_account_signals[STRING_CHANGED],
+ quark,
+ quark,
+ *ptr);
+}
+
+static void
update_display_name (const gchar *name, const GValue *value,
gpointer user_data)
{
McAccount *account = MC_ACCOUNT (user_data);
McAccountProps *props = account->priv->props;
- g_free (props->display_name);
- props->display_name = g_value_dup_string (value);
- if (props->emit_changed)
- g_signal_emit (account, _mc_account_signals[STRING_CHANGED],
- MC_QUARK_DISPLAY_NAME,
- MC_QUARK_DISPLAY_NAME,
- props->display_name);
+ update_string (account, &props->display_name, value,
+ MC_QUARK_DISPLAY_NAME, props->emit_changed);
}
static void
@@ -404,13 +412,8 @@ update_icon (const gchar *name, const GValue *value, gpointer user_data)
McAccount *account = MC_ACCOUNT (user_data);
McAccountProps *props = account->priv->props;
- g_free (props->icon);
- props->icon = g_value_dup_string (value);
- if (props->emit_changed)
- g_signal_emit (account, _mc_account_signals[STRING_CHANGED],
- MC_QUARK_ICON,
- MC_QUARK_ICON,
- props->icon);
+ update_string (account, &props->icon, value,
+ MC_QUARK_ICON, props->emit_changed);
}
static void
@@ -447,13 +450,8 @@ update_nickname (const gchar *name, const GValue *value, gpointer user_data)
McAccount *account = MC_ACCOUNT (user_data);
McAccountProps *props = account->priv->props;
- g_free (props->nickname);
- props->nickname = g_value_dup_string (value);
- if (props->emit_changed)
- g_signal_emit (account, _mc_account_signals[STRING_CHANGED],
- MC_QUARK_NICKNAME,
- MC_QUARK_NICKNAME,
- props->nickname);
+ update_string (account, &props->nickname, value,
+ MC_QUARK_NICKNAME, props->emit_changed);
}
static void
@@ -604,13 +602,8 @@ update_normalized_name (const gchar *name, const GValue *value,
McAccount *account = MC_ACCOUNT (user_data);
McAccountProps *props = account->priv->props;
- g_free (props->normalized_name);
- props->normalized_name = g_value_dup_string (value);
- if (props->emit_changed)
- g_signal_emit (account, _mc_account_signals[STRING_CHANGED],
- MC_QUARK_NORMALIZED_NAME,
- MC_QUARK_NORMALIZED_NAME,
- props->normalized_name);
+ update_string (account, &props->normalized_name, value,
+ MC_QUARK_NORMALIZED_NAME, props->emit_changed);
}
static const McIfaceProperty account_properties[] =
--
1.5.6.5
More information about the Telepathy-commits
mailing list