IMAPFlags flags,
GSList *tags,
int do_add);
-static gint imap_cmd_expunge (IMAPSession *session, gboolean force);
+static gint imap_cmd_expunge (IMAPSession *session);
static void imap_path_separator_subst (gchar *str,
gchar separator);
return ok;
}
} /* else we just need to expunge */
- ok = imap_cmd_expunge(session, folder->account->imap_use_trash);
+ ok = imap_cmd_expunge(session);
if (ok != MAILIMAP_NO_ERROR) {
log_warning(LOG_PROTOCOL, _("can't expunge\n"));
g_free(destdir);
return MAILIMAP_NO_ERROR;
}
-static gint imap_cmd_expunge(IMAPSession *session, gboolean do_expunge)
+static gint imap_cmd_expunge(IMAPSession *session)
{
int r;
- if (!do_expunge)
- return MAILIMAP_NO_ERROR;
-
if (prefs_common.work_offline &&
!inc_offline_should_override(FALSE,
_("Claws Mail needs network access in order "
if (session == NULL)
return -1;
- return imap_cmd_expunge(session, TRUE);
+ return imap_cmd_expunge(session);
}
static void imap_path_separator_subst(gchar *str, gchar separator)
return ok;
}
- ok = imap_cmd_expunge(session, folder->account->imap_use_trash);
+ ok = imap_cmd_expunge(session);
if (ok != MAILIMAP_NO_ERROR) {
log_warning(LOG_PROTOCOL, _("can't expunge\n"));
GtkWidget *draft_folder_entry;
GtkWidget *trash_folder_checkbtn;
GtkWidget *trash_folder_entry;
- GtkWidget *imap_use_trash_checkbtn;
} AdvancedPage;
static BasicPage basic_page;
&advanced_page.trash_folder_entry,
prefs_set_data_from_entry, prefs_set_entry},
- {"imap_use_trash", "TRUE", &tmp_ac_prefs.imap_use_trash, P_BOOL,
- &advanced_page.imap_use_trash_checkbtn,
- prefs_set_data_from_toggle, prefs_set_toggle},
-
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
GtkWidget *draft_folder_entry;
GtkWidget *trash_folder_checkbtn;
GtkWidget *trash_folder_entry;
- GtkWidget *imap_use_trash_checkbtn;
GtkSizeGroup *size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
#define PACK_HBOX(hbox) \
gtk_box_pack_start (GTK_BOX (hbox1), entry_tunnelcmd, TRUE, TRUE, 0);
SET_TOGGLE_SENSITIVITY (checkbtn_tunnelcmd, entry_tunnelcmd);
#endif
- PACK_HBOX (hbox1);
- PACK_CHECK_BUTTON (hbox1, imap_use_trash_checkbtn,
- _("Move deleted mails to trash and expunge immediately"));
- CLAWS_SET_TIP(imap_use_trash_checkbtn,
- _("Moves deleted mails to trash instead of using the \\Deleted flag without expunging."));
#if !GTK_CHECK_VERSION(3, 0, 0)
PACK_CHECK_BUTTON (hbox1, checkbtn_crosspost,
page->draft_folder_entry = draft_folder_entry;
page->trash_folder_checkbtn = trash_folder_checkbtn;
page->trash_folder_entry = trash_folder_entry;
- page->imap_use_trash_checkbtn = imap_use_trash_checkbtn;
tmp_ac_prefs = *ac_prefs;
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_show(advanced_page.tunnelcmd_checkbtn);
gtk_widget_show(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_show(advanced_page.imap_use_trash_checkbtn);
gtk_widget_show(receive_page.imapdir_label);
gtk_widget_show(receive_page.imapdir_entry);
gtk_widget_show(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
#endif
- gtk_widget_hide(advanced_page.imap_use_trash_checkbtn);
gtk_widget_hide(receive_page.imapdir_label);
gtk_widget_hide(receive_page.imapdir_entry);
gtk_widget_hide(receive_page.subsonly_checkbtn);
if (!prefs_common.immediate_exec &&
!folder_has_parent_of_type(summaryview->folder_item, F_TRASH)) {
summary_set_row_marks(summaryview, row);
- } else if (summaryview->folder_item->folder->account && !summaryview->folder_item->folder->account->imap_use_trash) {
- summary_set_row_marks(summaryview, row);
}
debug_print("Message %s/%d is set to delete\n",
msginfo->folder->path, msginfo->msgnum);
START_LONG_OPERATION(summaryview, FALSE);
- if (!summaryview->folder_item->folder->account || summaryview->folder_item->folder->account->imap_use_trash) {
- if (!prefs_common.live_dangerously) {
- gchar *buf = NULL;
- int num = g_list_length(GTK_CMCLIST(summaryview->ctree)->selection);
- buf = g_strdup_printf(ngettext(
- "Do you really want to delete the selected message?",
- "Do you really want to delete the %d selected messages?", num),
- num);
- aval = alertpanel(ngettext("Delete message", "Delete messages", num),
- buf,
- GTK_STOCK_CANCEL, "+"GTK_STOCK_DELETE, NULL);
- g_free(buf);
- if (aval != G_ALERTALTERNATE) {
- END_LONG_OPERATION(summaryview);
- return;
- }
+ if (!prefs_common.live_dangerously) {
+ gchar *buf = NULL;
+ int num = g_list_length(GTK_CMCLIST(summaryview->ctree)->selection);
+ buf = g_strdup_printf(ngettext(
+ "Do you really want to delete the selected message?",
+ "Do you really want to delete the %d selected messages?", num),
+ num);
+ aval = alertpanel(ngettext("Delete message", "Delete messages", num),
+ buf,
+ GTK_STOCK_CANCEL, "+"GTK_STOCK_DELETE, NULL);
+ g_free(buf);
+ if (aval != G_ALERTALTERNATE) {
+ END_LONG_OPERATION(summaryview);
+ return;
}
}
to_folder = summaryview->folder_item->folder->trash;
if (to_folder == NULL || to_folder == summaryview->folder_item
- || folder_has_parent_of_type(summaryview->folder_item, F_TRASH)
- || (summaryview->folder_item->folder->account && !summaryview->folder_item->folder->account->imap_use_trash))
+ || folder_has_parent_of_type(summaryview->folder_item, F_TRASH))
summary_delete(summaryview);
else
summary_move_selected_to(summaryview, to_folder);
if (!prefs_common.immediate_exec) {
summary_set_row_marks(summaryview, row);
- } else if (msginfo->folder->folder->account && !msginfo->folder->folder->account->imap_use_trash) {
- summary_set_row_marks(summaryview, row);
}
debug_print("Message %d is set to move to %s\n",
return TRUE;
}
-static void summary_set_deleted_func(GtkCMCTree *ctree, GtkCMCTreeNode *node,
- gpointer data)
-{
- SummaryView *summaryview = data;
- MsgInfo *msginfo;
-
- msginfo = GTKUT_CTREE_NODE_GET_ROW_DATA(node);
-
- if (msginfo && MSG_IS_MOVE(msginfo->flags)) {
- msginfo->flags.tmp_flags &= ~ MSG_MOVE;
- msginfo->flags.perm_flags |= MSG_DELETED;
- summary_set_row_marks(summaryview, node);
- summaryview->moved--;
- summaryview->deleted++;
- }
-}
-
static gint summary_execute_move(SummaryView *summaryview)
{
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
hooks_register_hook(MSGINFO_UPDATE_HOOKLIST,
summary_update_msg, (gpointer) summaryview);
- if (!summaryview->folder_item->folder->account || summaryview->folder_item->folder->account->imap_use_trash) {
- for (cur = summaryview->mlist; cur != NULL && cur->data != NULL; cur = cur->next)
- procmsg_msginfo_free((MsgInfo **)&(cur->data));
- }
- if (summaryview->folder_item->folder->account && !summaryview->folder_item->folder->account->imap_use_trash) {
- gtk_cmctree_pre_recursive(ctree, NULL, summary_set_deleted_func,
- summaryview);
+ for (cur = summaryview->mlist; cur != NULL && cur->data != NULL; cur = cur->next) {
+ procmsg_msginfo_free((MsgInfo **)&(cur->data));
}
+
g_slist_free(summaryview->mlist);
summaryview->mlist = NULL;
return val;
if (msginfo && MSG_IS_MOVE(msginfo->flags) && msginfo->to_folder) {
summaryview->mlist =
g_slist_prepend(summaryview->mlist, msginfo);
- if (!summaryview->folder_item->folder->account ||
- summaryview->folder_item->folder->account->imap_use_trash) {
- gtk_cmctree_node_set_row_data(ctree, node, NULL);
-
- if (msginfo->msgid && *msginfo->msgid &&
- node == g_hash_table_lookup(summaryview->msgid_table,
- msginfo->msgid))
- g_hash_table_remove(summaryview->msgid_table,
- msginfo->msgid);
- if (prefs_common.thread_by_subject &&
- msginfo->subject && *msginfo->subject &&
- node == subject_table_lookup(summaryview->subject_table,
- msginfo->subject)) {
- subject_table_remove(summaryview->subject_table,
- msginfo->subject);
- }
+ gtk_cmctree_node_set_row_data(ctree, node, NULL);
+
+ if (msginfo->msgid && *msginfo->msgid &&
+ node == g_hash_table_lookup(summaryview->msgid_table,
+ msginfo->msgid))
+ g_hash_table_remove(summaryview->msgid_table,
+ msginfo->msgid);
+ if (prefs_common.thread_by_subject &&
+ msginfo->subject && *msginfo->subject &&
+ node == subject_table_lookup(summaryview->subject_table,
+ msginfo->subject)) {
+ subject_table_remove(summaryview->subject_table,
+ msginfo->subject);
}
}
}
summaryview->mlist = NULL;
}
summaryview->msginfo_update_callback_id =
- hooks_register_hook(MSGINFO_UPDATE_HOOKLIST,
+ hooks_register_hook(MSGINFO_UPDATE_HOOKLIST,
summary_update_msg, (gpointer) summaryview);
}
GSList *cur;
/* search deleting messages and execute */
- if (!summaryview->folder_item->folder->account || summaryview->folder_item->folder->account->imap_use_trash) {
- gtk_cmctree_pre_recursive
- (ctree, NULL, summary_execute_delete_func, summaryview);
- }
+ gtk_cmctree_pre_recursive
+ (ctree, NULL, summary_execute_delete_func, summaryview);
+
if (!summaryview->mlist) return;
hooks_unregister_hook(MSGINFO_UPDATE_HOOKLIST,
summaryview->msginfo_update_callback_id =
hooks_register_hook(MSGINFO_UPDATE_HOOKLIST,
summary_update_msg, (gpointer) summaryview);
- if (!summaryview->folder_item->folder->account || summaryview->folder_item->folder->account->imap_use_trash) {
- for (cur = summaryview->mlist; cur != NULL && cur->data != NULL; cur = cur->next)
+
+ for (cur = summaryview->mlist; cur != NULL && cur->data != NULL; cur = cur->next) {
procmsg_msginfo_free((MsgInfo **)&(cur->data));
}
+
g_slist_free(summaryview->mlist);
summaryview->mlist = NULL;
}