aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-selection-button.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-05-24 10:42:49 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-06-30 00:42:19 +0800
commit8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f (patch)
tree0d8a1bb2e42f4be322274d9a3b87c45e26a59bb9 /mail/em-folder-selection-button.c
parentfcfe3ec2a1c638e1869aeb004bc0d957e92a0778 (diff)
downloadgsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar.gz
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar.bz2
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar.lz
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar.xz
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.tar.zst
gsoc2013-evolution-8decdbc4cb82c5cda0df7f5f251832f3e8f06e4f.zip
Let EMFolderSelector create its own EMFolderTree.
Also, minimize the EMFolderSelector API by removing frivolous wrapper functions and unused functions.
Diffstat (limited to 'mail/em-folder-selection-button.c')
-rw-r--r--mail/em-folder-selection-button.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/mail/em-folder-selection-button.c b/mail/em-folder-selection-button.c
index c18a62e33a..d4ff9a1127 100644
--- a/mail/em-folder-selection-button.c
+++ b/mail/em-folder-selection-button.c
@@ -222,10 +222,10 @@ static void
folder_selection_button_clicked (GtkButton *button)
{
EMFolderSelectionButtonPrivate *priv;
- EMFolderTree *emft;
+ EMFolderSelector *selector;
+ EMFolderTree *folder_tree;
GtkWidget *dialog;
GtkTreeSelection *selection;
- const gchar *uri;
gpointer parent;
priv = EM_FOLDER_SELECTION_BUTTON (button)->priv;
@@ -233,34 +233,34 @@ folder_selection_button_clicked (GtkButton *button)
parent = gtk_widget_get_toplevel (GTK_WIDGET (button));
parent = gtk_widget_is_toplevel (parent) ? parent : NULL;
- emft = (EMFolderTree *) em_folder_tree_new (priv->backend);
- emu_restore_folder_tree_state (emft);
+ dialog = em_folder_selector_new (
+ parent, priv->backend, EM_FOLDER_SELECTOR_CAN_CREATE,
+ priv->title, priv->caption, NULL);
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (emft));
+ selector = EM_FOLDER_SELECTOR (dialog);
+ folder_tree = em_folder_selector_get_folder_tree (selector);
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_tree));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
em_folder_tree_set_excluded (
- emft, EMFT_EXCLUDE_NOSELECT |
- EMFT_EXCLUDE_VIRTUAL | EMFT_EXCLUDE_VTRASH);
+ folder_tree,
+ EMFT_EXCLUDE_NOSELECT |
+ EMFT_EXCLUDE_VIRTUAL |
+ EMFT_EXCLUDE_VTRASH);
- dialog = em_folder_selector_new (
- parent, emft, EM_FOLDER_SELECTOR_CAN_CREATE,
- priv->title, priv->caption, NULL);
-
- em_folder_selector_set_selected (
- EM_FOLDER_SELECTOR (dialog), priv->uri);
+ em_folder_tree_set_selected (folder_tree, priv->uri, FALSE);
- if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK)
- goto exit;
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
+ const gchar *uri;
- uri = em_folder_selector_get_selected_uri (
- EM_FOLDER_SELECTOR (dialog));
- em_folder_selection_button_set_selection (
- EM_FOLDER_SELECTION_BUTTON (button), uri);
+ uri = em_folder_selector_get_selected_uri (selector);
+ em_folder_selection_button_set_selection (
+ EM_FOLDER_SELECTION_BUTTON (button), uri);
- g_signal_emit (button, signals[SELECTED], 0);
+ g_signal_emit (button, signals[SELECTED], 0);
+ }
-exit:
gtk_widget_destroy (dialog);
}