]> git.0d.be Git - empathy.git/commitdiff
Remove legacy themes code
authorDanielle Madeley <danielle.madeley@collabora.co.uk>
Wed, 20 Jun 2012 09:42:22 +0000 (19:42 +1000)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 2 Jul 2012 08:03:22 +0000 (10:03 +0200)
data/org.gnome.Empathy.gschema.xml
libempathy-gtk/Makefile.am
libempathy-gtk/empathy-theme-boxes.c [deleted file]
libempathy-gtk/empathy-theme-boxes.h [deleted file]
libempathy-gtk/empathy-theme-irc.c [deleted file]
libempathy-gtk/empathy-theme-irc.h [deleted file]
libempathy-gtk/empathy-theme-manager.c
libempathy/empathy-gsettings.h
src/empathy-preferences.c

index 9b653ccc603d2a7317436b633cfb9be6d9fc24f5..d9810feb9c4d6af4e9ae189061576173e5c462ac 100644 (file)
@@ -170,11 +170,6 @@ present them to the user immediately.</description>
       <summary>Show contact list in rooms</summary>
       <description>Whether to show the contact list in chat rooms.</description>
     </key>
-    <key name="theme" type="s">
-      <default>'classic'</default>
-      <summary>Chat window theme</summary>
-      <description>The theme that is used to display the conversation in chat windows.</description>
-    </key>
     <key name="theme-variant" type="s">
       <default>''</default>
       <summary>Chat window theme variant</summary>
index ac3d3c1c6bbc1515062b6705b806f70a36138654..e11ee233f3fa6358fc90cd3665811f52fc830b4f 100644 (file)
@@ -88,8 +88,6 @@ libempathy_gtk_handwritten_source =                   \
        empathy-spell.c                         \
        empathy-status-preset-dialog.c          \
        empathy-string-parser.c                 \
-       empathy-theme-boxes.c                   \
-       empathy-theme-irc.c                     \
        empathy-theme-manager.c                 \
        empathy-tls-dialog.c                    \
        empathy-ui-utils.c                      \
@@ -159,8 +157,6 @@ libempathy_gtk_headers =                    \
        empathy-spell.h                         \
        empathy-status-preset-dialog.h          \
        empathy-string-parser.h                 \
-       empathy-theme-boxes.h                   \
-       empathy-theme-irc.h                     \
        empathy-theme-manager.h                 \
        empathy-tls-dialog.h                    \
        empathy-ui-utils.h                      \
