static gboolean compose_put_existing_to_front(MsgInfo *info)
{
- GList *compose_list = compose_get_compose_list();
- GList *elem = NULL;
+ const GList *compose_list = compose_get_compose_list();
+ const GList *elem = NULL;
if (compose_list) {
for (elem = compose_list; elem != NULL && elem->data != NULL;
return compose;
}
-GList *compose_get_compose_list(void)
+const GList *compose_get_compose_list(void)
{
return compose_list;
}
gtk_widget_grab_focus(compose->text);
}
+void compose_list_update_folders(FolderItem *old_item, FolderItem *new_item)
+{
+ const GList *compose_list = compose_get_compose_list();
+ const GList *elem = NULL;
+
+ if (compose_list) {
+ for (elem = compose_list; elem != NULL && elem->data != NULL;
+ elem = elem->next) {
+ Compose *c = (Compose*)elem->data;
+
+ if (c->targetinfo && c->targetinfo->folder == old_item)
+ c->targetinfo->folder = new_item;
+
+ if (c->replyinfo && c->replyinfo->folder == old_item)
+ c->replyinfo->folder = new_item;
+
+ if (c->fwdinfo && c->fwdinfo->folder == old_item)
+ c->fwdinfo->folder = new_item;
+
+ if (c->autosaved_draft && c->autosaved_draft->folder == old_item)
+ c->autosaved_draft->folder = new_item;
+
+ }
+ }
+}
+
+
/*
* End of Source.
*/
Compose *compose_reedit (MsgInfo *msginfo,
gboolean batch);
-GList *compose_get_compose_list (void);
+const GList *compose_get_compose_list (void);
void compose_entry_append (Compose *compose,
const gchar *address,
void compose_reopen_exit_drafts (void);
void compose_attach_from_list (Compose *compose, GList *file_list, gboolean free_data);
void compose_check_for_email_account(Compose *compose);
+void compose_list_update_folders(FolderItem *old_item, FolderItem *new_item);
+
#endif /* __COMPOSE_H__ */
folder_item_remove(sub_item);
}
}
-
+
+ compose_list_update_folders(item, NULL);
/* remove myself */
if (item->cache != NULL) {
msgcache_destroy(item->cache);
old_id = folder_item_get_identifier(src);
new_id = folder_item_get_identifier(new_item);
+ compose_list_update_folders(src, new_item);
+
/* if src supports removing, otherwise only copy folder */
if (src->folder->klass->remove_folder != NULL && !copy)
src->folder->klass->remove_folder(src->folder, src);
static gboolean draft_all_messages(void)
{
- GList *compose_list = NULL;
+ const GList *compose_list = NULL;
compose_clear_exit_drafts();
compose_list = compose_get_compose_list();
static void prefs_actions_ok(GtkWidget *widget, gpointer data)
{
MainWindow *mainwin = (MainWindow *) data;
- GList *list;
- GList *iter;
+ const GList *list;
+ const GList *iter;
MessageView *msgview;
Compose *compose;
GtkListStore *store;
void toolbar_toggle(guint action, gpointer data)
{
MainWindow *mainwin = (MainWindow*)data;
- GList *list;
- GList *cur;
+ const GList *list;
+ const GList *cur;
cm_return_if_fail(mainwin != NULL);