wizard = GTK_WINDOW (modest_platform_get_account_settings_wizard ());
modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), GTK_WINDOW (wizard), (GtkWindow *) win);
+#ifndef MODEST_TOOLKIT_HILDON2
/* always present a main window in the background
* we do it here, so we cannot end up with two wizards (as this
* function might be called in modest_window_mgr_get_main_window as well */
- if (!win)
+ if (!win)
win = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr(),
TRUE); /* create if not existent */
+#else
+ if (!win) {
+ GList *window_list;
+ ModestWindowMgr *mgr;
+
+ mgr = modest_runtime_get_window_mgr ();
+
+ window_list = modest_window_mgr_get_window_list (mgr);
+ if (window_list == NULL) {
+ win = MODEST_WINDOW (modest_accounts_window_new ());
+ modest_window_mgr_register_window (mgr, win, NULL);
+ gtk_widget_show_all (GTK_WIDGET (win));
- gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (win));
+ win = MODEST_WINDOW (modest_folder_window_new (NULL));
+ modest_window_mgr_register_window (mgr, win, NULL);
+
+ gtk_widget_show_all (GTK_WIDGET (win));
+ } else {
+ g_list_free (window_list);
+ }
+ }
+#endif
+
+ if (win)
+ gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (win));
/* make sure the mainwindow is visible. We need to present the
wizard again to give it the focus back. show_all are needed
error->code == MODEST_MAIL_OPERATION_ERROR_LOW_MEMORY) {
GObject *source = modest_mail_operation_get_source (mail_op);
modest_platform_run_information_dialog (GTK_IS_WINDOW (source) ? GTK_WINDOW (source) : NULL,
- dgettext("ke-recv","memr_ib_operation_disabled"),
+ _KR("memr_ib_operation_disabled"),
TRUE);
g_object_unref (source);
}
if (error && ((error->code == TNY_SERVICE_ERROR_NO_SUCH_MESSAGE) ||
error->code == TNY_SERVICE_ERROR_MESSAGE_NOT_AVAILABLE)) {
- gchar *subject, *msg;
+ gchar *subject, *msg, *format = NULL;
+ TnyAccount *account;
subject = tny_header_dup_subject (header);
if (!subject)
- subject = g_strdup (_("mail_va_no_subject"));;
- msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"),
- subject);
+ subject = g_strdup (_("mail_va_no_subject"));
+
+ account = modest_mail_operation_get_account (mail_op);
+ if (account) {
+ ModestProtocol *protocol;
+ ModestProtocolType proto;
+ proto = modest_tny_account_get_protocol_type (account);
+ protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (), proto);
+ if (protocol)
+ format = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE);
+ g_object_unref (account);
+ }
+
+ if (!format)
+ format = g_strdup (_("emev_ni_ui_imap_message_not_available_in_server"));
+
+ msg = g_strdup_printf (format, subject);
modest_platform_run_information_dialog (NULL, msg, FALSE);
g_free (msg);
+ g_free (format);
g_free (subject);
}
}
static gchar *
-get_info_from_header (TnyHeader *header, gboolean *is_draft)
+get_info_from_header (TnyHeader *header, gboolean *is_draft, gboolean *can_open)
{
TnyFolder *folder;
gchar *account = NULL;
TnyFolderType folder_type = TNY_FOLDER_TYPE_UNKNOWN;
*is_draft = FALSE;
+ *can_open = TRUE;
folder = tny_header_get_folder (header);
/* Gets folder type (OUTBOX headers will be opened in edit window */
if (folder_type == TNY_FOLDER_TYPE_INVALID)
g_warning ("%s: BUG: TNY_FOLDER_TYPE_INVALID", __FUNCTION__);
}
-
+
if (folder_type == TNY_FOLDER_TYPE_OUTBOX) {
TnyTransportAccount *traccount = NULL;
ModestTnyAccountStore *accstore = modest_runtime_get_account_store();
open any message from
outbox which is not in
failed state */
- g_object_unref(traccount);
+ *can_open = FALSE;
}
#endif
}
*is_draft = TRUE; /* Open in editor if the message is in the Drafts folder */
}
+ if (!account) {
+ TnyAccount *acc = tny_folder_get_account (folder);
+ if (acc) {
+ account =
+ g_strdup (modest_tny_account_get_parent_modest_account_name_for_server_account (acc));
+ g_object_unref (acc);
+ }
+ }
+
g_object_unref (folder);
return account;
ModestWindow *win = NULL;
gchar *account = NULL;
gboolean open_in_editor = FALSE;
+ gboolean can_open;
OpenMsgHelper *helper = (OpenMsgHelper *) user_data;
-
+
/* Do nothing if there was any problem with the mail
operation. The error will be shown by the error_handler of
the mail operation */
/* Mark header as read */
headers_action_mark_as_read (header, MODEST_WINDOW(parent_win), NULL);
- account = get_info_from_header (header, &open_in_editor);
+ account = get_info_from_header (header, &open_in_editor, &can_open);
/* Get account */
if (!account)
account = g_strdup (modest_window_get_active_account (MODEST_WINDOW (parent_win)));
if (!account)
account = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr());
-
+
if (open_in_editor) {
ModestAccountMgr *mgr = modest_runtime_get_account_mgr ();
gchar *from_header = NULL, *acc_name;
} else {
gchar *uid = modest_tny_folder_get_header_unique_id (header);
- if (helper->rowref && helper->model) {
+ if (helper->rowref && helper->model) {
win = modest_msg_view_window_new_with_header_model (msg, account, (const gchar*) uid,
helper->model, helper->rowref);
} else {
}
g_free (uid);
}
-
+
/* Register and show new window */
if (win != NULL) {
mgr = modest_runtime_get_window_mgr ();
if (is_memory_full_error (err))
modest_platform_information_banner (parent_window,
- NULL, dgettext("ke-recv",
- "cerm_device_memory_full"));
+ NULL, _KR("cerm_device_memory_full"));
else if (err->code == TNY_SYSTEM_ERROR_MEMORY)
/* If the account was created in memory full
conditions then tinymail won't be able to
if (status != MODEST_MAIL_OPERATION_STATUS_CANCELED) {
if (is_memory_full_error ((GError *) error)) {
modest_platform_information_banner ((GtkWidget *) win,
- NULL, dgettext("ke-recv",
- "cerm_device_memory_full"));
+ NULL, _KR("cerm_device_memory_full"));
} else if (error->code == TNY_SYSTEM_ERROR_MEMORY) {
modest_platform_information_banner ((GtkWidget *) win,
NULL, _("emev_ui_imap_inbox_select_error"));
} else if (error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_FILE_IO) {
modest_platform_information_banner ((GtkWidget *) win,
- NULL, dgettext ("hildon-common-strings", "sfil_ni_unable_to_open_file_not_found"));
+ NULL, _CS ("sfil_ni_unable_to_open_file_not_found"));
} else if (user_data) {
modest_platform_information_banner ((GtkWidget *) win,
NULL, user_data);
account = tny_folder_get_account (folder);
g_object_unref (folder);
}
-
return account;
}
gchar *error_msg;
ModestProtocolType proto;
TnyConnectionStatus status;
- gboolean show_open_draft = FALSE;
OpenMsgHelper *helper = NULL;
+ ModestProtocol *protocol;
+ ModestProtocolRegistry *protocol_registry;
+ gchar *subject;
helper = (OpenMsgHelper *) user_data;
modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (), helper->header);
/* Free the helper */
open_msg_helper_destroyer (helper);
-
+
/* In memory full conditions we could get this error here */
check_memory_full_error ((GtkWidget *) parent_window, err);
-
+
goto clean;
}
if (proto == MODEST_PROTOCOL_REGISTRY_TYPE_INVALID) {
proto = MODEST_PROTOCOLS_STORE_MAILDIR;
}
-
- ModestProtocol *protocol;
- ModestProtocolRegistry *protocol_registry;
- gchar *subject;
-
+
protocol_registry = modest_runtime_get_protocol_registry ();
subject = tny_header_dup_subject (helper->header);
error_msg = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE, subject);
if (subject)
g_free (subject);
-
+
if (error_msg == NULL) {
error_msg = g_strdup (_("mail_ni_ui_folder_get_msg_folder_error"));
}
+#ifndef MODEST_TOOLKIT_HILDON2
+ gboolean show_open_draft = FALSE;
if (modest_protocol_registry_protocol_type_has_tag (protocol_registry,
proto,
MODEST_PROTOCOL_REGISTRY_LOCAL_STORE_PROTOCOLS)) {
show_open_draft = (folder_type == TNY_FOLDER_TYPE_DRAFTS);
g_object_unref (folder);
}
+#endif
#ifdef MODEST_TOOLKIT_HILDON2
gboolean is_draft;
- gchar *account_name = get_info_from_header (helper->header, &is_draft);
+ gboolean can_open;
+ gchar *account_name = get_info_from_header (helper->header, &is_draft, &can_open);
+
+ if (!can_open) {
+ modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (), helper->header);
+ g_free (account_name);
+ open_msg_helper_destroyer (helper);
+ goto clean;
+ }
if (!is_draft) {
ModestWindow *window;
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
+
+#ifndef MODEST_TOOLKIT_HILDON2
if (show_open_draft) {
helper->banner_info = g_slice_new (OpenMsgBannerInfo);
-#ifdef MODEST_TOOLKIT_HILDON2
- helper->banner_info->message = g_strdup (_("mail_me_opening"));
-#else
helper->banner_info->message = g_strdup (_("mail_ib_opening_draft_message"));
-#endif
helper->banner_info->banner = NULL;
helper->banner_info->idle_handler = g_timeout_add (500, open_msg_banner_idle,
helper->banner_info);
}
+#endif
+
TnyList *headers;
headers = TNY_LIST (tny_simple_list_new ());
GtkWidget *header_view = NULL;
OpenMsgHelper *helper;
ModestWindow *window;
-
+
g_return_if_fail (header != NULL && rowref != NULL);
mgr = modest_runtime_get_window_mgr ();
window = NULL;
found = modest_window_mgr_find_registered_header (mgr, header, &window);
-
+
/* Do not open again the message and present the
window to the user */
if (found) {
if (error && error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_LOW_MEMORY) {
modest_platform_run_information_dialog (GTK_WINDOW (win),
- dgettext("ke-recv","memr_ib_operation_disabled"),
+ _KR("memr_ib_operation_disabled"),
TRUE);
return;
}
expected_size > available_disk) {
modest_platform_information_banner (NULL, NULL,
- dgettext("ke-recv",
- "cerm_device_memory_full"));
+ _KR("cerm_device_memory_full"));
return FALSE;
}
if (expected_size > MODEST_MAX_ATTACHMENT_SIZE) {
modest_platform_run_information_dialog (
GTK_WINDOW(edit_window),
- dgettext("ke-recv","memr_ib_operation_disabled"),
+ _KR("memr_ib_operation_disabled"),
TRUE);
return FALSE;
}
g_object_unref (source_win);
}
+typedef struct {
+ gchar *folder_name;
+ TnyFolderStore *parent;
+} CreateFolderConnect;
+
+static void
+do_create_folder_performer (gboolean canceled,
+ GError *err,
+ GtkWindow *parent_window,
+ TnyAccount *account,
+ gpointer user_data)
+{
+ CreateFolderConnect *helper = (CreateFolderConnect *) user_data;
+ ModestMailOperation *mail_op;
+
+ if (canceled || err) {
+ /* In memory full conditions we could get this error here */
+ check_memory_full_error ((GtkWidget *) parent_window, err);
+ goto frees;
+ }
+
+ mail_op = modest_mail_operation_new ((GObject *) parent_window);
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+ mail_op);
+ modest_mail_operation_create_folder (mail_op,
+ helper->parent,
+ (const gchar *) helper->folder_name,
+ do_create_folder_cb,
+ g_strdup (helper->folder_name));
+ g_object_unref (mail_op);
+
+ frees:
+ if (helper->parent)
+ g_object_unref (helper->parent);
+ if (helper->folder_name)
+ g_free (helper->folder_name);
+ g_slice_free (CreateFolderConnect, helper);
+}
+
+
static void
do_create_folder (GtkWindow *parent_window,
TnyFolderStore *suggested_parent,
&parent_folder);
if (result == GTK_RESPONSE_ACCEPT && parent_folder) {
- ModestMailOperation *mail_op;
+ CreateFolderConnect *helper = (CreateFolderConnect *) g_slice_new0 (CreateFolderHelper);
+ helper->folder_name = g_strdup (folder_name);
+ helper->parent = g_object_ref (parent_folder);
- mail_op = modest_mail_operation_new ((GObject *) parent_window);
- modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
- mail_op);
- modest_mail_operation_create_folder (mail_op,
- parent_folder,
- (const gchar *) folder_name,
- do_create_folder_cb,
- folder_name);
- g_object_unref (mail_op);
+ modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
+ TRUE,
+ parent_folder,
+ do_create_folder_performer,
+ helper);
}
+ if (folder_name)
+ g_free (folder_name);
if (parent_folder)
g_object_unref (parent_folder);
}
static void
-create_folder_performer (gboolean canceled,
- GError *err,
- GtkWindow *parent_window,
- TnyAccount *account,
- gpointer user_data)
-{
- TnyFolderStore *parent_folder = TNY_FOLDER_STORE (user_data);
-
- if (canceled || err) {
- /* In memory full conditions we could get this error here */
- check_memory_full_error ((GtkWidget *) parent_window, err);
- goto frees;
- }
-
- /* Run the new folder dialog */
- do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
-
- frees:
- g_object_unref (parent_folder);
-}
-
-static void
modest_ui_actions_create_folder(GtkWidget *parent_window,
GtkWidget *folder_view)
{
TnyFolderStore *parent_folder;
#ifdef MODEST_TOOLKIT_HILDON2
- const gchar *active_account;
- TnyAccount *account;
ModestTnyAccountStore *acc_store;
- /* In hildon 2.2 we use the current account as default parent */
acc_store = modest_runtime_get_account_store ();
- active_account = modest_window_get_active_account (MODEST_WINDOW (parent_window));
- if (active_account) {
- account = modest_tny_account_store_get_server_account (acc_store,
- active_account,
- TNY_ACCOUNT_TYPE_STORE);
- parent_folder = TNY_FOLDER_STORE (account);
- } else {
- parent_folder = (TnyFolderStore *)
- modest_tny_account_store_get_local_folders_account (acc_store);
- }
+
+ parent_folder = (TnyFolderStore *)
+ modest_tny_account_store_get_local_folders_account (acc_store);
#else
parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
#endif
- if (parent_folder) {
- /* The parent folder will be freed in the callback */
- modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
- TRUE,
- parent_folder,
- create_folder_performer,
- parent_folder);
- }
+ if (parent_folder)
+ do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
}
void
message is opened for example */
message = _("emev_ni_internal_error");
} else {
- message = _("emev_ib_ui_imap_unable_to_rename");
+ message = _CS("ckdg_ib_unable_to_remove");
}
/* We don't set a parent for the dialog because the dialog
modest_ui_actions_move_folder_error_handler (ModestMailOperation *mail_op,
gpointer user_data)
{
+ GObject *win = NULL;
+
+#ifndef MODEST_TOOLKIT_HILDON2
ModestWindow *main_window = NULL;
-
+
/* Disable next automatic folder selection */
main_window = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (),
FALSE); /* don't create */
if (main_window) {
- GObject *win = NULL;
GtkWidget *folder_view = NULL;
-
+
folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (main_window),
MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
modest_folder_view_disable_next_folder_selection (MODEST_FOLDER_VIEW(folder_view));
-
+
if (user_data && TNY_IS_FOLDER (user_data)) {
modest_folder_view_select_folder (MODEST_FOLDER_VIEW (folder_view),
TNY_FOLDER (user_data), FALSE);
}
-
- /* Show notification dialog only if the main window exists */
- win = modest_mail_operation_get_source (mail_op);
- modest_platform_run_information_dialog ((GtkWindow *) win,
- _("mail_in_ui_folder_move_target_error"),
- FALSE);
- if (win)
- g_object_unref (win);
}
+#endif
+ /* Show notification dialog only if the main window exists */
+ win = modest_mail_operation_get_source (mail_op);
+ modest_platform_run_information_dialog ((GtkWindow *) win,
+ _("mail_in_ui_folder_move_target_error"),
+ FALSE);
+ if (win)
+ g_object_unref (win);
}
static void
}
MoveToHelper *helper = g_new0 (MoveToHelper, 1);
+#ifndef MODEST_TOOLKIT_HILDON2
helper->banner = modest_platform_animation_banner (GTK_WIDGET (parent_window), NULL,
_CS("ckct_nw_pasting"));
if (helper->banner != NULL) {
g_object_ref (helper->banner);
gtk_widget_show (GTK_WIDGET(helper->banner));
}
+#endif
/* Clean folder on header view before moving it */
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (info->folder_view));
gtk_tree_selection_unselect_all (sel);
!MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (dst_folder) &&
!modest_tny_account_is_memory_card_account (TNY_ACCOUNT (dst_folder))) {
do_xfer = FALSE;
+ /* Show an error */
+ modest_platform_run_information_dialog (win,
+ _("mail_in_ui_folder_move_target_error"),
+ FALSE);
} else if (!TNY_IS_FOLDER (src_folder)) {
g_warning ("%s: src_folder is not a TnyFolder.\n", __FUNCTION__);
do_xfer = FALSE;
if (do_xfer) {
MoveFolderInfo *info = g_new0 (MoveFolderInfo, 1);
DoubleConnectionInfo *connect_info = g_slice_new (DoubleConnectionInfo);
-
+
info->src_folder = g_object_ref (src_folder);
info->dst_folder = g_object_ref (dst_folder);
info->delete_original = TRUE;
TNY_FOLDER_STORE (src_folder),
connect_info);
}
+
/* Frees */
g_object_unref (src_folder);
}
gboolean
modest_ui_actions_on_edit_mode_move_to (ModestWindow *win)
{
- GtkWidget *dialog = NULL, *folder_view = NULL;
- ModestMainWindow *main_window;
+ GtkWidget *dialog = NULL;
MoveToInfo *helper = NULL;
+ TnyList *list_to_move;
g_return_val_if_fail (MODEST_IS_WINDOW (win), FALSE);
+#ifndef MODEST_TOOLKIT_HILDON2
/* Get the main window if exists */
+ ModestMainWindow *main_window;
if (MODEST_IS_MAIN_WINDOW (win))
main_window = MODEST_MAIN_WINDOW (win);
else
MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
else
folder_view = NULL;
+#endif
+
+ list_to_move = modest_platform_get_list_to_move (MODEST_WINDOW (win));
+
+ if (!list_to_move)
+ return FALSE;
+
+ if (tny_list_get_length (list_to_move) < 1) {
+ g_object_unref (list_to_move);
+ return FALSE;
+ }
/* Create and run the dialog */
- dialog = create_move_to_dialog (GTK_WINDOW (win), folder_view);
+ dialog = create_move_to_dialog (GTK_WINDOW (win), NULL);
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
GTK_WINDOW (dialog),
(GtkWindow *) win);
/* Create helper */
helper = g_slice_new0 (MoveToInfo);
- helper->list = modest_platform_get_list_to_move (MODEST_WINDOW (win));
+ helper->list = list_to_move;
helper->win = win;
/* Listen to response signal */
message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"), server_name);
break;
case TNY_SERVICE_ERROR_SEND:
- message = g_strdup (dgettext("hildon-common-strings", "sfil_ib_unable_to_send"));
+ message = g_strdup (_CS("sfil_ib_unable_to_send"));
break;
case TNY_SERVICE_ERROR_UNAVAILABLE:
message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"), server_name);
default:
g_warning ("%s: unexpected ERROR %d",
__FUNCTION__, err->code);
- message = g_strdup (dgettext("hildon-common-strings", "sfil_ib_unable_to_send"));
+ message = g_strdup (_CS("sfil_ib_unable_to_send"));
break;
}
TnyFolderStore *selected_folder = NULL;
TnyFolderType folder_type;
+
+ /* TODO: this does not work in Fremantle */
mgr = modest_runtime_get_window_mgr ();
main_window = MODEST_MAIN_WINDOW (modest_window_mgr_get_main_window (mgr,
FALSE));/* don't create */