#include "modest-tny-platform-factory.h"
#include "modest-platform.h"
#include <tny-mime-part.h>
+#include <tny-camel-folder.h>
+#include <tny-camel-imap-folder.h>
+#include <tny-camel-pop-folder.h>
#ifdef MODEST_PLATFORM_MAEMO
#include "maemo/modest-osso-state-saving.h"
* or from the message view window: */
header_list = get_selected_headers (win);
if (!header_list) return;
-
+
/* Check if any of the headers are already opened, or in the process of being opened */
if (MODEST_IS_MAIN_WINDOW (win)) {
gboolean found;
GList *sel_list = NULL, *tmp = NULL;
GtkTreeRowReference *row_reference = NULL;
GtkTreePath *next_path = NULL;
+ TnyFolder *folder = NULL;
+ GError *err = NULL;
/* Find last selected row */
if (MODEST_IS_MAIN_WINDOW (win)) {
gtk_tree_row_reference_free (row_reference);
}
+ /* Get folder from first header and sync it */
+ iter = tny_list_create_iterator (header_list);
+ header = TNY_HEADER (tny_iterator_get_current (iter));
+ folder = tny_header_get_folder (header);
+ if (TNY_IS_CAMEL_IMAP_FOLDER (folder))
+/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* FALSE --> don't expunge *\/ */
+ tny_folder_sync (folder, FALSE, &err); /* FALSE --> don't expunge */
+/* else if (TNY_IS_CAMEL_POP_FOLDER (folder)) */
+/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* TRUE --> dont expunge *\/ */
+/* tny_folder_sync (folder, TRUE, &err); /\* TRUE --> expunge *\/ */
+ else
+ /* local folders */
+/* tny_folder_sync_async(folder, TRUE, NULL, NULL, NULL); /\* TRUE --> expunge *\/ */
+ tny_folder_sync (folder, TRUE, &err); /* TRUE --> expunge */
+
+ if (err != NULL) {
+ printf ("DEBUG: %s: Error: code=%d, text=%s\n", __FUNCTION__, err->code, err->message);
+ g_error_free(err);
+ }
+
+ g_object_unref (header);
+ g_object_unref (iter);
+ g_object_unref (folder);
+
/* Update toolbar dimming state */
modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
gboolean finished = FALSE;
gint result;
gchar *folder_name = NULL, *suggested_name = NULL;
+ const gchar *proto_str = NULL;
+ TnyAccount *account;
+
+ if (TNY_IS_ACCOUNT (parent_folder))
+ account = g_object_ref (parent_folder);
+ else
+ account = tny_folder_get_account (TNY_FOLDER (parent_folder));
+ proto_str = tny_account_get_proto (TNY_ACCOUNT (account));
+
+ if (proto_str && modest_protocol_info_get_transport_store_protocol (proto_str) ==
+ MODEST_PROTOCOL_STORE_POP) {
+ finished = TRUE;
+ hildon_banner_show_information (NULL, NULL, _("mail_in_ui_folder_create_error"));
+ }
+ g_object_unref (account);
/* Run the new folder dialog */
while (!finished) {
modest_ui_actions_on_delete_folder (GtkAction *action,
ModestMainWindow *main_window)
{
+ GtkWidget *folder_view;
g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
delete_folder (main_window, FALSE);
+ folder_view = modest_main_window_get_child_widget (main_window,
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ if (!folder_view)
+ return;
+ modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (folder_view));
}
void
{
TnyList *headers = NULL;
gint response = 0;
+ TnyAccount *dst_account = NULL;
+ const gchar *proto_str = NULL;
+ gboolean dst_is_pop = FALSE;
if (!TNY_IS_FOLDER (dst_folder)) {
modest_platform_information_banner (GTK_WIDGET (win),
return;
}
+ dst_account = tny_folder_get_account (TNY_FOLDER (dst_folder));
+ proto_str = tny_account_get_proto (dst_account);
+ dst_is_pop = (modest_protocol_info_get_transport_store_protocol (proto_str) ==
+ MODEST_PROTOCOL_STORE_POP);
+ g_object_unref (dst_account);
+
/* Get selected headers */
headers = get_selected_headers (MODEST_WINDOW (win));
+ if (dst_is_pop) {
+ modest_platform_information_banner (GTK_WIDGET (win),
+ NULL,
+ ngettext("mail_in_ui_folder_move_target_error",
+ "mail_in_ui_folder_move_targets_error",
+ tny_list_get_length (headers)));
+ g_object_unref (headers);
+ return;
+ }
+
/* Ask for user confirmation */
response = msgs_move_to_confirmation (GTK_WINDOW (win),
TNY_FOLDER (dst_folder),
ModestWindow *window)
{
g_return_if_fail (MODEST_IS_WINDOW (window));
-
+
/* Update dimmed */
modest_window_check_dimming_rules_group (window, "ModestMenuDimmingRules");
}