diff options
author | Not Zed <NotZed@Ximian.com> | 2002-09-11 12:27:23 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-09-11 12:27:23 +0800 |
commit | fd67fd43ea2c8e85f13f0f858d36d86f2af10e19 (patch) | |
tree | 4d216cc17ac4d45ca9f5e3d9dea0ad0d2b7d5571 /mail/mail-callbacks.c | |
parent | 4081a13ff156379ad380e0456881f707f1e67831 (diff) | |
download | gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar.gz gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar.bz2 gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar.lz gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar.xz gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.tar.zst gsoc2013-evolution-fd67fd43ea2c8e85f13f0f858d36d86f2af10e19.zip |
Handle file uri's too.
2002-09-11 Not Zed <NotZed@Ximian.com>
* component-factory.c (configure_folder_popup): Handle file uri's
too.
* mail-callbacks.c (configure_folder): clear message list before
calling configure folder.
(local_configure_done): completion callback to reset message list
when done.
* mail-local.c (mail_local_reconfigure_folder): changed args to
accept uri, and done callback.
(reconfigure_got_folder): moved code to callback which presents
the configure uri once we have the folder.
svn path=/trunk/; revision=18039
Diffstat (limited to 'mail/mail-callbacks.c')
-rw-r--r-- | mail/mail-callbacks.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index fc5c0f892c..571470ba3c 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -3292,6 +3292,23 @@ manage_subscriptions (BonoboUIComponent *uih, void *user_data, const char *path) /******************** End Subscription Dialog ***************************/ +static void +local_configure_done(const char *uri, CamelFolder *folder, void *data) +{ + FolderBrowser *fb = data; + + if (FOLDER_BROWSER_IS_DESTROYED (fb)) { + gtk_object_unref((GtkObject *)fb); + return; + } + + if (folder == NULL) + folder = fb->folder; + + message_list_set_folder(fb->message_list, folder, FALSE); + gtk_object_unref((GtkObject *)fb); +} + void configure_folder (BonoboUIComponent *uih, void *user_data, const char *path) { @@ -3300,10 +3317,14 @@ configure_folder (BonoboUIComponent *uih, void *user_data, const char *path) if (FOLDER_BROWSER_IS_DESTROYED (fb)) return; - if (fb->uri && strncmp (fb->uri, "vfolder:", 8) == 0) { - vfolder_edit_rule (fb->uri); - } else { - mail_local_reconfigure_folder (fb); + if (fb->uri) { + if (strncmp (fb->uri, "vfolder:", 8) == 0) { + vfolder_edit_rule (fb->uri); + } else { + message_list_set_folder(fb->message_list, NULL, FALSE); + gtk_object_ref((GtkObject *)fb); + mail_local_reconfigure_folder(fb->uri, local_configure_done, fb); + } } } |