diff options
-rw-r--r-- | mail/ChangeLog | 7 | ||||
-rw-r--r-- | mail/mail-folder-cache.c | 1 | ||||
-rw-r--r-- | mail/mail-vfolder.c | 40 |
3 files changed, 47 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index cf8714322a..7c632f643c 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,12 @@ 2004-05-18 Not Zed <NotZed@Ximian.com> + * mail-folder-cache.c (folder_changed): no new message test if its + the drafts folder too. + + * mail-vfolder.c (vfolder_adduri_desc): use a nicer, account-based + formatter for folder names. Hmm, that was a good waste of time. + For #55412. + * em-folder-view.c (emfv_list_selection_change): Listen to the tree selection change event directly & proxy out, so we can update the status bar properly. Blah. For #58600. diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index e4d9e327e5..b43f33e62c 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -435,6 +435,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) if (!CAMEL_IS_VEE_FOLDER(folder) && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) + && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS) && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT) && changes && changes->uid_added) new = changes->uid_added->len; diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c index b4c2920c8b..14c5bf2ba3 100644 --- a/mail/mail-vfolder.c +++ b/mail/mail-vfolder.c @@ -202,8 +202,46 @@ static char * vfolder_adduri_desc(struct _mail_msg *mm, int done) { struct _adduri_msg *m = (struct _adduri_msg *)mm; + char *euri, *desc; + + /* Yuck yuck. Lookup the account name and use that to describe the path */ + /* We really need to normalise this across all of camel and evolution :-/ */ + euri = em_uri_from_camel(m->uri); + if (euri) { + CamelURL *url = camel_url_new(euri, NULL); + + if (url) { + const char *loc = NULL; + + if (url->host && !strcmp(url->host, "local") + && url->user && !strcmp(url->user, "local")) { + loc = _("On This Computer"); + } else { + char *uid; + const EAccount *account; + + if (url->user == NULL) + uid = g_strdup(url->host); + else + uid = g_strdup_printf("%s@%s", url->user, url->host); + + account = e_account_list_find(mail_config_get_accounts(), E_ACCOUNT_FIND_UID, uid); + g_free(uid); + if (account != NULL) + loc = account->name; + } + + if (loc && url->path) + desc = g_strdup_printf(_("Updating vFolders for '%s:%s'"), loc, url->path); + camel_url_free(url); + } + g_free(euri); + } + + if (desc == NULL) + desc = g_strdup_printf(_("Updating vFolders for '%s'"), m->uri); - return g_strdup_printf(_("Updating vfolders for uri: %s"), m->uri); + return desc; } static void |