diff --git a/libempathy-gtk/empathy-theme-boxes.c b/libempathy-gtk/empathy-theme-boxes.c
deleted file mode 100644 (file)
index a678c3e..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Imendio AB
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA  02110-1301  USA
- *
- * Authors: Xavier Claessens <xclaesse@gmail.com>
- */
-
-#include <config.h>
-
-#include <string.h>
-
-#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-
-#include <telepathy-glib/util.h>
-
-#include <libempathy/empathy-utils.h>
-#include "empathy-theme-boxes.h"
-#include "empathy-ui-utils.h"
-
-#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
-#include <libempathy/empathy-debug.h>
-
-#define MARGIN 4
-#define HEADER_PADDING 2
-
-/* "Join" consecutive messages with timestamps within five minutes */
-#define MESSAGE_JOIN_PERIOD 5*60
-
-#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeBoxes)
-typedef struct {
-       gboolean show_avatars;
-} EmpathyThemeBoxesPriv;
-
-static void chat_text_view_iface_init (EmpathyChatViewIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (EmpathyThemeBoxes, empathy_theme_boxes,
-                        EMPATHY_TYPE_CHAT_TEXT_VIEW,
-                        G_IMPLEMENT_INTERFACE (EMPATHY_TYPE_CHAT_VIEW,
-                                               chat_text_view_iface_init));
-
-static void
-theme_boxes_create_tags (EmpathyThemeBoxes *theme)
-{
-       GtkTextBuffer *buffer;
-
-       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (theme));
-
-       gtk_text_buffer_create_tag (buffer, EMPATHY_THEME_BOXES_TAG_HEADER,
-                                   "pixels-above-lines", HEADER_PADDING,
-                                   "pixels-below-lines", HEADER_PADDING,
-                                   NULL);
-
-       gtk_text_buffer_create_tag (buffer, EMPATHY_THEME_BOXES_TAG_HEADER_LINE, NULL);
-}
-
-/* Pads a pixbuf to the specified size, by centering it in a larger transparent
- * pixbuf. Returns a new ref.
- */
-static GdkPixbuf *
-theme_boxes_pad_to_size (GdkPixbuf *pixbuf,
-                        gint       width,
-                        gint       height,
-                        gint       extra_padding_right)
-{
-       gint       src_width, src_height;
-       GdkPixbuf *padded;
-       gint       x_offset, y_offset;
-
-       src_width = gdk_pixbuf_get_width (pixbuf);
-       src_height = gdk_pixbuf_get_height (pixbuf);
-
-       x_offset = (width - src_width) / 2;
-       y_offset = (height - src_height) / 2;
-
-       padded = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (pixbuf),
-                                TRUE, /* alpha */
-                                gdk_pixbuf_get_bits_per_sample (pixbuf),
-                                width + extra_padding_right,
-                                height);
-
-       gdk_pixbuf_fill (padded, 0);
-
-       gdk_pixbuf_copy_area (pixbuf,
-                             0, /* source coords */
-                             0,
-                             src_width,
-                             src_height,
-                             padded,
-                             x_offset, /* dest coords */
-                             y_offset);
-
-       return padded;
-}
-
-typedef struct {
-       GdkPixbuf *pixbuf;
-       gchar     *filename;
-} AvatarData;
-
-static void
-theme_boxes_avatar_cache_data_free (gpointer ptr)
-{
-       AvatarData *data = ptr;
-
-       g_object_unref (data->pixbuf);
-       g_free (data->filename);
-       g_slice_free (AvatarData, data);
-}
-
-static GdkPixbuf *
-theme_boxes_get_avatar_pixbuf_with_cache (EmpathyContact *contact)
-{
-       AvatarData        *data;
-       EmpathyAvatar     *avatar;
-       GdkPixbuf         *tmp_pixbuf;
-       GdkPixbuf         *pixbuf = NULL;
-
-       /* Check if avatar is in cache and if it's up to date */
-       avatar = empathy_contact_get_avatar (contact);
-       data = g_object_get_data (G_OBJECT (contact), "chat-view-avatar-cache");
-       if (data) {
-               if (avatar && !tp_strdiff (avatar->filename, data->filename)) {
-                       /* We have the avatar in cache */
-                       return data->pixbuf;
-               }
-       }
-
-       /* Avatar not in cache, create pixbuf */
-       tmp_pixbuf = empathy_pixbuf_avatar_from_contact_scaled (contact, 32, 32);
-       if (tmp_pixbuf) {
-               pixbuf = theme_boxes_pad_to_size (tmp_pixbuf, 32, 32, 6);
-               g_object_unref (tmp_pixbuf);
-       }
-       if (!pixbuf) {
-               return NULL;
-       }
-
-       /* Insert new pixbuf in cache. We store the filename as it's unique
-        * for each version of an avatar, so we can use it to perform change
-        * detection (as above). */
-       data = g_slice_new0 (AvatarData);
-       data->filename = g_strdup (avatar->filename);
-       data->pixbuf = pixbuf;
-
-       g_object_set_data_full (G_OBJECT (contact), "chat-view-avatar-cache",
-                               data, theme_boxes_avatar_cache_data_free);
-
-       return data->pixbuf;
-}
-
-static void
-table_size_allocate_cb (GtkWidget     *view,
-                       GtkAllocation *allocation,
-                       GtkWidget     *box)
-{
-       gint width, height;
-
-        gtk_widget_get_size_request (box, NULL, &height);
-
-       width = allocation->width;
-
-       width -= \
-               gtk_text_view_get_right_margin (GTK_TEXT_VIEW (view)) - \
-               gtk_text_view_get_left_margin (GTK_TEXT_VIEW (view));
-       width -= 2 * MARGIN;
-       width -= 2 * HEADER_PADDING;
-
-        gtk_widget_set_size_request (box, width, height);
-}
-
-static void
-theme_boxes_maybe_append_header (EmpathyThemeBoxes *theme,
-                                EmpathyMessage    *msg)
-{
-       EmpathyChatTextView  *view = EMPATHY_CHAT_TEXT_VIEW (theme);
-       EmpathyThemeBoxesPriv*priv = GET_PRIV (theme);
-       EmpathyContact       *contact;
-       EmpathyContact       *last_contact;
-       GdkPixbuf            *avatar = NULL;
-       GtkTextBuffer        *buffer;
-       const gchar          *name;
-       GtkTextIter           iter;
-       GtkWidget            *label1, *label2;
-       GtkTextChildAnchor   *anchor;
-       GtkWidget            *box;
-       gchar                *str;
-       gint64                time_;
-       gchar                *tmp;
-       GtkTextIter           start;
-       gboolean              color_set;
-       GtkTextTagTable      *table;
-       GtkTextTag           *tag;
-       GString              *str_obj;
-       gboolean              consecutive;
-
-       contact = empathy_message_get_sender (msg);
-       name = empathy_contact_get_logged_alias (contact);
-       last_contact = empathy_chat_text_view_get_last_contact (view);
-       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (theme));
-       time_ = empathy_message_get_timestamp (msg);
-       consecutive = (time_ - empathy_chat_text_view_get_last_timestamp (view)
-               < MESSAGE_JOIN_PERIOD);
-
-       DEBUG ("Maybe add fancy header");
-
-       /* Only insert a header if
-        *   - the previously inserted block is not the same as this one.
-        *   - the delay between two messages is lower then MESSAGE_JOIN_PERIOD
-        */
-       if (empathy_contact_equal (last_contact, contact) && consecutive) {
-               return;
-       }
-
-       empathy_chat_text_view_append_spacing (view);
-
-       /* Insert header line */
-       gtk_text_buffer_get_end_iter (buffer, &iter);
-       gtk_text_buffer_insert_with_tags_by_name (buffer,
-                                                 &iter,
-                                                 "\n",
-                                                 -1,
-                                                 EMPATHY_THEME_BOXES_TAG_HEADER_LINE,
-                                                 NULL);
-
-       gtk_text_buffer_get_end_iter (buffer, &iter);
-       anchor = gtk_text_buffer_create_child_anchor (buffer, &iter);
-
-       /* Create a hbox for the header and resize it when the view allocation
-        * changes */
-       box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-       g_signal_connect_object (view, "size-allocate",
-                                G_CALLBACK (table_size_allocate_cb),
-                                box, 0);
-
-       /* Add avatar to the box if needed */
-       if (priv->show_avatars) {
-               avatar = theme_boxes_get_avatar_pixbuf_with_cache (contact);
-               if (avatar) {
-                       GtkWidget *image;
-
-                       image = gtk_image_new_from_pixbuf (avatar);
-
-                       gtk_box_pack_start (GTK_BOX (box), image,
-                                           FALSE, TRUE, 2);
-               }
-       }
-
-       /* Add contact alias */
-       str = g_markup_printf_escaped ("<b>%s</b>", name);
-       label1 = g_object_new (GTK_TYPE_LABEL,
-                              "label", str,
-                              "use-markup", TRUE,
-                              "xalign", 0.0,
-                              NULL);
-       g_free (str);
-
-       /* Add the message receive time */
-       tmp = empathy_time_to_string_local (time_,
-                                          EMPATHY_TIME_FORMAT_DISPLAY_SHORT);
-       str = g_strdup_printf ("<i>%s</i>", tmp);
-       label2 = g_object_new (GTK_TYPE_LABEL,
-                              "label", str,
-                              "use-markup", TRUE,
-                              "xalign", 1.0,
-                              NULL);
-
-       str_obj = g_string_new ("\n- ");
-       g_string_append (str_obj, name);
-       g_string_append (str_obj, ", ");
-       g_string_append (str_obj, tmp);
-       g_string_append (str_obj, " -");
-       g_free (tmp);
-       g_free (str);
-
-       /* Set foreground color of labels to the same color than the header tag. */
-       table = gtk_text_buffer_get_tag_table (buffer);
-       tag = gtk_text_tag_table_lookup (table, EMPATHY_THEME_BOXES_TAG_HEADER);
-       g_object_get (tag, "foreground-set", &color_set, NULL);
-       if (color_set) {
-               GdkColor *color;
-
-               g_object_get (tag, "foreground-gdk", &color, NULL);
-               gtk_widget_modify_fg (label1, GTK_STATE_NORMAL, color);
-               gtk_widget_modify_fg (label2, GTK_STATE_NORMAL, color);
-               gdk_color_free (color);
-       }
-
-       /* Pack labels into the box */
-       gtk_misc_set_alignment (GTK_MISC (label1), 0.0, 0.5);
-       gtk_misc_set_alignment (GTK_MISC (label2), 1.0, 0.5);
-       gtk_box_pack_start (GTK_BOX (box), label1, TRUE, TRUE, 0);
-       gtk_box_pack_start (GTK_BOX (box), label2, TRUE, TRUE, 0);
-
-       /* Add the header box to the text view */
-       g_object_set_data_full (G_OBJECT (box),
-                               "str_obj",
-                               g_string_free (str_obj, FALSE),
-                               g_free);
-       gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (view),
-                                          box,
-                                          anchor);
-       gtk_widget_show_all (box);
-
-       /* Insert a header line */
-       gtk_text_buffer_get_end_iter (buffer, &iter);
-       start = iter;
-       gtk_text_iter_backward_char (&start);
-       gtk_text_buffer_apply_tag_by_name (buffer,
-                                          EMPATHY_THEME_BOXES_TAG_HEADER,
-                                          &start, &iter);
-       gtk_text_buffer_insert_with_tags_by_name (buffer,
-                                                 &iter,
-                                                 "\n",
-                                                 -1,
-                                                 EMPATHY_THEME_BOXES_TAG_HEADER,
-                                                 NULL);
-       gtk_text_buffer_get_end_iter (buffer, &iter);
-       gtk_text_buffer_insert_with_tags_by_name (buffer,
-                                                 &iter,
-                                                 "\n",
-                                                 -1,
-                                                 EMPATHY_THEME_BOXES_TAG_HEADER_LINE,
-                                                 NULL);
-}
-
-static void
-theme_boxes_append_message (EmpathyChatTextView *view,
-                           EmpathyMessage      *message,
-                           gboolean             should_highlight)
-{
-       EmpathyContact *sender;
-
-       theme_boxes_maybe_append_header (EMPATHY_THEME_BOXES (view), message);
-
-       sender = empathy_message_get_sender (message);
-       if (empathy_message_get_tptype (message) ==
-           TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) {
-               gchar *body;
-
-               body = g_strdup_printf (" * %s %s",
-                                       empathy_contact_get_logged_alias (sender),
-                                       empathy_message_get_body (message));
-               empathy_chat_text_view_append_body (EMPATHY_CHAT_TEXT_VIEW (view),
-                                                   body,
-                                                   EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION);
-       } else {
-               empathy_chat_text_view_append_body (EMPATHY_CHAT_TEXT_VIEW (view),
-                                                   empathy_message_get_body (message),
-                                                   EMPATHY_CHAT_TEXT_VIEW_TAG_BODY);
-       }
-}
-
-static void
-theme_boxes_set_show_avatars (EmpathyChatView *view,
-                             gboolean show_avatars)
-{
-       EmpathyThemeBoxes *self = EMPATHY_THEME_BOXES (view);
-       EmpathyThemeBoxesPriv *priv = GET_PRIV (self);
-
-       priv->show_avatars = show_avatars;
-}
-
-static void
-empathy_theme_boxes_class_init (EmpathyThemeBoxesClass *class)
-{
-       GObjectClass             *object_class;
-       EmpathyChatTextViewClass *chat_text_view_class;
-
-       object_class = G_OBJECT_CLASS (class);
-       chat_text_view_class  = EMPATHY_CHAT_TEXT_VIEW_CLASS (class);
-
-       chat_text_view_class->append_message = theme_boxes_append_message;
-
-       g_type_class_add_private (object_class, sizeof (EmpathyThemeBoxesPriv));
-}
-
-static void
-empathy_theme_boxes_init (EmpathyThemeBoxes *theme)
-{
-       EmpathyThemeBoxesPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (theme,
-               EMPATHY_TYPE_THEME_BOXES, EmpathyThemeBoxesPriv);
-
-       theme->priv = priv;
-
-       /* Show avatars by default. */
-       priv->show_avatars = TRUE;
-
-       theme_boxes_create_tags (theme);
-
-       /* Define margin */
-       g_object_set (theme,
-                     "left-margin", MARGIN,
-                     "right-margin", MARGIN,
-                     NULL);
-}
-
-EmpathyThemeBoxes *
-empathy_theme_boxes_new (void)
-{
-       return g_object_new (EMPATHY_TYPE_THEME_BOXES,
-                            "only-if-date", TRUE,
-                            NULL);
-}
-
-static void
-chat_text_view_iface_init (EmpathyChatViewIface *iface)
-{
-       iface->set_show_avatars = theme_boxes_set_show_avatars;
-}
diff --git a/libempathy-gtk/empathy-theme-boxes.h b/libempathy-gtk/empathy-theme-boxes.h
deleted file mode 100644 (file)
index 53dd350..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Imendio AB
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA  02110-1301  USA
- *
- * Authors: Xavier Claessens <xclaesse@gmail.com>
- */
-
-#ifndef __EMPATHY_THEME_BOXES_H__
-#define __EMPATHY_THEME_BOXES_H__
-
-#include <glib-object.h>
-
-#include "empathy-chat-text-view.h"
-
-G_BEGIN_DECLS
-
-#define EMPATHY_TYPE_THEME_BOXES            (empathy_theme_boxes_get_type ())
-#define EMPATHY_THEME_BOXES(o)              (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_THEME_BOXES, EmpathyThemeBoxes))
-#define EMPATHY_THEME_BOXES_CLASS(k)        (G_TYPE_CHECK_CLASS_CAST ((k), EMPATHY_TYPE_THEME_BOXES, EmpathyThemeBoxesClass))
-#define EMPATHY_IS_THEME_BOXES(o)           (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_THEME_BOXES))
-#define EMPATHY_IS_THEME_BOXES_CLASS(k)     (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_THEME_BOXES))
-#define EMPATHY_THEME_BOXES_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_THEME_BOXES, EmpathyThemeBoxesClass))
-
-typedef struct _EmpathyThemeBoxes      EmpathyThemeBoxes;
-typedef struct _EmpathyThemeBoxesClass EmpathyThemeBoxesClass;
-
-struct _EmpathyThemeBoxes {
-       EmpathyChatTextView parent;
-       gpointer priv;
-};
-
-struct _EmpathyThemeBoxesClass {
-       EmpathyChatTextViewClass parent_class;
-};
-
-#define EMPATHY_THEME_BOXES_TAG_HEADER "fancy-header"
-#define EMPATHY_THEME_BOXES_TAG_HEADER_LINE "fancy-header-line"
-
-GType              empathy_theme_boxes_get_type (void) G_GNUC_CONST;
-EmpathyThemeBoxes *empathy_theme_boxes_new      (void);
-
-G_END_DECLS
-
-#endif /* __EMPATHY_THEME_BOXES_H__ */
-
diff --git a/libempathy-gtk/empathy-theme-irc.c b/libempathy-gtk/empathy-theme-irc.c
deleted file mode 100644 (file)
index ed8e3b3..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Imendio AB
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA  02110-1301  USA
- *
- * Authors: Xavier Claessens <xclaesse@gmail.com>
- */
-
-#include "config.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <libempathy/empathy-utils.h>
-#include "empathy-theme-irc.h"
-#include "empathy-ui-utils.h"
-
-#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeIrc)
-typedef struct {
-       gpointer dummy;
-} EmpathyThemeIrcPriv;
-
-G_DEFINE_TYPE (EmpathyThemeIrc, empathy_theme_irc, EMPATHY_TYPE_CHAT_TEXT_VIEW);
-
-static void
-theme_irc_create_tags (EmpathyThemeIrc *theme)
-{
-       GtkTextBuffer *buffer;
-
-       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (theme));
-
-       gtk_text_buffer_create_tag (buffer, EMPATHY_THEME_IRC_TAG_NICK_SELF, NULL);
-       gtk_text_buffer_create_tag (buffer, EMPATHY_THEME_IRC_TAG_NICK_OTHER, NULL);
-       gtk_text_buffer_create_tag (buffer, EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT, NULL);
-}
-
-static void
-theme_irc_append_message (EmpathyChatTextView *view,
-                         EmpathyMessage      *message,
-                         gboolean             should_highlight)
-{
-       GtkTextBuffer *buffer;
-       const gchar   *name;
-       const gchar   *nick_tag;
-       GtkTextIter    iter;
-       gchar         *tmp;
-       EmpathyContact *contact;
-
-       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
-
-       contact = empathy_message_get_sender (message);
-       name = empathy_contact_get_logged_alias (contact);
-
-       if (empathy_message_get_tptype (message) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) {
-               tmp = g_strdup_printf (" * %s %s",
-                                      empathy_contact_get_logged_alias (contact),
-                                      empathy_message_get_body (message));
-               empathy_chat_text_view_append_body (view, tmp,
-                                                   EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION);
-               g_free (tmp);
-               return;
-       }
-
-       if (empathy_contact_is_user (contact)) {
-               nick_tag = EMPATHY_THEME_IRC_TAG_NICK_SELF;
-       } else {
-               if (should_highlight) {
-                       nick_tag = EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT;
-               } else {
-                       nick_tag = EMPATHY_THEME_IRC_TAG_NICK_OTHER;
-               }
-       }
-
-       gtk_text_buffer_get_end_iter (buffer, &iter);
-
-       /* The nickname. */
-       tmp = g_strdup_printf ("%s: ", name);
-       gtk_text_buffer_insert_with_tags_by_name (buffer,
-                                                 &iter,
-                                                 tmp,
-                                                 -1,
-                                                 "cut",
-                                                 nick_tag,
-                                                 NULL);
-       g_free (tmp);
-
-       /* The text body. */
-       empathy_chat_text_view_append_body (view,
-                                           empathy_message_get_body (message),
-                                           EMPATHY_CHAT_TEXT_VIEW_TAG_BODY);
-}
-
-static void
-empathy_theme_irc_class_init (EmpathyThemeIrcClass *class)
-{
-       GObjectClass             *object_class;
-       EmpathyChatTextViewClass *chat_text_view_class;
-
-       object_class = G_OBJECT_CLASS (class);
-       chat_text_view_class = EMPATHY_CHAT_TEXT_VIEW_CLASS (class);
-
-       chat_text_view_class->append_message = theme_irc_append_message;
-
-       g_type_class_add_private (object_class, sizeof (EmpathyThemeIrcPriv));
-}
-
-static void
-empathy_theme_irc_init (EmpathyThemeIrc *theme)
-{
-       EmpathyThemeIrcPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (theme,
-               EMPATHY_TYPE_THEME_IRC, EmpathyThemeIrcPriv);
-
-       theme->priv = priv;
-
-       theme_irc_create_tags (theme);
-
-       /* Define margin */
-       g_object_set (theme,
-                     "left-margin", 3,
-                     "right-margin", 3,
-                     NULL);
-}
-
-EmpathyThemeIrc *
-empathy_theme_irc_new (void)
-{
-       return g_object_new (EMPATHY_TYPE_THEME_IRC, NULL);
-}
-
diff --git a/libempathy-gtk/empathy-theme-irc.h b/libempathy-gtk/empathy-theme-irc.h
deleted file mode 100644 (file)
index 30bee62..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Imendio AB
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA  02110-1301  USA
- *
- * Authors: Xavier Claessens <xclaesse@gmail.com>
- */
-
-#ifndef __EMPATHY_THEME_IRC_H__
-#define __EMPATHY_THEME_IRC_H__
-
-#include <glib-object.h>
-
-#include "empathy-chat-text-view.h"
-
-G_BEGIN_DECLS
-
-#define EMPATHY_TYPE_THEME_IRC            (empathy_theme_irc_get_type ())
-#define EMPATHY_THEME_IRC(o)              (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_THEME_IRC, EmpathyThemeIrc))
-#define EMPATHY_THEME_IRC_CLASS(k)        (G_TYPE_CHECK_CLASS_CAST ((k), EMPATHY_TYPE_THEME_IRC, EmpathyThemeIrcClass))
-#define EMPATHY_IS_THEME_IRC(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_THEME_IRC))
-#define EMPATHY_IS_THEME_IRC_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_THEME_IRC))
-#define EMPATHY_THEME_IRC_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_THEME_IRC, EmpathyThemeIrcClass))
-
-typedef struct _EmpathyThemeIrc      EmpathyThemeIrc;
-typedef struct _EmpathyThemeIrcClass EmpathyThemeIrcClass;
-
-struct _EmpathyThemeIrc {
-       EmpathyChatTextView parent;
-       gpointer priv;
-};
-
-struct _EmpathyThemeIrcClass {
-       EmpathyChatTextViewClass parent_class;
-};
-
-#define EMPATHY_THEME_IRC_TAG_NICK_SELF "irc-nick-self"
-#define EMPATHY_THEME_IRC_TAG_NICK_OTHER "irc-nick-other"
-#define EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT "irc-nick-highlight"
-
-GType empathy_theme_irc_get_type (void) G_GNUC_CONST;
-EmpathyThemeIrc *empathy_theme_irc_new (void);
-
-G_END_DECLS
-
-#endif /* __EMPATHY_THEME_IRC_H__ */
-
index 1233509ecc6f1753b43508a139ab559acc190110..a04a43a05d330eec875af0f85c845ca229395535 100644 (file)
@@ -37,8 +37,6 @@
 #include "empathy-theme-manager.h"
 #include "empathy-chat-view.h"
 #include "empathy-chat-text-view.h"
