From e67e130e7203f3bc99013f1814df8b2cff89d72f Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 19 Oct 2007 12:48:29 +0000 Subject: set unsensitive the add button if there is no profile installed and tell 2007-10-19 Xavier Claessens * libempathy-gtk/empathy-profile-chooser.c: * libempathy-gtk/empathy-profile-chooser.h: * libempathy-gtk/empathy-accounts-dialog.c: set unsensitive the add button if there is no profile installed and tell the user to install some connection managers. * libempathy-gtk/empathy-ui-utils.c: Fix indentation. svn path=/trunk/; revision=381 --- ChangeLog | 10 +++++++++ libempathy-gtk/empathy-accounts-dialog.c | 36 +++++++++++++++++++++----------- libempathy-gtk/empathy-profile-chooser.c | 10 +++++++++ libempathy-gtk/empathy-profile-chooser.h | 1 + libempathy-gtk/empathy-ui-utils.c | 2 +- 5 files changed, 46 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 39bd99903..5b8b47b81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-10-19 Xavier Claessens + + * libempathy-gtk/empathy-profile-chooser.c: + * libempathy-gtk/empathy-profile-chooser.h: + * libempathy-gtk/empathy-accounts-dialog.c: set unsensitive the add + button if there is no profile installed and tell the user to install + some connection managers. + + * libempathy-gtk/empathy-ui-utils.c: Fix indentation. + 2007-10-19 Xavier Claessens * libempathy-gtk/empathy-chat-window.c: If EmpathyChat object does not diff --git a/libempathy-gtk/empathy-accounts-dialog.c b/libempathy-gtk/empathy-accounts-dialog.c index cc8ba4f45..914e6d471 100644 --- a/libempathy-gtk/empathy-accounts-dialog.c +++ b/libempathy-gtk/empathy-accounts-dialog.c @@ -240,6 +240,8 @@ accounts_dialog_update_account (EmpathyAccountsDialog *dialog, if (!account) { GtkTreeView *view; GtkTreeModel *model; + GString *string; + gchar *str; gtk_widget_show (dialog->frame_no_account); gtk_widget_hide (dialog->vbox_details); @@ -250,25 +252,32 @@ accounts_dialog_update_account (EmpathyAccountsDialog *dialog, view = GTK_TREE_VIEW (dialog->treeview); model = gtk_tree_view_get_model (view); + if (empathy_profile_chooser_n_profiles (dialog->combobox_profile) > 0) { + string = g_string_new (_("To add a new account, you can click on the " + "'Add' button and a new entry will be created " + "for you to start configuring.")); + } else { + string = g_string_new (_("To add a new account, you first have to " + "install a backend for each protocol " + "you want to use.")); + } + if (gtk_tree_model_iter_n_children (model, NULL) > 0) { gtk_label_set_markup (GTK_LABEL (dialog->label_no_account), _("No Account Selected")); - gtk_label_set_markup (GTK_LABEL (dialog->label_no_account_blurb), - _("To add a new account, you can click on the " - "'Add' button and a new entry will be created " - "for you to start configuring.\n" - "\n" - "If you do not want to add an account, simply " - "click on the account you want to configure in " - "the list on the left.")); + g_string_append (string, _("\n\n" + "If you do not want to add an account, simply " + "click on the account you want to configure in " + "the list on the left.")); } else { gtk_label_set_markup (GTK_LABEL (dialog->label_no_account), _("No Accounts Configured")); - gtk_label_set_markup (GTK_LABEL (dialog->label_no_account_blurb), - _("To add a new account, you can click on the " - "'Add' button and a new entry will be created " - "for you to start configuring.")); } + + str = g_string_free (string, FALSE); + gtk_label_set_markup (GTK_LABEL (dialog->label_no_account_blurb), + str); + g_free (str); } else { McProfile *profile; const gchar *config_ui; @@ -1044,6 +1053,9 @@ empathy_accounts_dialog_show (GtkWindow *parent) dialog->combobox_profile, TRUE, TRUE, 0); gtk_widget_show (dialog->combobox_profile); + if (empathy_profile_chooser_n_profiles (dialog->combobox_profile) <= 0) { + gtk_widget_set_sensitive (dialog->button_add, FALSE); + } /* Set up signalling */ dialog->mc = empathy_mission_control_new (); diff --git a/libempathy-gtk/empathy-profile-chooser.c b/libempathy-gtk/empathy-profile-chooser.c index ae32aff7f..256f95ddd 100644 --- a/libempathy-gtk/empathy-profile-chooser.c +++ b/libempathy-gtk/empathy-profile-chooser.c @@ -55,6 +55,16 @@ empathy_profile_chooser_get_selected (GtkWidget *widget) return profile; } +gint +empathy_profile_chooser_n_profiles (GtkWidget *widget) +{ + GtkTreeModel *model; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + + return gtk_tree_model_iter_n_children (model, NULL); +} + static gint profile_chooser_sort_profile_value (McProfile *profile) { diff --git a/libempathy-gtk/empathy-profile-chooser.h b/libempathy-gtk/empathy-profile-chooser.h index 6a9c405a2..7298c12cc 100644 --- a/libempathy-gtk/empathy-profile-chooser.h +++ b/libempathy-gtk/empathy-profile-chooser.h @@ -29,6 +29,7 @@ G_BEGIN_DECLS GtkWidget * empathy_profile_chooser_new (void); McProfile * empathy_profile_chooser_get_selected (GtkWidget *widget); +gint empathy_profile_chooser_n_profiles (GtkWidget *widget); G_END_DECLS #endif /* __EMPATHY_PROTOCOL_CHOOSER_H__ */ diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index eabdc0a46..16f0116de 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -1259,7 +1259,7 @@ empathy_window_iconify (GtkWindow *window, GtkStatusIcon *status_icon) XChangeProperty (dpy, GDK_WINDOW_XID (gdk_window), gdk_x11_get_xatom_by_name_for_display (gdk_drawable_get_display (gdk_window), - "_NET_WM_ICON_GEOMETRY"), + "_NET_WM_ICON_GEOMETRY"), XA_CARDINAL, 32, PropModeReplace, (guchar *)&data, 4); -- cgit