aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-account-settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-account-settings.c')
-rw-r--r--libempathy/empathy-account-settings.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/libempathy/empathy-account-settings.c b/libempathy/empathy-account-settings.c
index 209f017b9..4bafac2c9 100644
--- a/libempathy/empathy-account-settings.c
+++ b/libempathy/empathy-account-settings.c
@@ -58,6 +58,7 @@ struct _EmpathyAccountSettingsPriv
gchar *cm_name;
gchar *protocol;
gchar *display_name;
+ gchar *icon_name;
gboolean ready;
GHashTable *parameters;
@@ -171,6 +172,8 @@ empathy_account_settings_constructed (GObject *object)
g_strdup (empathy_account_get_protocol (priv->account));
}
+ priv->icon_name = g_strdup_printf ("im-%s", priv->protocol);
+
g_assert (priv->cm_name != NULL && priv->protocol != NULL);
empathy_account_settings_check_readyness (self);
@@ -309,6 +312,7 @@ empathy_account_settings_finalize (GObject *object)
g_free (priv->cm_name);
g_free (priv->protocol);
g_free (priv->display_name);
+ g_free (priv->icon_name);
g_hash_table_destroy (priv->parameters);
@@ -343,6 +347,10 @@ empathy_account_settings_check_readyness (EmpathyAccountSettings *self)
g_free (priv->display_name);
priv->display_name =
g_strdup (empathy_account_get_display_name (priv->account));
+
+ g_free (priv->icon_name);
+ priv->icon_name =
+ (gchar *) empathy_account_get_icon_name (priv->account);
}
priv->tp_protocol = tp_connection_manager_get_protocol (priv->manager,
@@ -446,13 +454,7 @@ empathy_account_settings_get_icon_name (EmpathyAccountSettings *settings)
{
EmpathyAccountSettingsPriv *priv = GET_PRIV (settings);
- if (priv->account != NULL)
- return g_strdup (empathy_account_get_icon_name (priv->account));
-
- if (priv->tp_protocol != NULL)
- return g_strdup_printf ("im-%s", priv->tp_protocol->name);
-
- return NULL;
+ return priv->icon_name;
}
const gchar *