-#include "empathy-theme-boxes.h"
-#include "empathy-theme-irc.h"
 #include "empathy-theme-adium.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
@@ -47,7 +45,6 @@
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeManager)
 typedef struct {
        GSettings   *gsettings_chat;
-       gchar       *name;
        GtkSettings *settings;
        GList       *boxes_views;
        guint        emit_changed_idle;
@@ -66,14 +63,6 @@ enum {
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-static const gchar *themes[] = {
-       "classic", N_("Classic"),
-       "simple", N_("Simple"),
-       "clean", N_("Clean"),
-       "blue", N_("Blue"),
-       NULL
-};
-
 G_DEFINE_TYPE (EmpathyThemeManager, empathy_theme_manager, G_TYPE_OBJECT);
 
 static gboolean
@@ -85,8 +74,8 @@ theme_manager_emit_changed_idle_cb (gpointer manager)
        if (priv->adium_data) {
                adium_path = empathy_adium_data_get_path (priv->adium_data);
        }
-       DEBUG ("Emit theme-changed with: name='%s' adium_path='%s' "
-              "adium_variant='%s'", priv->name, adium_path,
+       DEBUG ("Emit theme-changed with: adium_path='%s' "
+              "adium_variant='%s'", adium_path,
               priv->adium_variant);
 
        g_signal_emit (manager, signals[THEME_CHANGED], 0, NULL);
@@ -127,6 +116,7 @@ clear_list_of_views (GList **views)
        }
 }
 
+#if 0
 static void
 theme_manager_gdk_color_to_hex (GdkColor *gdk_color, gchar *str_color)
 {
@@ -136,243 +126,7 @@ theme_manager_gdk_color_to_hex (GdkColor *gdk_color, gchar *str_color)
                    gdk_color->green >> 8,
                    gdk_color->blue >> 8);
 }
