aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-callbacks.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-09-11 12:27:23 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-09-11 12:27:23 +0800
commitfd67fd43ea2c8e85f13f0f858d36d86f2af10e19 (patch)
tree4d216cc17ac4d45ca9f5e3d9dea0ad0d2b7d5571 /mail/mail-callbacks.c
parent4081a13ff156379ad380e0456881f707f1e67831 (diff)
downloadgsoc2013-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.c29
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);
+ }
}
}