]> git.0d.be Git - empathy.git/commitdiff
Remove EmpathyChatViewBlock and empaty_chat_view_set_last_contact
authorXavier Claessens <xclaesse@src.gnome.org>
Fri, 14 Mar 2008 13:05:41 +0000 (13:05 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 14 Mar 2008 13:05:41 +0000 (13:05 +0000)
svn path=/trunk/; revision=791

libempathy-gtk/empathy-chat-view.c
libempathy-gtk/empathy-chat-view.h
libempathy-gtk/empathy-theme-boxes.c

index 7682bf3a1adfd39ed40177b4b8e15446da75b90c..d67f9c4ddbcf3c7f7970eaadcbb8788f348af690 100644 (file)
@@ -69,7 +69,6 @@ struct _EmpathyChatViewPriv {
        EmpathyTheme   *theme;
 
        time_t         last_timestamp;
-       EmpathyChatViewBlock last_block_type;
 
        gboolean       allow_scrolling;
        guint          scroll_timeout;
@@ -156,12 +155,8 @@ empathy_chat_view_init (EmpathyChatView *view)
        priv = GET_PRIV (view);
 
        priv->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
-
-       priv->last_block_type = EMPATHY_CHAT_VIEW_BLOCK_NONE;
        priv->last_timestamp = 0;
-
        priv->allow_scrolling = TRUE;
-
        priv->is_group_chat = FALSE;
 
        g_object_set (view,
@@ -637,8 +632,6 @@ chat_view_theme_changed_cb (EmpathyThemeManager *manager,
 
        priv = GET_PRIV (view);
 
-       priv->last_block_type = EMPATHY_CHAT_VIEW_BLOCK_NONE;
-
        empathy_conf_get_bool (empathy_conf_get (),
                              EMPATHY_PREFS_CHAT_THEME_CHAT_ROOM,
                              &theme_rooms);
@@ -761,9 +754,7 @@ empathy_chat_view_append_message (EmpathyChatView *view,
                                  EmpathyMessage  *msg)
 {
        EmpathyChatViewPriv *priv = GET_PRIV (view);
-       EmpathyContact      *sender;
        gboolean             bottom;
-       gboolean             from_self;
 
        g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
        g_return_if_fail (EMPATHY_IS_MESSAGE (msg));
@@ -773,8 +764,6 @@ empathy_chat_view_append_message (EmpathyChatView *view,
        }
 
        bottom = chat_view_is_scrolled_down (view);
-       sender = empathy_message_get_sender (msg);
-       from_self = empathy_contact_is_user (sender);
        
        chat_view_maybe_trim_buffer (view);
 
@@ -783,6 +772,11 @@ empathy_chat_view_append_message (EmpathyChatView *view,
        if (bottom) {
                empathy_chat_view_scroll_down (view);
        }
+
+       if (priv->last_contact) {
+               g_object_unref (priv->last_contact);
+       }
+       priv->last_contact = g_object_ref (empathy_message_get_sender (msg));
 }
 
 void
@@ -807,7 +801,10 @@ empathy_chat_view_append_event (EmpathyChatView *view,
                empathy_chat_view_scroll_down (view);
        }
 
-       priv->last_block_type = EMPATHY_CHAT_VIEW_BLOCK_EVENT;
+       if (priv->last_contact) {
+               g_object_unref (priv->last_contact);
+               priv->last_contact = NULL;
+       }
 }
 
 void
@@ -877,7 +874,10 @@ empathy_chat_view_append_button (EmpathyChatView *view,
                empathy_chat_view_scroll_down (view);
        }
 
-       priv->last_block_type = EMPATHY_CHAT_VIEW_BLOCK_INVITE;
+       if (priv->last_contact) {
+               g_object_unref (priv->last_contact);
+               priv->last_contact = NULL;
+       }
 }
 
 void
@@ -982,7 +982,6 @@ empathy_chat_view_clear (EmpathyChatView *view)
         */
        priv = GET_PRIV (view);
 
-       priv->last_block_type = EMPATHY_CHAT_VIEW_BLOCK_NONE;
        priv->last_timestamp = 0;
 }
 
@@ -1498,31 +1497,6 @@ empathy_chat_view_set_last_timestamp (EmpathyChatView *view,
        priv->last_timestamp = timestamp;
 }
 
-EmpathyChatViewBlock
-empathy_chat_view_get_last_block_type (EmpathyChatView *view)
-{
-       EmpathyChatViewPriv *priv;
-
-       g_return_val_if_fail (EMPATHY_IS_CHAT_VIEW (view), 0);
-
-       priv = GET_PRIV (view);
-
-       return priv->last_block_type;
-}
-
-void
-empathy_chat_view_set_last_block_type (EmpathyChatView      *view, 
-                                      EmpathyChatViewBlock  block_type)
-{
-       EmpathyChatViewPriv *priv;
-
-       g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-
-       priv = GET_PRIV (view);
-
-       priv->last_block_type = block_type;
-}
-
 EmpathyContact *
 empathy_chat_view_get_last_contact (EmpathyChatView *view)
 {
@@ -1535,22 +1509,3 @@ empathy_chat_view_get_last_contact (EmpathyChatView *view)
        return priv->last_contact;
 }
 
-void
-empathy_chat_view_set_last_contact (EmpathyChatView *view, EmpathyContact *contact)
-{
-       EmpathyChatViewPriv *priv;
-
-       g_return_if_fail (EMPATHY_IS_CHAT_VIEW (view));
-
-       priv = GET_PRIV (view);
-
-       if (priv->last_contact) {
-               g_object_unref (priv->last_contact);
-               priv->last_contact = NULL;
-       }
-
-       if (contact) {
-               priv->last_contact = g_object_ref (contact);
-       }
-}
-
index 58219ca045c9064857bc65672534d919fe9af293..5eac2e6cc4cf54017d3548311bf43904957bc581 100644 (file)
@@ -53,15 +53,6 @@ struct _EmpathyChatViewClass {
        GtkTextViewClass parent_class;
 };
 
-typedef enum {
-       EMPATHY_CHAT_VIEW_BLOCK_NONE,
-       EMPATHY_CHAT_VIEW_BLOCK_SELF,
-       EMPATHY_CHAT_VIEW_BLOCK_OTHER,
-       EMPATHY_CHAT_VIEW_BLOCK_EVENT,
-       EMPATHY_CHAT_VIEW_BLOCK_TIME,
-       EMPATHY_CHAT_VIEW_BLOCK_INVITE
-} EmpathyChatViewBlock;
-
 GType            empathy_chat_view_get_type             (void) G_GNUC_CONST;
 EmpathyChatView *empathy_chat_view_new                  (void);
 void             empathy_chat_view_append_message       (EmpathyChatView *view,
@@ -106,12 +97,7 @@ void             empathy_chat_view_set_is_group_chat    (EmpathyChatView *view,
 time_t           empathy_chat_view_get_last_timestamp   (EmpathyChatView *view);
 void             empathy_chat_view_set_last_timestamp   (EmpathyChatView *view,
                                                         time_t           timestamp);
-EmpathyChatViewBlock empathy_chat_view_get_last_block_type  (EmpathyChatView *view);
-void             empathy_chat_view_set_last_block_type  (EmpathyChatView *view, 
-                                                        EmpathyChatViewBlock block_type);
 EmpathyContact * empathy_chat_view_get_last_contact     (EmpathyChatView *view);
-void             empathy_chat_view_set_last_contact     (EmpathyChatView *view,
-                                                        EmpathyContact  *contact);
 GdkPixbuf *      empathy_chat_view_get_avatar_pixbuf_with_cache (EmpathyContact *contact);
 
 G_END_DECLS
index 797cb432496da4e0b3d12837d7db2ed383d430f3..06c35cae8b93df2214ac4767005fd3ea8e8687f3 100644 (file)
@@ -527,10 +527,10 @@ theme_boxes_maybe_append_header (EmpathyTheme        *theme,
 {
        EmpathyThemeBoxesPriv *priv;
        EmpathyContact        *contact;
+       EmpathyContact        *last_contact;
        GdkPixbuf            *avatar = NULL;
        GtkTextBuffer        *buffer;
        const gchar          *name;
-       gboolean              header;
        GtkTextIter           iter;
        GtkWidget            *label1, *label2;
        GtkTextChildAnchor   *anchor;
@@ -541,42 +541,20 @@ theme_boxes_maybe_append_header (EmpathyTheme        *theme,
        GtkTextIter           start;
        GdkColor              color;
        gboolean              parse_success;
-       gboolean              from_self;
 
        priv = GET_PRIV (theme);
 
        contact = empathy_message_get_sender (msg);
-       from_self = empathy_contact_is_user (contact);
+       name = empathy_contact_get_name (contact);
+       last_contact = empathy_chat_view_get_last_contact (view);
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
 
        empathy_debug (DEBUG_DOMAIN, "Maybe add fancy header");
 
-       name = empathy_contact_get_name (contact);
-
-       header = FALSE;
-
        /* Only insert a header if the previously inserted block is not the same
         * as this one. This catches all the different cases:
         */
-       if (empathy_chat_view_get_last_block_type (view) != EMPATHY_CHAT_VIEW_BLOCK_SELF &&
-           empathy_chat_view_get_last_block_type (view) != EMPATHY_CHAT_VIEW_BLOCK_OTHER) {
-               header = TRUE;
-       }
-       else if (from_self &&
-                empathy_chat_view_get_last_block_type (view) == EMPATHY_CHAT_VIEW_BLOCK_OTHER) {
-               header = TRUE;
-       }
-       else if (!from_self && 
-                empathy_chat_view_get_last_block_type (view) == EMPATHY_CHAT_VIEW_BLOCK_SELF) {
-               header = TRUE;
-       }
-       else if (!from_self &&
-                (!empathy_chat_view_get_last_contact (view) ||
-                 contact != empathy_chat_view_get_last_contact (view))) {
-               header = TRUE;
-       }
-
-       if (!header) {
+       if (last_contact && empathy_contact_equal (last_contact, contact)) {
                return;
        }
 
@@ -708,14 +686,6 @@ theme_boxes_append_message (EmpathyTheme        *theme,
                                           empathy_message_get_body (message),
                                           "fancy-body", "fancy-link");
        }
-       
-       if (empathy_contact_is_user (sender)) {
-               empathy_chat_view_set_last_block_type (view, EMPATHY_CHAT_VIEW_BLOCK_SELF);
-               empathy_chat_view_set_last_contact (view, NULL);
-       } else {
-               empathy_chat_view_set_last_block_type (view, EMPATHY_CHAT_VIEW_BLOCK_OTHER);
-               empathy_chat_view_set_last_contact (view, sender);
-       }
 }
 
 static void
@@ -740,8 +710,6 @@ theme_boxes_append_event (EmpathyTheme        *theme,
                                                  "fancy-event",
                                                  NULL);
        g_free (msg);
-
-       empathy_chat_view_set_last_block_type (view, EMPATHY_CHAT_VIEW_BLOCK_EVENT);
 }
 
 static void
@@ -804,7 +772,6 @@ theme_boxes_append_timestamp (EmpathyTheme        *theme,
                                                          "fancy-time",
                                                          NULL);
 
-               empathy_chat_view_set_last_block_type (view, EMPATHY_CHAT_VIEW_BLOCK_TIME);
                empathy_chat_view_set_last_timestamp (view, timestamp);
        }