-
-static EmpathyThemeIrc *
-theme_manager_create_irc_view (EmpathyThemeManager *manager)
-{
-       EmpathyChatTextView *view;
-       EmpathyThemeIrc     *theme;
-
-       theme = empathy_theme_irc_new ();
-       view = EMPATHY_CHAT_TEXT_VIEW (theme);
-
-       /* Define base tags */
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_SPACING,
-                                       "size", 2000,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_TIME,
-                                       "foreground", "darkgrey",
-                                       "justification", GTK_JUSTIFY_CENTER,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION,
-                                       "foreground", "brown4",
-                                       "style", PANGO_STYLE_ITALIC,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_BODY,
-                                       "foreground-set", FALSE,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_EVENT,
-                                       "foreground", "PeachPuff4",
-                                       "justification", GTK_JUSTIFY_LEFT,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK,
-                                       "foreground", "steelblue",
-                                       "underline", PANGO_UNDERLINE_SINGLE,
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
-                                       "background", "yellow",
-                                       NULL);
-
-       /* Define IRC tags */
-       empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_SELF,
-                                       "foreground", "sea green",
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_OTHER,
-                                       "foreground", "skyblue4",
-                                       NULL);
-       empathy_chat_text_view_tag_set (view, EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT,
-                                       "foreground", "indian red",
-                                       "weight", PANGO_WEIGHT_BOLD,
-                                       NULL);
-
-       return theme;
-}
-
-static void on_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, EmpathyThemeManager *self);
-
-static EmpathyThemeBoxes *
-theme_manager_create_boxes_view (EmpathyThemeManager *manager)
-{
-       EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-       EmpathyThemeBoxes       *theme;
-
-       theme = empathy_theme_boxes_new ();
-       priv->boxes_views = g_list_prepend (priv->boxes_views, theme);
-       g_object_weak_ref (G_OBJECT (theme),
-                          theme_manager_view_weak_notify_cb,
-                          &priv->boxes_views);
-
-       g_signal_connect (G_OBJECT (theme), "style-set",
-                         G_CALLBACK (on_style_set_cb), manager);
-
-       return theme;
-}
-
-static void
-theme_manager_update_boxes_tags (EmpathyThemeBoxes *theme,
-                                const gchar       *header_foreground,
-                                const gchar       *header_background,
-                                const gchar       *header_line_background,
-                                const gchar       *action_foreground,
-                                const gchar       *time_foreground,
-                                const gchar       *event_foreground,
-                                const gchar       *link_foreground,
-                                const gchar       *text_foreground,
-                                const gchar       *text_background,
-                                const gchar       *highlight_foreground)
-
-{
-       EmpathyChatTextView *view = EMPATHY_CHAT_TEXT_VIEW (theme);
-       GtkTextTag          *tag;
-
-       DEBUG ("Update view with new colors:\n"
-               "header_foreground = %s\n"
-               "header_background = %s\n"
-               "header_line_background = %s\n"
-               "action_foreground = %s\n"
-               "time_foreground = %s\n"
-               "event_foreground = %s\n"
-               "link_foreground = %s\n"
-               "text_foreground = %s\n"
-               "text_background = %s\n"
-               "highlight_foreground = %s\n",
-               header_foreground, header_background, header_line_background,
-               action_foreground, time_foreground, event_foreground,
-               link_foreground, text_foreground, text_background,
-               highlight_foreground);
-
-
-       /* FIXME: GtkTextTag don't support to set color properties to NULL.
-        * See bug #542523 */
-
-       #define TAG_SET(prop, prop_set, value) \
-               if (value != NULL) { \
-                       g_object_set (tag, prop, value, NULL); \
-               } else { \
-                       g_object_set (tag, prop_set, FALSE, NULL); \
-               }
-
-       /* Define base tags */
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_HIGHLIGHT,
-                                             "weight", PANGO_WEIGHT_BOLD,
-                                             "pixels-above-lines", 4,
-                                             NULL);
-       TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
-       TAG_SET ("foreground", "foreground-set", highlight_foreground);
-
-       empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_SPACING,
-                                       "size", 3000,
-                                       "pixels-above-lines", 8,
-                                       NULL);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_TIME,
-                                             "justification", GTK_JUSTIFY_CENTER,
-                                             NULL);
-       TAG_SET ("foreground", "foreground-set", time_foreground);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION,
-                                             "style", PANGO_STYLE_ITALIC,
-                                             "pixels-above-lines", 4,
-                                             NULL);
-       TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
-       TAG_SET ("foreground", "foreground-set", action_foreground);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_BODY,
-                                             "pixels-above-lines", 4,
-                                             NULL);
-       TAG_SET ("paragraph-background", "paragraph-background-set", text_background);
-       TAG_SET ("foreground", "foreground-set", text_foreground);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_EVENT,
-                                             "justification", GTK_JUSTIFY_LEFT,
-                                             NULL);
-       TAG_SET ("foreground", "foreground-set", event_foreground);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK,
-                                             "underline", PANGO_UNDERLINE_SINGLE,
-                                             NULL);
-       TAG_SET ("foreground", "foreground-set", link_foreground);
-
-       /* Define BOXES tags */
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_THEME_BOXES_TAG_HEADER,
-                                             "weight", PANGO_WEIGHT_BOLD,
-                                             NULL);
-       TAG_SET ("foreground", "foreground-set", header_foreground);
-       TAG_SET ("paragraph-background", "paragraph-background-set", header_background);
-       tag = empathy_chat_text_view_tag_set (view, EMPATHY_THEME_BOXES_TAG_HEADER_LINE,
-                                             "size", 1,
-                                             NULL);
-       TAG_SET ("paragraph-background", "paragraph-background-set", header_line_background);
-
-       #undef TAG_SET
-}
-
-static void
-on_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, EmpathyThemeManager *self)
-{
-       EmpathyThemeManagerPriv *priv = GET_PRIV (self);
-       GtkStyle *style;
-       gchar     color1[10];
-       gchar     color2[10];
-       gchar     color3[10];
-       gchar     color4[10];
-
-       /* The simple theme depends on the current GTK+ theme so it has to be
-        * updated if the theme changes. */
-       if (tp_strdiff (priv->name, "simple"))
-               return;
-
-       style = gtk_widget_get_style (GTK_WIDGET (widget));
-
-       theme_manager_gdk_color_to_hex (&style->base[GTK_STATE_SELECTED], color1);
-       theme_manager_gdk_color_to_hex (&style->bg[GTK_STATE_SELECTED], color2);
-       theme_manager_gdk_color_to_hex (&style->dark[GTK_STATE_SELECTED], color3);
-       theme_manager_gdk_color_to_hex (&style->fg[GTK_STATE_SELECTED], color4);
-
-       theme_manager_update_boxes_tags (EMPATHY_THEME_BOXES (widget),
-                                        color4,     /* header_foreground */
-                                        color2,     /* header_background */
-                                        color3,     /* header_line_background */
-                                        color1,     /* action_foreground */
-                                        "darkgrey", /* time_foreground */
-                                        "darkgrey", /* event_foreground */
-                                        color1,     /* link_foreground */
-                                        NULL,       /* text_foreground */
-                                        NULL,       /* text_background */
-                                        NULL);      /* highlight_foreground */
-}
-
-static void
-theme_manager_update_boxes_theme (EmpathyThemeManager *manager,
-                                 EmpathyThemeBoxes   *theme)
-{
-       EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-
-       if (strcmp (priv->name, "simple") == 0) {
-               on_style_set_cb (GTK_WIDGET (theme), NULL, manager);
-       }
-       else if (strcmp (priv->name, "clean") == 0) {
-               theme_manager_update_boxes_tags (theme,
-                                                "black",    /* header_foreground */
-                                                "#efefdf",  /* header_background */
-                                                "#e3e3d3",  /* header_line_background */
-                                                "brown4",   /* action_foreground */
-                                                "darkgrey", /* time_foreground */
-                                                "darkgrey", /* event_foreground */
-                                                "#49789e",  /* link_foreground */
-                                                NULL,       /* text_foreground */
-                                                NULL,       /* text_background */
-                                                NULL);      /* highlight_foreground */
-       }
-       else if (strcmp (priv->name, "blue") == 0) {
-               theme_manager_update_boxes_tags (theme,
-                                                "black",    /* header_foreground */
-                                                "#88a2b4",  /* header_background */
-                                                "#7f96a4",  /* header_line_background */
-                                                "brown4",   /* action_foreground */
-                                                "darkgrey", /* time_foreground */
-                                                "#7f96a4",  /* event_foreground */
-                                                "#49789e",  /* link_foreground */
-                                                "black",    /* text_foreground */
-                                                "#adbdc8",  /* text_background */
-                                                "black");   /* highlight_foreground */
-       }
-}
+#endif
 
 static EmpathyThemeAdium *
 theme_manager_create_adium_view (EmpathyThemeManager *manager)
