From db4d1607aa0ee6988399f99efc09bed5e7133dc8 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 27 Jun 2012 10:42:56 +0100 Subject: Adium themes: implement set_show_avatars() https://bugzilla.gnome.org/show_bug.cgi?id=627948 --- libempathy-gtk/empathy-theme-adium.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'libempathy-gtk/empathy-theme-adium.c') diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c index b77d1cf8b..485d361f6 100644 --- a/libempathy-gtk/empathy-theme-adium.c +++ b/libempathy-gtk/empathy-theme-adium.c @@ -74,6 +74,7 @@ typedef struct { gboolean allow_scrolling; gchar *variant; gboolean in_construction; + gboolean show_avatars; } EmpathyThemeAdiumPriv; struct _EmpathyAdiumData { @@ -642,9 +643,7 @@ theme_adium_append_html (EmpathyThemeAdium *theme, * will become "Alternating_Messages_-_Blue_Red". */ } else if (theme_adium_match (&cur, "%userIcons%")) { - /* FIXME: mus t be "hideIcons" if use preference is set - * to hide avatars */ - replace = "showIcons"; + replace = priv->show_avatars ? "showIcons" : "hideIcons"; } else if (theme_adium_match (&cur, "%messageClasses%")) { replace = message_classes; } else if (theme_adium_match (&cur, "%status%")) { @@ -1313,6 +1312,16 @@ theme_adium_button_press_event (GtkWidget *widget, GdkEventButton *event) return GTK_WIDGET_CLASS (empathy_theme_adium_parent_class)->button_press_event (widget, event); } +static void +theme_adium_set_show_avatars (EmpathyChatView *view, + gboolean show_avatars) +{ + EmpathyThemeAdium *theme = EMPATHY_THEME_ADIUM (view); + EmpathyThemeAdiumPriv *priv = GET_PRIV (theme); + + priv->show_avatars = show_avatars; +} + static void theme_adium_iface_init (EmpathyChatViewIface *iface) { @@ -1331,6 +1340,7 @@ theme_adium_iface_init (EmpathyChatViewIface *iface) iface->copy_clipboard = theme_adium_copy_clipboard; iface->focus_toggled = theme_adium_focus_toggled; iface->message_acknowledged = theme_adium_message_acknowledged; + iface->set_show_avatars = theme_adium_set_show_avatars; } static void @@ -1614,6 +1624,9 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme) priv->allow_scrolling = TRUE; priv->smiley_manager = empathy_smiley_manager_dup_singleton (); + /* Show avatars by default. */ + priv->show_avatars = TRUE; + g_signal_connect (theme, "load-finished", G_CALLBACK (theme_adium_load_finished_cb), NULL); -- cgit v1.2.3