GtkWidget *button_remove;
GtkWidget *button_import;
- GtkWidget *hbox_protocol;
-
GtkWidget *image_type;
GtkWidget *label_name;
GtkWidget *label_type;
static EmpathyAccountSettings * accounts_dialog_model_get_selected_settings (
EmpathyAccountsDialog *dialog);
-static gboolean accounts_dialog_get_settings_iter (
- EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings,
- GtkTreeIter *iter);
-
static void accounts_dialog_model_select_first (EmpathyAccountsDialog *dialog);
static void accounts_dialog_update_settings (EmpathyAccountsDialog *dialog,
EmpathyAccountSettings *settings);
-static void accounts_dialog_add (EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings);
-
static void accounts_dialog_model_set_selected (EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings);
+ TpAccount *account);
static void accounts_dialog_connection_changed_cb (TpAccount *account,
guint old_status,
message_markup = g_markup_printf_escaped ("<i>%s</i>", message);
gtk_label_set_markup (GTK_LABEL (priv->label_status), message_markup);
+
+ gtk_widget_set_tooltip_text (priv->label_status, message);
+
g_free (message_markup);
}
if (response == GTK_RESPONSE_OK)
{
EmpathyAccountSettings *settings;
+ TpAccount *account;
settings = empathy_new_account_dialog_get_settings (
EMPATHY_NEW_ACCOUNT_DIALOG (dialog));
- accounts_dialog_add (self, settings);
- accounts_dialog_model_set_selected (self, settings);
+ /* The newly created account has already been added by
+ * accounts_dialog_account_validity_changed_cb so we just
+ * have to select it. */
+ account = empathy_account_settings_get_account (settings);
+ accounts_dialog_model_set_selected (self, account);
}
gtk_widget_destroy (dialog);
return;
}
- if (empathy_connection_managers_get_cms_num (priv->cms) > 0)
- {
- /* We have no account configured but we have some
- * profiles installed. The user obviously wants to add
- * an account. Click on the Add button for him. */
- accounts_dialog_button_add_clicked_cb (priv->button_add,
- dialog);
- return;
- }
/* No account and no profile, warn the user */
gtk_widget_hide (priv->vbox_details);
* one for the account selected */
gtk_widget_hide (priv->frame_no_protocol);
gtk_widget_show (priv->vbox_details);
- gtk_widget_hide (priv->hbox_protocol);
if (priv->dialog_content)
{
g_object_unref (store);
}
-static gboolean
-accounts_dialog_get_settings_iter (EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings,
- GtkTreeIter *iter)
-{
- GtkTreeView *view;
- GtkTreeModel *model;
- gboolean ok;
- EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
-
- /* Update the status in the model */
- view = GTK_TREE_VIEW (priv->treeview);
- model = gtk_tree_view_get_model (view);
-
- for (ok = gtk_tree_model_get_iter_first (model, iter);
- ok;
- ok = gtk_tree_model_iter_next (model, iter))
- {
- EmpathyAccountSettings *this_settings;
- gboolean equal;
-
- gtk_tree_model_get (model, iter,
- COL_ACCOUNT_SETTINGS, &this_settings,
- -1);
-
- equal = (this_settings == settings);
- g_object_unref (this_settings);
-
- if (equal)
- return TRUE;
- }
-
- return FALSE;
-}
-
static gboolean
accounts_dialog_get_account_iter (EmpathyAccountsDialog *dialog,
TpAccount *account,
ok;
ok = gtk_tree_model_iter_next (model, iter))
{
- EmpathyAccountSettings *settings;
+ TpAccount *this_account;
gboolean equal;
gtk_tree_model_get (model, iter,
- COL_ACCOUNT_SETTINGS, &settings,
+ COL_ACCOUNT, &this_account,
-1);
- equal = empathy_account_settings_has_account (settings, account);
- g_object_unref (settings);
+ equal = (this_account == account);
+ g_object_unref (this_account);
if (equal)
return TRUE;
static void
accounts_dialog_model_set_selected (EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings)
+ TpAccount *account)
{
GtkTreeIter iter;
- if (accounts_dialog_get_settings_iter (dialog, settings, &iter))
+ if (accounts_dialog_get_account_iter (dialog, account, &iter))
select_and_scroll_to_iter (dialog, &iter);
}
return FALSE;
}
-static void
-accounts_dialog_add (EmpathyAccountsDialog *dialog,
- EmpathyAccountSettings *settings)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
- const gchar *name;
- EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
-
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->treeview));
- name = empathy_account_settings_get_display_name (settings);
-
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COL_NAME, name,
- COL_STATUS, TP_CONNECTION_STATUS_DISCONNECTED,
- COL_ACCOUNT_SETTINGS, settings,
- -1);
-}
-
static void
accounts_dialog_connection_changed_cb (TpAccount *account,
guint old_status,
enable_or_disable_account (dialog, account, TRUE);
}
-static void
-accounts_dialog_button_import_clicked_cb (GtkWidget *button,
- EmpathyAccountsDialog *dialog)
+static GtkWidget *
+display_import_dialog (EmpathyAccountsDialog *dialog)
{
+ EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
GtkWidget *import_dialog;
import_dialog = empathy_import_dialog_new (GTK_WINDOW (dialog),
- FALSE);
+ FALSE, priv->cms);
gtk_widget_show (import_dialog);
+
+ return import_dialog;
+}
+
+static void
+accounts_dialog_button_import_clicked_cb (GtkWidget *button,
+ EmpathyAccountsDialog *dialog)
+{
+ display_import_dialog (dialog);
}
static void
"button_add", &priv->button_add,
"button_remove", &priv->button_remove,
"button_import", &priv->button_import,
- "hbox_protocol", &priv->hbox_protocol,
"notebook_account", &priv->notebook_account,
"alignment_loading", &alig,
"accounts_sw", &sw,
TP_CONNECTION_PRESENCE_TYPE_OFFLINE), GTK_ICON_SIZE_SMALL_TOOLBAR);
priv->label_status = gtk_label_new (NULL);
- gtk_label_set_line_wrap (GTK_LABEL (priv->label_status), TRUE);
+ gtk_label_set_ellipsize (GTK_LABEL (priv->label_status), PANGO_ELLIPSIZE_END);
gtk_box_pack_start (GTK_BOX (hbox), priv->throbber, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), priv->image_status, FALSE, FALSE, 0);