From 3d8a07ffe7cdf6c929abf991eaaf8fe1370e6f5d Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 13 Jul 2007 12:48:44 +0000 Subject: [PATCH] Remove unused nickname entry and use a GtkTable for room information. More 2007-07-13 Xavier Claessens * libempathy-gtk/empathy-new-chatroom-dialog.c: * libempathy-gtk/empathy-new-chatroom-dialog.glade: Remove unused nickname entry and use a GtkTable for room information. More work is needed here. * libempathy-gtk/empathy-contact-widget.glade: Change padding to 6. * libempathy-gtk/empathy-contact-dialogs.c: Set a window title. * libempathy-gtk/empathy-contact-widget.c: Fix alignment of widgets. * libempathy/empathy-tp-contact-list.c: Add more debug msg for avatar handling. svn path=/trunk/; revision=184 --- ChangeLog | 16 + libempathy-gtk/empathy-contact-dialogs.c | 2 + libempathy-gtk/empathy-contact-widget.c | 3 + libempathy-gtk/empathy-contact-widget.glade | 2 +- libempathy-gtk/empathy-new-chatroom-dialog.c | 187 +++-------- .../empathy-new-chatroom-dialog.glade | 307 +++++++----------- libempathy/empathy-tp-contact-list.c | 8 + 7 files changed, 192 insertions(+), 333 deletions(-) diff --git a/ChangeLog b/ChangeLog index 86aa1375..dc19cc31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2007-07-13 Xavier Claessens + + * libempathy-gtk/empathy-new-chatroom-dialog.c: + * libempathy-gtk/empathy-new-chatroom-dialog.glade: Remove unused + nickname entry and use a GtkTable for room information. More work is + needed here. + + * libempathy-gtk/empathy-contact-widget.glade: Change padding to 6. + + * libempathy-gtk/empathy-contact-dialogs.c: Set a window title. + + * libempathy-gtk/empathy-contact-widget.c: Fix alignment of widgets. + + * libempathy/empathy-tp-contact-list.c: Add more debug msg for avatar + handling. + 2007-07-12 Xavier Claessens * libempathy-gtk/Makefile.am: Fix missing header for diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c index 659d9176..b0d24dec 100644 --- a/libempathy-gtk/empathy-contact-dialogs.c +++ b/libempathy-gtk/empathy-contact-dialogs.c @@ -166,6 +166,7 @@ empathy_contact_information_dialog_show (EmpathyContact *contact, dialog = gtk_dialog_new (); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_window_set_title (GTK_WINDOW (dialog), _("Contact information")); /* Close button */ button = gtk_button_new_with_label (GTK_STOCK_CLOSE); @@ -237,6 +238,7 @@ empathy_new_contact_dialog_show (GtkWindow *parent) dialog = gtk_dialog_new (); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_window_set_title (GTK_WINDOW (dialog), _("New contact")); /* Cancel button */ button = gtk_button_new_with_label (GTK_STOCK_CANCEL); diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c index 2f56a6e5..617a7d62 100644 --- a/libempathy-gtk/empathy-contact-widget.c +++ b/libempathy-gtk/empathy-contact-widget.c @@ -290,6 +290,7 @@ contact_widget_contact_setup (EmpathyContactWidget *information) information->widget_account, 1, 2, 0, 1); gtk_widget_show (information->widget_account); + gtk_misc_set_alignment (GTK_MISC (information->widget_account), 0, 0.5); /* Setup id label/entry */ if (information->can_change_contact) { @@ -305,6 +306,7 @@ contact_widget_contact_setup (EmpathyContactWidget *information) information->widget_id, 1, 2, 1, 2); gtk_widget_show (information->widget_id); + gtk_misc_set_alignment (GTK_MISC (information->widget_id), 0, 0.5); /* Setup alias label/entry */ if (information->editable) { @@ -320,6 +322,7 @@ contact_widget_contact_setup (EmpathyContactWidget *information) information->widget_alias, 1, 2, 2, 3); gtk_widget_show (information->widget_alias); + gtk_misc_set_alignment (GTK_MISC (information->widget_alias), 0, 0.5); } static void diff --git a/libempathy-gtk/empathy-contact-widget.glade b/libempathy-gtk/empathy-contact-widget.glade index 74347a06..6eb60198 100644 --- a/libempathy-gtk/empathy-contact-widget.glade +++ b/libempathy-gtk/empathy-contact-widget.glade @@ -86,7 +86,7 @@ 2 False 6 - 12 + 6 diff --git a/libempathy-gtk/empathy-new-chatroom-dialog.c b/libempathy-gtk/empathy-new-chatroom-dialog.c index 31f61078..5df2a1f4 100644 --- a/libempathy-gtk/empathy-new-chatroom-dialog.c +++ b/libempathy-gtk/empathy-new-chatroom-dialog.c @@ -41,45 +41,38 @@ #include "empathy-new-chatroom-dialog.h" #include "empathy-account-chooser.h" -//#include "empathy-chatrooms-window.h" #include "empathy-ui-utils.h" #include "ephy-spinner.h" #define DEBUG_DOMAIN "NewChatroomDialog" typedef struct { - GtkWidget *window; + GtkWidget *window; - GtkWidget *vbox_widgets; + GtkWidget *vbox_widgets; + GtkWidget *table_info; - GtkWidget *hbox_account; - GtkWidget *label_account; - GtkWidget *account_chooser; + GtkWidget *label_account; + GtkWidget *account_chooser; - GtkWidget *hbox_server; - GtkWidget *label_server; - GtkWidget *entry_server; - GtkWidget *togglebutton_refresh; + GtkWidget *label_server; + GtkWidget *entry_server; + GtkWidget *togglebutton_refresh; - GtkWidget *hbox_room; - GtkWidget *label_room; - GtkWidget *entry_room; - - GtkWidget *hbox_nick; - GtkWidget *label_nick; - GtkWidget *entry_nick; - - GtkWidget *vbox_browse; - GtkWidget *image_status; - GtkWidget *label_status; - GtkWidget *hbox_status; - GtkWidget *throbber; - GtkWidget *treeview; - GtkTreeModel *model; - GtkTreeModel *filter; - - GtkWidget *button_join; - GtkWidget *button_close; + GtkWidget *label_room; + GtkWidget *entry_room; + + GtkWidget *vbox_browse; + GtkWidget *image_status; + GtkWidget *label_status; + GtkWidget *hbox_status; + GtkWidget *throbber; + GtkWidget *treeview; + GtkTreeModel *model; + GtkTreeModel *filter; + + GtkWidget *button_join; + GtkWidget *button_close; } EmpathyNewChatroomDialog; typedef struct { @@ -103,7 +96,6 @@ static void new_chatroom_dialog_destroy_cb (GtkWidget EmpathyNewChatroomDialog *dialog); static void new_chatroom_dialog_model_setup (EmpathyNewChatroomDialog *dialog); static void new_chatroom_dialog_model_add_columns (EmpathyNewChatroomDialog *dialog); -static void new_chatroom_dialog_update_buttons (EmpathyNewChatroomDialog *dialog); static void new_chatroom_dialog_update_widgets (EmpathyNewChatroomDialog *dialog); static void new_chatroom_dialog_account_changed_cb (GtkComboBox *combobox, EmpathyNewChatroomDialog *dialog); @@ -143,10 +135,8 @@ void empathy_new_chatroom_dialog_show (GtkWindow *parent) { EmpathyNewChatroomDialog *dialog; - GladeXML *glade; - GList *accounts; - gint account_num; - GtkSizeGroup *size_group; + GladeXML *glade; + GtkSizeGroup *size_group; if (dialog_p) { gtk_window_present (GTK_WINDOW (dialog_p->window)); @@ -159,18 +149,12 @@ empathy_new_chatroom_dialog_show (GtkWindow *parent) "new_chatroom_dialog", NULL, "new_chatroom_dialog", &dialog->window, - "hbox_account", &dialog->hbox_account, + "table_info", &dialog->table_info, "label_account", &dialog->label_account, - "vbox_widgets", &dialog->vbox_widgets, "label_server", &dialog->label_server, "label_room", &dialog->label_room, - "label_nick", &dialog->label_nick, - "hbox_server", &dialog->hbox_server, - "hbox_room", &dialog->hbox_room, - "hbox_nick", &dialog->hbox_nick, "entry_server", &dialog->entry_server, "entry_room", &dialog->entry_room, - "entry_nick", &dialog->entry_nick, "togglebutton_refresh", &dialog->togglebutton_refresh, "vbox_browse", &dialog->vbox_browse, "image_status", &dialog->image_status, @@ -184,7 +168,6 @@ empathy_new_chatroom_dialog_show (GtkWindow *parent) dialog, "new_chatroom_dialog", "response", new_chatroom_dialog_response_cb, "new_chatroom_dialog", "destroy", new_chatroom_dialog_destroy_cb, - "entry_nick", "changed", new_chatroom_dialog_entry_changed_cb, "entry_server", "changed", new_chatroom_dialog_entry_changed_cb, "entry_server", "activate", new_chatroom_dialog_entry_server_activate_cb, "entry_room", "changed", new_chatroom_dialog_entry_changed_cb, @@ -201,35 +184,20 @@ empathy_new_chatroom_dialog_show (GtkWindow *parent) gtk_size_group_add_widget (size_group, dialog->label_account); gtk_size_group_add_widget (size_group, dialog->label_server); gtk_size_group_add_widget (size_group, dialog->label_room); - gtk_size_group_add_widget (size_group, dialog->label_nick); g_object_unref (size_group); /* Account chooser for custom */ dialog->account_chooser = empathy_account_chooser_new (); - gtk_box_pack_start (GTK_BOX (dialog->hbox_account), - dialog->account_chooser, - TRUE, TRUE, 0); + gtk_table_attach_defaults (GTK_TABLE (dialog->table_info), + dialog->account_chooser, + 1, 3, 0, 1); gtk_widget_show (dialog->account_chooser); g_signal_connect (GTK_COMBO_BOX (dialog->account_chooser), "changed", G_CALLBACK (new_chatroom_dialog_account_changed_cb), dialog); - /* Populate */ - accounts = mc_accounts_list (); - account_num = g_list_length (accounts); - - g_list_foreach (accounts, (GFunc) g_object_unref, NULL); - g_list_free (accounts); - - if (account_num > 1) { - gtk_widget_show (dialog->hbox_account); - } else { - /* Show no accounts combo box */ - gtk_widget_hide (dialog->hbox_account); - } - /* Add throbber */ dialog->throbber = ephy_spinner_new (); ephy_spinner_set_size (EPHY_SPINNER (dialog->throbber), GTK_ICON_SIZE_LARGE_TOOLBAR); @@ -357,97 +325,42 @@ new_chatroom_dialog_model_add_columns (EmpathyNewChatroomDialog *dialog) gtk_tree_view_append_column (view, column); } -static void -new_chatroom_dialog_update_buttons (EmpathyNewChatroomDialog *dialog) -{ - GtkButton *button; - GtkWidget *image; - GtkTreeView *view; - GtkTreeModel *model; - guint items; - const gchar *room; - - /* Sort out Join button. */ - button = GTK_BUTTON (dialog->button_join); - - image = gtk_button_get_image (button); - if (!image) { - image = gtk_image_new (); - gtk_button_set_image (button, image); - } - //gtk_button_set_use_stock (button, FALSE); - - room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room)); - - /* Collect necessary information first. */ - view = GTK_TREE_VIEW (dialog->treeview); - model = gtk_tree_view_get_model (view); - items = gtk_tree_model_iter_n_children (model, NULL); - - if (items < 1 && !G_STR_EMPTY (room)) { - gtk_button_set_label (button, _("Create")); - gtk_image_set_from_stock (GTK_IMAGE (image), - GTK_STOCK_NEW, - GTK_ICON_SIZE_BUTTON); - } else { - gtk_button_set_label (button, _("Join")); - gtk_image_set_from_stock (GTK_IMAGE (image), - GTK_STOCK_EXECUTE, - GTK_ICON_SIZE_BUTTON); - } - - gtk_widget_set_sensitive (dialog->button_join, !G_STR_EMPTY (room)); -} - static void new_chatroom_dialog_update_widgets (EmpathyNewChatroomDialog *dialog) { EmpathyAccountChooser *account_chooser; - McAccount *account; - McProfile *profile; - const gchar *protocol; + McAccount *account; + McProfile *profile; + const gchar *protocol; + const gchar *room; account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser); account = empathy_account_chooser_get_account (account_chooser); profile = mc_account_get_profile (account); protocol = mc_profile_get_protocol_name (profile); + gtk_entry_set_text (GTK_ENTRY (dialog->entry_server), ""); + /* hardcode here known protocols */ if (strcmp (protocol, "jabber") == 0) { - const gchar *server; - - server = mc_profile_get_default_account_domain (profile); - if (server) { - gchar *conference_server; - - conference_server = g_strconcat ("conference.", - server, NULL); - gtk_entry_set_text (GTK_ENTRY (dialog->entry_server), - conference_server); - g_free (conference_server); - } - - gtk_widget_show (dialog->hbox_server); - gtk_widget_show (dialog->hbox_nick); + gtk_widget_set_sensitive (dialog->entry_server, TRUE); gtk_widget_show (dialog->vbox_browse); } else if (strcmp (protocol, "salut") == 0) { - gtk_widget_hide (dialog->hbox_server); - gtk_widget_show (dialog->hbox_nick); + gtk_widget_set_sensitive (dialog->entry_server, FALSE); gtk_widget_show (dialog->vbox_browse); } else if (strcmp (protocol, "irc") == 0) { - gtk_widget_hide (dialog->hbox_server); - gtk_widget_hide (dialog->hbox_nick); + gtk_widget_set_sensitive (dialog->entry_server, FALSE); gtk_widget_show (dialog->vbox_browse); } else { - gtk_widget_hide (dialog->hbox_server); - gtk_widget_hide (dialog->hbox_nick); - gtk_widget_hide (dialog->vbox_browse); + gtk_widget_set_sensitive (dialog->entry_server, TRUE); + gtk_widget_show (dialog->vbox_browse); } - new_chatroom_dialog_update_buttons (dialog); + room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room)); + gtk_widget_set_sensitive (dialog->button_join, !G_STR_EMPTY (room)); /* Final set up of the dialog */ gtk_widget_grab_focus (dialog->entry_room); @@ -576,7 +489,6 @@ new_chatroom_dialog_model_row_inserted_cb (GtkTreeModel *model, GtkTreeIter *iter, EmpathyNewChatroomDialog *dialog) { - new_chatroom_dialog_update_buttons (dialog); } static void @@ -584,14 +496,12 @@ new_chatroom_dialog_model_row_deleted_cb (GtkTreeModel *model, GtkTreePath *path, EmpathyNewChatroomDialog *dialog) { - new_chatroom_dialog_update_buttons (dialog); } static void new_chatroom_dialog_model_selection_changed (GtkTreeSelection *selection, EmpathyNewChatroomDialog *dialog) { - new_chatroom_dialog_update_buttons (dialog); } static void @@ -615,9 +525,8 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog) } room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room)); - if (GTK_WIDGET_VISIBLE (dialog->hbox_server)) { - server = gtk_entry_get_text (GTK_ENTRY (dialog->entry_server)); - } + server = gtk_entry_get_text (GTK_ENTRY (dialog->entry_server)); + account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser); account = empathy_account_chooser_get_account (account_chooser); @@ -641,14 +550,16 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog) } static void -new_chatroom_dialog_entry_changed_cb (GtkWidget *entry, +new_chatroom_dialog_entry_changed_cb (GtkWidget *entry, EmpathyNewChatroomDialog *dialog) { if (entry == dialog->entry_room) { - gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (dialog->filter)); - } + const gchar *room; - new_chatroom_dialog_update_buttons (dialog); + room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (dialog->filter)); + gtk_widget_set_sensitive (dialog->button_join, !G_STR_EMPTY (room)); + } } static void diff --git a/libempathy-gtk/empathy-new-chatroom-dialog.glade b/libempathy-gtk/empathy-new-chatroom-dialog.glade index 49bdadb6..d08b3edc 100644 --- a/libempathy-gtk/empathy-new-chatroom-dialog.glade +++ b/libempathy-gtk/empathy-new-chatroom-dialog.glade @@ -140,10 +140,13 @@ 18 - + True + 3 + 3 False - 12 + 6 + 6 @@ -164,228 +167,144 @@ 0 - 0 - False - True + 0 + 1 + 0 + 1 + fill + - + + True + _Server: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + entry_server + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + - - - 0 - True - True - - - - - - True - False - 6 - + True - False - 12 - - - - True - _Server: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - entry_server - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - * - False - 25 - - - 0 - True - True - - - - - - True - True - Re_fresh - True - GTK_RELIEF_NORMAL - True - False - False - - - 0 - False - False - - + _Room: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + entry_room + PANGO_ELLIPSIZE_NONE + -1 + False + 0 - 0 - True - True + 0 + 1 + 2 + 3 + fill + - + True - False - 12 - - - - True - _Room: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - entry_room - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - Enter the room name to join here or click on one or more rooms in the list. - True - True - True - 0 - - True - * - True - 32 - - - 0 - True - True - - + Enter the server which hosts the room, or leave it empty if the room is on the current account's server + True + True + True + 0 + + True + * + False + 25 - 0 - True - True + 1 + 2 + 1 + 2 + - + True - False - 12 - - - - True - _Nickname: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - entry_nick - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - + True + Re_fresh + True + GTK_RELIEF_NORMAL + True + False + False + + + 2 + 3 + 1 + 2 + fill + + + - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - + + + True + Enter the room name to join here or click on one or more rooms in the list. + True + True + True + 0 + + True + * + True + 32 - 0 - True - True + 1 + 3 + 2 + 3 + 0 - False - False + True + True diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c index 213e5c6b..17e2fcb5 100644 --- a/libempathy/empathy-tp-contact-list.c +++ b/libempathy/empathy-tp-contact-list.c @@ -1654,6 +1654,9 @@ tp_contact_list_start_avatar_requests (EmpathyTpContactList *list) priv = GET_PRIV (list); + empathy_debug (DEBUG_DOMAIN, "Start avatar requests, queue size: %d", + n_avatar_requests); + while (n_avatar_requests < MAX_AVATAR_REQUESTS && priv->avatar_requests_queue) { data = g_slice_new (TpContactListAvatarRequestData); @@ -1664,6 +1667,7 @@ tp_contact_list_start_avatar_requests (EmpathyTpContactList *list) priv->avatar_requests_queue = g_list_remove (priv->avatar_requests_queue, priv->avatar_requests_queue->data); + empathy_debug (DEBUG_DOMAIN, "Calling RequestAvatar async"); tp_conn_iface_avatars_request_avatar_async (priv->avatars_iface, data->handle, (tp_conn_iface_avatars_request_avatar_reply) @@ -1711,6 +1715,10 @@ tp_contact_list_request_avatar_cb (DBusGProxy *proxy, } else { EmpathyAvatar *avatar; + empathy_debug (DEBUG_DOMAIN, "Avatar received for %s (%d)", + empathy_contact_get_id (contact), + data->handle); + avatar = empathy_avatar_new (avatar_data->data, avatar_data->len, mime_type); -- 2.39.2