diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-04-14 21:26:34 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-04-14 21:26:34 +0800 |
commit | 7e7b3651a0dfc97358dcefeb176a1f8807269601 (patch) | |
tree | 6328f15b0effa39793e13a93c7c71de21ec4e39a /src/empathy-chat-window.c | |
parent | 150dc07ffeaefc877a3f8c48ba861a93fcb9e6f3 (diff) | |
download | gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar.gz gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar.bz2 gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar.lz gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar.xz gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.tar.zst gsoc2013-empathy-7e7b3651a0dfc97358dcefeb176a1f8807269601.zip |
Code cleanup
svn path=/trunk/; revision=939
Diffstat (limited to 'src/empathy-chat-window.c')
-rw-r--r-- | src/empathy-chat-window.c | 100 |
1 files changed, 41 insertions, 59 deletions
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 9df7a8211..f77e6f0d5 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -262,34 +262,6 @@ chat_window_create_label (EmpathyChatWindow *window, return hbox; } -static void -chat_window_update_menu (EmpathyChatWindow *window) -{ - EmpathyChatWindowPriv *priv; - gboolean first_page; - gboolean last_page; - gboolean is_connected; - gint num_pages; - gint page_num; - - priv = GET_PRIV (window); - - /* Notebook pages */ - page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)); - num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)); - first_page = (page_num == 0); - last_page = (page_num == (num_pages - 1)); - - gtk_widget_set_sensitive (priv->menu_tabs_next, !last_page); - gtk_widget_set_sensitive (priv->menu_tabs_prev, !first_page); - gtk_widget_set_sensitive (priv->menu_tabs_detach, num_pages > 1); - gtk_widget_set_sensitive (priv->menu_tabs_left, !first_page); - gtk_widget_set_sensitive (priv->menu_tabs_right, !last_page); - - is_connected = empathy_chat_get_tp_chat (priv->current_chat) != NULL; - gtk_widget_set_sensitive (priv->menu_conv_insert_smiley, is_connected); -} - static const gchar * chat_window_get_chat_name (EmpathyChat *chat) { @@ -310,14 +282,37 @@ chat_window_get_chat_name (EmpathyChat *chat) } static void -chat_window_update_title (EmpathyChatWindow *window) +chat_window_update (EmpathyChatWindow *window) { EmpathyChatWindowPriv *priv = GET_PRIV (window); + gboolean first_page; + gboolean last_page; + gboolean is_connected; + gint num_pages; + gint page_num; const gchar *name; guint n_chats; + /* Get information */ + page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)); + num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)); + first_page = (page_num == 0); + last_page = (page_num == (num_pages - 1)); + is_connected = empathy_chat_get_tp_chat (priv->current_chat) != NULL; name = chat_window_get_chat_name (priv->current_chat); n_chats = g_list_length (priv->chats); + + empathy_debug (DEBUG_DOMAIN, "Update window"); + + /* Update menu */ + gtk_widget_set_sensitive (priv->menu_tabs_next, !last_page); + gtk_widget_set_sensitive (priv->menu_tabs_prev, !first_page); + gtk_widget_set_sensitive (priv->menu_tabs_detach, num_pages > 1); + gtk_widget_set_sensitive (priv->menu_tabs_left, !first_page); + gtk_widget_set_sensitive (priv->menu_tabs_right, !last_page); + gtk_widget_set_sensitive (priv->menu_conv_insert_smiley, is_connected); + + /* Update window title */ if (n_chats == 1) { gtk_window_set_title (GTK_WINDOW (priv->dialog), name); } else { @@ -327,6 +322,8 @@ chat_window_update_title (EmpathyChatWindow *window) gtk_window_set_title (GTK_WINDOW (priv->dialog), title); g_free (title); } + + /* Update window icon */ if (priv->chats_new_msg) { gtk_window_set_icon_name (GTK_WINDOW (priv->dialog), EMPATHY_IMAGE_MESSAGE); @@ -336,7 +333,7 @@ chat_window_update_title (EmpathyChatWindow *window) } static void -chat_window_update_chat (EmpathyChat *chat) +chat_window_update_chat_tab (EmpathyChat *chat) { EmpathyChatWindow *window; EmpathyChatWindowPriv *priv; @@ -359,7 +356,7 @@ chat_window_update_chat (EmpathyChat *chat) subject = empathy_chat_get_subject (chat); remote_contact = empathy_chat_get_remote_contact (chat); - empathy_debug (DEBUG_DOMAIN, "Updating chat window, name=%s, subject=%s, " + empathy_debug (DEBUG_DOMAIN, "Updating chat tab, name=%s, subject=%s, " "remote_contact=%p", name, subject, remote_contact); /* Update tab image */ @@ -402,9 +399,9 @@ chat_window_update_chat (EmpathyChat *chat) widget = g_object_get_data (G_OBJECT (chat), "chat-window-tab-label"); gtk_label_set_text (GTK_LABEL (widget), name); - /* Update window title? */ + /* Update the window if it's the current chat */ if (priv->current_chat == chat) { - chat_window_update_title (window); + chat_window_update (window); } } @@ -423,12 +420,12 @@ chat_window_chat_notify_cb (EmpathyChat *chat) * window each time. */ if (remote_contact) { g_signal_connect_swapped (remote_contact, "notify", - G_CALLBACK (chat_window_update_chat), + G_CALLBACK (chat_window_update_chat_tab), chat); } if (old_remote_contact) { g_signal_handlers_disconnect_by_func (old_remote_contact, - chat_window_update_chat, + chat_window_update_chat_tab, chat); } @@ -436,7 +433,7 @@ chat_window_chat_notify_cb (EmpathyChat *chat) remote_contact); } - chat_window_update_chat (chat); + chat_window_update_chat_tab (chat); } static void @@ -732,7 +729,7 @@ chat_window_composing_cb (EmpathyChat *chat, priv->chats_composing = g_list_remove (priv->chats_composing, chat); } - chat_window_update_chat (chat); + chat_window_update_chat_tab (chat); } static void @@ -773,7 +770,7 @@ chat_window_new_message_cb (EmpathyChat *chat, if (!g_list_find (priv->chats_new_msg, chat)) { priv->chats_new_msg = g_list_prepend (priv->chats_new_msg, chat); - chat_window_update_chat (chat); + chat_window_update_chat_tab (chat); } } @@ -832,20 +829,7 @@ chat_window_page_switched_cb (GtkNotebook *notebook, priv->current_chat = chat; priv->chats_new_msg = g_list_remove (priv->chats_new_msg, chat); - chat_window_update_menu (window); - chat_window_update_title (window); -} - -static void -chat_window_page_reordered_cb (GtkNotebook *notebook, - GtkWidget *widget, - guint page_num, - EmpathyChatWindow *window) -{ - empathy_debug (DEBUG_DOMAIN, "Page reordered"); - - chat_window_update_menu (window); - chat_window_update_title (window); + chat_window_update_chat_tab (chat); } static void @@ -889,6 +873,8 @@ chat_window_page_added_cb (GtkNotebook *notebook, /* Get list of chats up to date */ priv->chats = g_list_append (priv->chats, chat); + + chat_window_update_chat_tab (chat); } static void @@ -932,7 +918,7 @@ chat_window_page_removed_cb (GtkNotebook *notebook, if (priv->chats == NULL) { g_object_unref (window); } else { - chat_window_update_title (window); + chat_window_update (window); } } @@ -952,7 +938,7 @@ chat_window_focus_in_event_cb (GtkWidget *widget, chat_window_set_urgency_hint (window, FALSE); /* Update the title, since we now mark all unread messages as read. */ - chat_window_update_chat (priv->current_chat); + chat_window_update_chat_tab (priv->current_chat); return FALSE; } @@ -1213,10 +1199,6 @@ empathy_chat_window_init (EmpathyChatWindow *window) G_CALLBACK (chat_window_page_switched_cb), window); g_signal_connect (priv->notebook, - "page_reordered", - G_CALLBACK (chat_window_page_reordered_cb), - window); - g_signal_connect (priv->notebook, "page_added", G_CALLBACK (chat_window_page_added_cb), window); @@ -1378,7 +1360,7 @@ empathy_chat_window_remove_chat (EmpathyChatWindow *window, "chat-window-remote-contact"); if (remote_contact) { g_signal_handlers_disconnect_by_func (remote_contact, - chat_window_update_chat, + chat_window_update_chat_tab, chat); } |