+
+
+static void
+modest_tny_msg_actions_xfer (TnyHeader *header, TnyFolder *folder,
+ gboolean delete_original)
+{
+ TnyFolder *src_folder;
+ TnyList *headers;
+
+ src_folder = tny_header_get_folder (header);
+ headers = tny_simple_list_new ();
+
+ /* Move */
+ tny_list_prepend (headers, G_OBJECT (header));
+ tny_folder_transfer_msgs (src_folder, headers, folder, delete_original);
+
+ /* Free */
+ g_object_unref (headers);
+ g_object_unref (folder);
+}
+
+void
+modest_tny_msg_actions_copy (TnyHeader *header, TnyFolder *folder)
+{
+ g_return_if_fail (TNY_IS_HEADER (header));
+ g_return_if_fail (TNY_IS_FOLDER (folder));
+
+ modest_tny_msg_actions_xfer (header, folder, FALSE);
+}
+
+void
+modest_tny_msg_actions_move (TnyHeader *header, TnyFolder *folder)
+{
+ g_return_if_fail (TNY_IS_HEADER (header));
+ g_return_if_fail (TNY_IS_FOLDER (folder));
+
+ modest_tny_msg_actions_xfer (header, folder, TRUE);
+}
+
+void
+modest_tny_msg_actions_remove (TnyHeader *header)
+{
+ TnyFolder *folder;
+
+ g_return_if_fail (TNY_IS_HEADER (header));
+
+ folder = tny_header_get_folder (header);
+
+ /* Remove */
+ tny_folder_remove_msg (folder, header);
+ tny_folder_expunge (folder);
+
+ /* Free */
+ g_object_unref (folder);
+}