aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog11
-rw-r--r--mail/component-factory.c9
-rw-r--r--mail/mail-callbacks.c7
-rw-r--r--mail/mail-callbacks.h2
-rw-r--r--mail/mail-mt.c5
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);