]> git.0d.be Git - empathy.git/commitdiff
Adium themes: implement set_show_avatars()
authorWill Thompson <will.thompson@collabora.co.uk>
Wed, 27 Jun 2012 09:42:56 +0000 (10:42 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 28 Jun 2012 08:56:30 +0000 (10:56 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=627948

libempathy-gtk/empathy-theme-adium.c

index b77d1cf8bc5a779089f2f98c988c2cf47badc43f..485d361f615c2eaf984b58c7624a6aa5a2c3c82c 100644 (file)
@@ -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);