diff options
-rw-r--r-- | mail/ChangeLog | 11 | ||||
-rw-r--r-- | mail/component-factory.c | 9 | ||||
-rw-r--r-- | mail/mail-callbacks.c | 7 | ||||
-rw-r--r-- | mail/mail-callbacks.h | 2 | ||||
-rw-r--r-- | mail/mail-mt.c | 5 |
5 files changed, 24 insertions, 10 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index fa3070465a..f59364ae39 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,14 @@ +2001-06-26 Dan Winship <danw@ximian.com> + + * mail-mt.c (op_status_timeout): Don't pop up a progress dialog to + say "I already finished this a while ago". + + * component-factory.c (storage_create_folder): Pass the path + prefix to folder_created so it can add it to the folder tree in + the right place. + + * mail-callbacks.c (folder_created): Take a path prefix. + 2001-06-26 jacob berkman <jacob@ximian.com> * mail-config.c (mail_config_get_show_preview): make ettore stop diff --git a/mail/component-factory.c b/mail/component-factory.c index 6865f829b9..a862288093 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -633,7 +633,7 @@ storage_create_folder (EvolutionStorage *storage, gpointer user_data) { CamelStore *store = user_data; - char *name; + char *prefix, *name; CamelURL *url; CamelException ex; CamelFolderInfo *fi; @@ -648,9 +648,8 @@ storage_create_folder (EvolutionStorage *storage, camel_exception_init (&ex); if (*parent_physical_uri) { url = camel_url_new (parent_physical_uri, NULL); - if (!url) { + if (!url) return EVOLUTION_STORAGE_ERROR_INVALID_URI; - } fi = camel_store_create_folder (store, url->path + 1, name, &ex); camel_url_free (url); @@ -666,7 +665,9 @@ storage_create_folder (EvolutionStorage *storage, if (camel_store_supports_subscriptions (store)) camel_store_subscribe_folder (store, fi->full_name, NULL); - folder_created (store, fi); + prefix = g_strndup (path, name - path - 1); + folder_created (store, prefix, fi); + g_free (prefix); camel_store_free_folder_info (store, fi); diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index e5e359e219..7c3db7b418 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -1819,15 +1819,12 @@ create_folders (EvolutionStorage *storage, const char *prefix, CamelFolderInfo * } void -folder_created (CamelStore *store, CamelFolderInfo *fi) +folder_created (CamelStore *store, const char *prefix, CamelFolderInfo *fi) { EvolutionStorage *storage; if ((storage = mail_lookup_storage (store))) { - if (fi) - /* FIXME: this won't work. (the "prefix" is wrong) */ - create_folders (storage, "", fi); - + create_folders (storage, prefix, fi); gtk_object_unref (GTK_OBJECT (storage)); } } diff --git a/mail/mail-callbacks.h b/mail/mail-callbacks.h index cb7ee409e4..2d82995180 100644 --- a/mail/mail-callbacks.h +++ b/mail/mail-callbacks.h @@ -113,7 +113,7 @@ void mail_print_preview_msg (MailDisplay *md); void mail_print_msg (MailDisplay *md); /* CamelStore callbacks */ -void folder_created (CamelStore *store, CamelFolderInfo *fi); +void folder_created (CamelStore *store, const char *prefix, CamelFolderInfo *fi); void folder_deleted (CamelStore *store, CamelFolderInfo *fi); void mail_storage_create_folder (EvolutionStorage *storage, CamelStore *store, CamelFolderInfo *fi); diff --git a/mail/mail-mt.c b/mail/mail-mt.c index 2b0ba7f22a..b43af083d2 100644 --- a/mail/mail-mt.c +++ b/mail/mail-mt.c @@ -858,6 +858,11 @@ static int op_status_timeout(void *d) data = msg->priv; if (progress_dialogue == NULL) { + if (data->pc == 100) { + MAIL_MT_UNLOCK(mail_msg_lock); + return FALSE; + } + progress_dialogue = (GtkWindow *)gtk_window_new(GTK_WINDOW_DIALOG); gtk_window_set_title(progress_dialogue, _("Evolution progress")); gtk_window_set_policy(progress_dialogue, 0, 0, 1); |