@@ -458,114 +212,14 @@ EmpathyChatView *
 empathy_theme_manager_create_view (EmpathyThemeManager *manager)
 {
        EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-       EmpathyThemeBoxes       *theme;
 
        g_return_val_if_fail (EMPATHY_IS_THEME_MANAGER (manager), NULL);
 
-       DEBUG ("Using theme %s", priv->name);
-
-       if (strcmp (priv->name, "adium") == 0 && priv->adium_data != NULL)  {
+       if (priv->adium_data != NULL)  {
                return EMPATHY_CHAT_VIEW (theme_manager_create_adium_view (manager));
        }
 
-       if (strcmp (priv->name, "classic") == 0)  {
-               return EMPATHY_CHAT_VIEW (theme_manager_create_irc_view (manager));
-       }
-
-       theme = theme_manager_create_boxes_view (manager);
-       theme_manager_update_boxes_theme (manager, theme);
-
-       return EMPATHY_CHAT_VIEW (theme);
-}
-
-static gboolean
-theme_manager_ensure_theme_exists (const gchar *name)
-{
-       gint i;
-
-       if (EMP_STR_EMPTY (name)) {
-               return FALSE;
-       }
-
-       if (strcmp ("adium", name) == 0) {
-               return TRUE;
-       }
-
-       for (i = 0; themes[i]; i += 2) {
-               if (strcmp (themes[i], name) == 0) {
-                       return TRUE;
-               }
-       }
-
-       return FALSE;
-}
-
-typedef enum {
-       THEME_TYPE_IRC,
-       THEME_TYPE_BOXED,
-       THEME_TYPE_ADIUM,
-} ThemeType;
-
-static ThemeType
-theme_type (const gchar *name)
-{
-       if (!tp_strdiff (name, "classic")) {
-               return THEME_TYPE_IRC;
-       } else if (!tp_strdiff (name, "adium")) {
-               return THEME_TYPE_ADIUM;
-       } else {
-               return THEME_TYPE_BOXED;
-       }
-}
-
-static void
-theme_manager_notify_name_cb (GSettings   *gsettings_chat,
-                             const gchar *key,
-                             gpointer     user_data)
-{
-       EmpathyThemeManager     *manager = EMPATHY_THEME_MANAGER (user_data);
-       EmpathyThemeManagerPriv *priv = GET_PRIV (manager);
-       gchar                   *name;
-       ThemeType                old_type;
-       ThemeType                new_type;
-
-       name = g_settings_get_string (gsettings_chat, key);
-
-       /* Fallback to classic theme if current setting does not exist */
-       if (!theme_manager_ensure_theme_exists (name)) {
-               g_free (name);
-               name = g_strdup ("classic");
-       }
-
-       /* If theme did not change, nothing to do */
-       if (!tp_strdiff (priv->name, name)) {
-               g_free (name);
-               return;
-       }
-
-       old_type = theme_type (priv->name);
-       g_free (priv->name);
-       priv->name = name;
-       new_type = theme_type (priv->name);
-
-       if (new_type == THEME_TYPE_BOXED) {
-               GList *l;
-
-               /* The theme changes to a boxed one, we can update boxed views */
-               for (l = priv->boxes_views; l; l = l->next) {
-                       theme_manager_update_boxes_theme (manager,
-                                                         EMPATHY_THEME_BOXES (l->data));
-               }
-       }
-
-       /* Do not emit theme-changed if theme type didn't change. If theme
-        * changed from a boxed to another boxed, all view are updated in place.
-        * If theme changed from an adium to another adium, the signal will be
-        * emited from theme_manager_notify_adium_path_cb ()
-        */
-       if (old_type != new_type) {
-               theme_manager_emit_changed (manager);
-       }
+       g_return_val_if_reached (NULL);
 }
 
 static void
@@ -574,7 +228,6 @@ theme_manager_finalize (GObject *object)
        EmpathyThemeManagerPriv *priv = GET_PRIV (object);
 
        g_object_unref (priv->gsettings_chat);
-       g_free (priv->name);
 
        if (priv->emit_changed_idle != 0) {
                g_source_remove (priv->emit_changed_idle);
@@ -620,15 +273,6 @@ empathy_theme_manager_init (EmpathyThemeManager *manager)
 
        priv->gsettings_chat = g_settings_new (EMPATHY_PREFS_CHAT_SCHEMA);
 
-       /* Take the theme name and track changes */
-       g_signal_connect (priv->gsettings_chat,
-                         "changed::" EMPATHY_PREFS_CHAT_THEME,
-                         G_CALLBACK (theme_manager_notify_name_cb),
-                         manager);
-       theme_manager_notify_name_cb (priv->gsettings_chat,
-                                     EMPATHY_PREFS_CHAT_THEME,
-                                     manager);
-
        /* Take the adium path/variant and track changes */
        g_signal_connect (priv->gsettings_chat,
                          "changed::" EMPATHY_PREFS_CHAT_ADIUM_PATH,
@@ -663,12 +307,6 @@ empathy_theme_manager_dup_singleton (void)
        return g_object_ref (manager);
 }
 
-const gchar **
-empathy_theme_manager_get_themes (void)
-{
-       return themes;
-}
-
 static void
 find_themes (GList **list, const gchar *dirpath)
 {
index 0a7a18c3ed81171ceb50af64c9eb85eb88a820c3..0b346ea7abaa56ddafbdb235d8d70ba281bb356e 100644 (file)
@@ -58,7 +58,6 @@ G_BEGIN_DECLS
 #define EMPATHY_PREFS_CHAT_SCHEMA EMPATHY_PREFS_SCHEMA ".conversation"
 #define EMPATHY_PREFS_CHAT_SHOW_SMILEYS            "graphical-smileys"
 #define EMPATHY_PREFS_CHAT_SHOW_CONTACTS_IN_ROOMS  "show-contacts-in-rooms"
-#define EMPATHY_PREFS_CHAT_THEME                   "theme"
 #define EMPATHY_PREFS_CHAT_THEME_VARIANT           "theme-variant"
 #define EMPATHY_PREFS_CHAT_ADIUM_PATH              "adium-path"
 #define EMPATHY_PREFS_CHAT_SPELL_CHECKER_LANGUAGES "spell-checker-languages"
index 4291ffcf86571ca0bdbf033f30ddf7c81e84bd48..c410affd196570f17b59984dea00b23f67086cfb 100644 (file)
@@ -115,8 +115,6 @@ enum {
 
 enum {
        COL_THEME_VISIBLE_NAME,
-       COL_THEME_NAME,
-       COL_THEME_IS_ADIUM,
        COL_THEME_ADIUM_PATH,
        COL_THEME_ADIUM_INFO,
        COL_THEME_COUNT
@@ -836,35 +834,23 @@ preferences_theme_changed_cb (GtkComboBox        *combo,
 
        if (gtk_combo_box_get_active_iter (combo, &iter)) {
                GtkTreeModel *model;
-               gboolean      is_adium;
-               gchar        *name;
                gchar        *path;
                GHashTable   *info;
+               gboolean variant;
 
                model = gtk_combo_box_get_model (combo);
                gtk_tree_model_get (model, &iter,
-                                   COL_THEME_IS_ADIUM, &is_adium,
-                                   COL_THEME_NAME, &name,
                                    COL_THEME_ADIUM_PATH, &path,
                                    COL_THEME_ADIUM_INFO, &info,
                                    -1);
 
                g_settings_set_string (priv->gsettings_chat,
-                                      EMPATHY_PREFS_CHAT_THEME,
-                                      name);
-               if (is_adium) {
-                       gboolean variant;
+                                      EMPATHY_PREFS_CHAT_ADIUM_PATH,
+                                      path);
 
-                       g_settings_set_string (priv->gsettings_chat,
-                                              EMPATHY_PREFS_CHAT_ADIUM_PATH,
-                                              path);
+               variant = preferences_theme_variants_fill (preferences, info);
+               gtk_widget_set_visible (priv->hbox_chat_theme_variant, variant);
 
-                       variant = preferences_theme_variants_fill (preferences, info);
-                       gtk_widget_set_visible (priv->hbox_chat_theme_variant, variant);
-               } else {
-                       gtk_widget_hide (priv->hbox_chat_theme_variant);
-               }
-               g_free (name);
                g_free (path);
                tp_clear_pointer (&info, g_hash_table_unref);
        }
@@ -878,14 +864,12 @@ preferences_theme_notify_cb (GSettings   *gsettings,
        EmpathyPreferences *preferences = user_data;
        EmpathyPreferencesPriv *priv = GET_PRIV (preferences);
        GtkComboBox        *combo;
-       gchar              *conf_name;
        gchar              *conf_path;
        GtkTreeModel       *model;
        GtkTreeIter         iter;
        gboolean            found = FALSE;
        gboolean            ok;
 
-       conf_name = g_settings_get_string (gsettings, EMPATHY_PREFS_CHAT_THEME);
        conf_path = g_settings_get_string (gsettings, EMPATHY_PREFS_CHAT_ADIUM_PATH);
 
        combo = GTK_COMBO_BOX (priv->combobox_chat_theme);
@@ -893,23 +877,17 @@ preferences_theme_notify_cb (GSettings   *gsettings,
        for (ok = gtk_tree_model_get_iter_first (model, &iter);
             ok && !found;
             ok = gtk_tree_model_iter_next (model, &iter)) {
-               gboolean is_adium;
-               gchar *name;
                gchar *path;
 
                gtk_tree_model_get (model, &iter,
-                                   COL_THEME_IS_ADIUM, &is_adium,
-                                   COL_THEME_NAME, &name,
                                    COL_THEME_ADIUM_PATH, &path,
                                    -1);
 
-               if (!tp_strdiff (name, conf_name) &&
-                   (!is_adium || !tp_strdiff (path, conf_path))) {
+               if (!tp_strdiff (path, conf_path)) {
                        found = TRUE;
                        gtk_combo_box_set_active_iter (combo, &iter);
                }
 
-               g_free (name);
                g_free (path);
        }
 
@@ -920,7 +898,6 @@ preferences_theme_notify_cb (GSettings   *gsettings,
                }
        }
 
-       g_free (conf_name);
        g_free (conf_path);
 }
 
@@ -932,9 +909,7 @@ preferences_themes_setup (EmpathyPreferences *preferences)
        GtkCellLayout *cell_layout;
        GtkCellRenderer *renderer;
        GtkListStore  *store;
-       const gchar  **themes;
        GList         *adium_themes;
-       gint           i;
 
        preferences_theme_variants_setup (preferences);
 
@@ -944,23 +919,12 @@ preferences_themes_setup (EmpathyPreferences *preferences)
        /* Create the model */
        store = gtk_list_store_new (COL_THEME_COUNT,
                                    G_TYPE_STRING,      /* Display name */
-                                   G_TYPE_STRING,      /* Theme name */
-                                   G_TYPE_BOOLEAN,     /* Is an Adium theme */
                                    G_TYPE_STRING,      /* Adium theme path */
                                    G_TYPE_HASH_TABLE); /* Adium theme info */
        gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
                COL_THEME_VISIBLE_NAME, GTK_SORT_ASCENDING);
 
        /* Fill the model */
-       themes = empathy_theme_manager_get_themes ();
-       for (i = 0; themes[i]; i += 2) {
-               gtk_list_store_insert_with_values (store, NULL, -1,
-                       COL_THEME_VISIBLE_NAME, _(themes[i + 1]),
-                       COL_THEME_NAME, themes[i],
-                       COL_THEME_IS_ADIUM, FALSE,
-                       -1);
-       }
-
        adium_themes = empathy_theme_manager_get_adium_themes ();
        while (adium_themes != NULL) {
                GHashTable *info;
@@ -974,8 +938,6 @@ preferences_themes_setup (EmpathyPreferences *preferences)
                if (name != NULL && path != NULL) {
                        gtk_list_store_insert_with_values (store, NULL, -1,
                                COL_THEME_VISIBLE_NAME, name,
-                               COL_THEME_NAME, "adium",
-                               COL_THEME_IS_ADIUM, TRUE,
                                COL_THEME_ADIUM_PATH, path,
                                COL_THEME_ADIUM_INFO, info,
                                -1);
@@ -999,12 +961,8 @@ preferences_themes_setup (EmpathyPreferences *preferences)
 
        /* Select the theme from the GSetting key and track changes */
        preferences_theme_notify_cb (priv->gsettings_chat,
-                                    EMPATHY_PREFS_CHAT_THEME,
+                                    EMPATHY_PREFS_CHAT_ADIUM_PATH,
                                     preferences);
-       g_signal_connect (priv->gsettings_chat,
-                         "changed::" EMPATHY_PREFS_CHAT_THEME,
-                         G_CALLBACK (preferences_theme_notify_cb),
-                         preferences);
 
        g_signal_connect (priv->gsettings_chat,
                          "changed::" EMPATHY_PREFS_CHAT_ADIUM_PATH,