#include <tny-device.h>
#include <tny-merge-folder.h>
#include <widgets/modest-toolkit-utils.h>
+#include <tny-camel-bs-msg.h>
+#include <tny-camel-bs-mime-part.h>
#include <gtkhtml/gtkhtml.h>
gchar *mailbox;
GtkWidget *parent_window;
TnyHeader *header;
+ TnyList *parts;
} ReplyForwardHelper;
typedef struct _MoveToHelper {
static void reply_forward (ReplyForwardAction action, ModestWindow *win);
-#ifndef MODEST_TOOLKIT_HILDON2
-static void folder_refreshed_cb (ModestMailOperation *mail_op,
- TnyFolder *folder,
- gpointer user_data);
-
-static void on_send_receive_finished (ModestMailOperation *mail_op,
- gpointer user_data);
-#endif
-
static gint header_list_count_uncached_msgs (TnyList *header_list);
static gboolean connect_to_get_msg (ModestWindow *win,
}
}
- if (win)
- gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (win));
+ if (win) {
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ gtk_window_set_transient_for (GTK_WINDOW (wizard), toplevel);
+ }
/* make sure the mainwindow is visible. We need to present the
wizard again to give it the focus back. show_all are needed
void
modest_ui_actions_on_about (GtkAction *action, ModestWindow *win)
{
+ GtkWindow *toplevel;
GtkWidget *about;
const gchar *authors[] = {
"Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>",
"uses the tinymail email framework written by Philip van Hoof"));
gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG(about), authors);
gtk_about_dialog_set_website (GTK_ABOUT_DIALOG(about), "http://modest.garage.maemo.org");
- gtk_window_set_transient_for (GTK_WINDOW (about), GTK_WINDOW (win));
+
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ gtk_window_set_transient_for (GTK_WINDOW (about), toplevel);
gtk_window_set_modal (GTK_WINDOW (about), TRUE);
gtk_dialog_run (GTK_DIALOG (about));
}
}
-#ifndef MODEST_TOOLKIT_HILDON2
-static GtkTreeRowReference *
-get_next_after_selected_headers (ModestHeaderView *header_view)
-{
- GtkTreeSelection *sel;
- GList *selected_rows, *node;
- GtkTreePath *path;
- GtkTreeRowReference *result;
- GtkTreeModel *model;
-
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
- sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (header_view));
- selected_rows = gtk_tree_selection_get_selected_rows (sel, NULL);
-
- if (selected_rows == NULL)
- return NULL;
-
- node = g_list_last (selected_rows);
- path = gtk_tree_path_copy ((GtkTreePath *) node->data);
- gtk_tree_path_next (path);
-
- result = gtk_tree_row_reference_new (model, path);
-
- gtk_tree_path_free (path);
- g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL);
- g_list_free (selected_rows);
-
- return result;
-}
-#endif
-
static void
headers_action_mark_as_read (TnyHeader *header,
ModestWindow *win,
gint response;
ModestWindowMgr *mgr;
gboolean retval = TRUE;
+ GtkWindow *toplevel;
g_return_val_if_fail (MODEST_IS_WINDOW(win), FALSE);
tny_list_get_length(header_list)), desc);
/* Confirmation dialog */
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
- message);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ response = modest_platform_run_confirmation_dialog (toplevel, message);
if (response == GTK_RESPONSE_OK) {
GtkTreeSelection *sel = NULL;
return;
} else {
/* Show the list of accounts */
- GtkWindow *account_win = GTK_WINDOW (modest_account_view_window_new ());
+ GtkWindow *win_toplevel, *acc_toplevel;
+ GtkWidget *account_win;
+
+ account_win = modest_account_view_window_new ();
+ acc_toplevel = (GtkWindow *) gtk_widget_get_toplevel (account_win);
/* The accounts dialog must be modal */
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (account_win), (GtkWindow *) win);
- modest_utils_show_dialog_and_forget (GTK_WINDOW (win), GTK_DIALOG (account_win));
+ win_toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), acc_toplevel, win_toplevel);
+ modest_utils_show_dialog_and_forget (win_toplevel, GTK_DIALOG (account_win));
}
}
}
if (expected_size > MODEST_MAX_ATTACHMENT_SIZE) {
- modest_platform_run_information_dialog (
- GTK_WINDOW(win),
- _("mail_ib_error_attachment_size"),
- TRUE);
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ modest_platform_run_information_dialog (toplevel,
+ _("mail_ib_error_attachment_size"),
+ TRUE);
return;
}
error = modest_mail_operation_get_error (mail_op);
if (error && error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_LOW_MEMORY) {
+ GtkWindow *toplevel = NULL;
GObject *source = modest_mail_operation_get_source (mail_op);
- modest_platform_run_information_dialog (GTK_IS_WINDOW (source) ? GTK_WINDOW (source) : NULL,
+
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (source));
+ modest_platform_run_information_dialog (toplevel,
_KR("memr_ib_operation_disabled"),
TRUE);
g_object_unref (source);
} else if (error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_FILE_IO) {
modest_platform_information_banner ((GtkWidget *) win,
- NULL, _CS ("sfil_ni_unable_to_open_file_not_found"));
+ NULL, _CS_UNABLE_TO_OPEN_FILE_NOT_FOUND);
} else if (user_data) {
modest_platform_information_banner ((GtkWidget *) win,
NULL, user_data);
if (found) {
if (window) {
#ifndef MODEST_TOOLKIT_HILDON2
- gtk_window_present (GTK_WINDOW (window));
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+ gtk_window_present (toplevel);
#endif
} else {
/* the header has been registered already, we don't do
/* Allways download if we are online. */
if (!tny_device_is_online (modest_runtime_get_device ())) {
gint response;
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
/* If ask for user permission to download the messages */
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+ response = modest_platform_run_confirmation_dialog (toplevel,
_("mcen_nc_get_msg"));
/* End if the user does not want to continue */
create_reply_forward_helper (ReplyForwardAction action,
ModestWindow *win,
guint reply_forward_type,
- TnyHeader *header)
+ TnyHeader *header,
+ TnyList *parts)
{
ReplyForwardHelper *rf_helper = NULL;
const gchar *active_acc = modest_window_get_active_account (win);
g_strdup (active_acc) :
modest_account_mgr_get_default_account (modest_runtime_get_account_mgr());
rf_helper->mailbox = g_strdup (active_mailbox);
+ if (parts)
+ rf_helper->parts = g_object_ref (parts);
+ else
+ rf_helper->parts = NULL;
/* Note that window could be destroyed just AFTER calling
register_window so we must ensure that this pointer does
g_free (helper->mailbox);
if (helper->header)
g_object_unref (helper->header);
+ if (helper->parts)
+ g_object_unref (helper->parts);
if (helper->parent_window)
g_object_weak_unref (G_OBJECT (helper->parent_window),
rf_helper_window_closed, helper);
TnyAccount *account)
{
GtkResponseType response;
+ GtkWindow *toplevel;
/* Allways download if we are online. */
if (tny_device_is_online (modest_runtime_get_device ()))
return TRUE;
/* If offline, then ask for user permission to download the messages */
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
- ngettext("mcen_nc_get_msg",
- "mcen_nc_get_msgs",
- num_of_uncached_msgs));
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ response = modest_platform_run_confirmation_dialog (toplevel,
+ ngettext("mcen_nc_get_msg",
+ "mcen_nc_get_msgs",
+ num_of_uncached_msgs));
if (response == GTK_RESPONSE_CANCEL)
return FALSE;
- return modest_platform_connect_and_wait((GtkWindow *) win, account);
+ return modest_platform_connect_and_wait(toplevel, account);
}
static void
modest_ui_actions_disk_operations_error_handler,
NULL, NULL);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
- modest_mail_operation_get_msg (mail_op, rf_helper->header, TRUE, reply_forward_cb, rf_helper);
+ modest_mail_operation_get_msg_and_parts (mail_op, rf_helper->header, rf_helper->parts, TRUE, reply_forward_cb, rf_helper);
/* Frees */
g_object_unref(mail_op);
}
+static gboolean
+all_parts_retrieved (TnyMimePart *part)
+{
+ if (!TNY_IS_CAMEL_BS_MIME_PART (part)) {
+ return TRUE;
+ } else {
+ TnyList *pending_parts;
+ TnyIterator *iterator;
+ gboolean all_retrieved = TRUE;
+
+ pending_parts = TNY_LIST (tny_simple_list_new ());
+ tny_mime_part_get_parts (part, pending_parts);
+ iterator = tny_list_create_iterator (pending_parts);
+ while (all_retrieved && !tny_iterator_is_done (iterator)) {
+ TnyMimePart *child;
+
+ child = TNY_MIME_PART (tny_iterator_get_current (iterator));
+
+ if (tny_camel_bs_mime_part_is_fetched (TNY_CAMEL_BS_MIME_PART (child))) {
+ all_retrieved = all_parts_retrieved (TNY_MIME_PART (child));
+ } else {
+ all_retrieved = FALSE;
+ }
+
+ g_object_unref (child);
+ tny_iterator_next (iterator);
+ }
+ g_object_unref (iterator);
+ g_object_unref (pending_parts);
+ return all_retrieved;
+ }
+}
+
+static void
+forward_pending_parts_helper (TnyMimePart *part, TnyList *list)
+{
+ TnyList *parts;
+ TnyIterator *iterator;
+
+ if (!tny_camel_bs_mime_part_is_fetched (TNY_CAMEL_BS_MIME_PART (part))) {
+ tny_list_append (list, G_OBJECT (part));
+ }
+ parts = TNY_LIST (tny_simple_list_new ());
+ tny_mime_part_get_parts (part, parts);
+ for (iterator = tny_list_create_iterator (parts);
+ !tny_iterator_is_done (iterator);
+ tny_iterator_next (iterator)) {
+ TnyMimePart *child;
+
+ child = TNY_MIME_PART (tny_iterator_get_current (iterator));
+ forward_pending_parts_helper (child, list);
+ g_object_unref (child);
+ }
+ g_object_unref (iterator);
+ g_object_unref (parts);
+}
+
+static TnyList *
+forward_pending_parts (TnyMsg *msg)
+{
+ TnyList *result = TNY_LIST (tny_simple_list_new ());
+ if (TNY_IS_CAMEL_BS_MIME_PART (msg)) {
+ forward_pending_parts_helper (TNY_MIME_PART (msg), result);
+ }
+
+ return result;
+}
+
/*
* Common code for the reply and forward actions
*/
msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW(win));
header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win));
- if (msg && header) {
+ if (msg && header && (action != ACTION_FORWARD || all_parts_retrieved (TNY_MIME_PART (msg)))) {
/* Create helper */
rf_helper = create_reply_forward_helper (action, win,
- reply_forward_type, header);
+ reply_forward_type, header, NULL);
reply_forward_cb (NULL, header, FALSE, msg, NULL, rf_helper);
} else {
- g_warning("%s: no message or header found in viewer\n", __FUNCTION__);
+ gboolean do_download = TRUE;
+
+ if (msg && header && action == ACTION_FORWARD) {
+ /* Not all parts retrieved. Then we have to retrieve them all before
+ * creating the forward message */
+ if (!tny_device_is_online (modest_runtime_get_device ())) {
+ gint response;
+ GtkWindow *toplevel;
+
+ /* If ask for user permission to download the messages */
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ response = modest_platform_run_confirmation_dialog (toplevel,
+ ngettext("mcen_nc_get_msg",
+ "mcen_nc_get_msgs",
+ 1));
+
+ /* End if the user does not want to continue */
+ if (response == GTK_RESPONSE_CANCEL)
+ do_download = FALSE;
+ }
+
+ if (do_download) {
+ TnyList *pending_parts;
+ TnyFolder *folder;
+ TnyAccount *account;
+ GtkWindow *toplevel;
+
+ /* Create helper */
+ pending_parts = forward_pending_parts (msg);
+ rf_helper = create_reply_forward_helper (action, win,
+ reply_forward_type, header, pending_parts);
+ g_object_unref (pending_parts);
+
+ folder = tny_header_get_folder (header);
+ account = tny_folder_get_account (folder);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ modest_platform_connect_and_perform (toplevel,
+ TRUE, account,
+ reply_forward_performer,
+ rf_helper);
+ g_object_unref (folder);
+ g_object_unref (account);
+ }
+
+ } else {
+ g_warning("%s: no message or header found in viewer\n", __FUNCTION__);
+ }
}
if (msg)
/* Allways download if we are online. */
if (!tny_device_is_online (modest_runtime_get_device ())) {
gint response;
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
/* If ask for user permission to download the messages */
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+ response = modest_platform_run_confirmation_dialog (toplevel,
ngettext("mcen_nc_get_msg",
"mcen_nc_get_msgs",
uncached_msgs));
if (download) {
/* Create helper */
rf_helper = create_reply_forward_helper (action, win,
- reply_forward_type, header);
+ reply_forward_type, header, NULL);
if (uncached_msgs > 0) {
- modest_platform_connect_and_perform (GTK_WINDOW (win),
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+
+ modest_platform_connect_and_perform (toplevel,
TRUE, account,
reply_forward_performer,
rf_helper);
} else {
- reply_forward_performer (FALSE, NULL, GTK_WINDOW (win),
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ reply_forward_performer (FALSE, NULL, toplevel,
account, rf_helper);
}
}
}
if (!header_view) {
- modest_platform_information_banner (NULL, NULL, _CS("ckdg_ib_nothing_to_sort"));
+ modest_platform_information_banner (NULL, NULL, _CS_NOTHING_TO_SORT);
return;
}
/* Show sorting dialog */
- modest_utils_run_sort_dialog (GTK_WINDOW (window), MODEST_SORT_HEADERS);
+ modest_utils_run_sort_dialog (MODEST_WINDOW (window), MODEST_SORT_HEADERS);
}
static void
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), info->mail_op);
/* Invoke the connect and perform */
- modest_platform_connect_and_perform ((win) ? GTK_WINDOW (win) : NULL,
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ modest_platform_connect_and_perform (toplevel,
force_connection, info->account,
do_send_receive_performer, info);
}
GtkWidget *dialog;
gchar *txt, *item;
gboolean online;
+ GtkWindow *toplevel;
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
item = (type == MODEST_ITEM_TYPE_FOLDER) ? "folder" : "message";
online = tny_device_is_online (modest_runtime_get_device());
if (online) {
/* already online -- the item is simply not there... */
- dialog = gtk_message_dialog_new (GTK_WINDOW (win),
+ dialog = gtk_message_dialog_new (toplevel,
GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING,
GTK_BUTTONS_NONE,
gtk_dialog_run (GTK_DIALOG(dialog));
} else {
dialog = gtk_dialog_new_with_buttons (_("Connection requested"),
- GTK_WINDOW (win),
+ toplevel,
GTK_DIALOG_MODAL,
_("mcen_bd_dialog_cancel"),
GTK_RESPONSE_REJECT,
gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
g_free (txt);
- gtk_window_set_default_size (GTK_WINDOW(dialog), 300, 300);
+ gtk_window_set_default_size ((GtkWindow *) dialog, 300, 300);
if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
/* TODO: Comment about why is this commented out: */
/* modest_platform_connect_and_wait (); */
* somehow got past our checks when attaching.
*/
if (expected_size > MODEST_MAX_ATTACHMENT_SIZE) {
- modest_platform_run_information_dialog (
- GTK_WINDOW(edit_window),
- _("mail_ib_error_attachment_size"),
- TRUE);
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) edit_window);
+ modest_platform_run_information_dialog (toplevel,
+ _("mail_ib_error_attachment_size"),
+ TRUE);
return FALSE;
}
modest_ui_actions_on_send (GtkWidget *widget, ModestMsgEditWindow *edit_window)
{
TnyTransportAccount *transport_account = NULL;
- gboolean had_error = FALSE;
+ gboolean had_error = FALSE, add_to_contacts;
MsgData *data;
ModestAccountMgr *account_mgr;
gchar *account_name;
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window), TRUE);
- /* Check names but do not automatically add them to addressbook */
- if (!modest_msg_edit_window_check_names (edit_window, FALSE))
+ /* Check whether to automatically add new contacts to addressbook or not */
+ add_to_contacts = modest_conf_get_bool (modest_runtime_get_conf (),
+ MODEST_CONF_AUTO_ADD_TO_CONTACTS, NULL);
+ if (!modest_msg_edit_window_check_names (edit_window, add_to_contacts))
return TRUE;
data = modest_msg_edit_window_get_msg_data (edit_window);
if (error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_INSTANCE_CREATION_FAILED) {
g_warning ("%s failed: %s\n", __FUNCTION__, (modest_mail_operation_get_error (mail_operation))->message);
- modest_platform_information_banner (NULL, NULL, _CS("sfil_ni_not_enough_memory"));
+ modest_platform_information_banner (NULL, NULL, _CS_NOT_ENOUGH_MEMORY);
had_error = TRUE;
}
}
full memory condition */
modest_platform_information_banner ((GtkWidget *) source_win, NULL,
_("mail_in_ui_folder_create_error"));
- do_create_folder (source_win, parent_folder, (const gchar *) suggested_name);
+ do_create_folder ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (source_win)),
+ parent_folder, (const gchar *) suggested_name);
}
} else {
gchar *folder_name = NULL;
TnyFolderStore *parent_folder = NULL;
- result = modest_platform_run_new_folder_dialog (GTK_WINDOW (parent_window),
+ result = modest_platform_run_new_folder_dialog (parent_window,
suggested_parent,
(gchar *) suggested_name,
&folder_name,
helper->folder_name = g_strdup (folder_name);
helper->parent = g_object_ref (parent_folder);
- modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
+ modest_platform_connect_if_remote_and_perform (parent_window,
TRUE,
parent_folder,
do_create_folder_performer,
}
static void
-modest_ui_actions_create_folder(GtkWidget *parent_window,
+modest_ui_actions_create_folder(GtkWindow *parent_window,
GtkWidget *folder_view,
TnyFolderStore *parent_folder)
{
}
if (parent_folder) {
- do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
+ do_create_folder (parent_window, parent_folder, NULL);
g_object_unref (parent_folder);
}
}
if (MODEST_IS_FOLDER_WINDOW (window)) {
GtkWidget *folder_view;
+ GtkWindow *toplevel;
folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window)));
- modest_ui_actions_create_folder (GTK_WIDGET (window), folder_view, NULL);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+ modest_ui_actions_create_folder (toplevel, folder_view, NULL);
} else {
g_assert_not_reached ();
}
message = g_strdup_printf (_KR("cerm_device_memory_full"), "");
} else if (error->domain == MODEST_MAIL_OPERATION_ERROR &&
error->code == MODEST_MAIL_OPERATION_ERROR_FOLDER_EXISTS) {
- message = _CS("ckdg_ib_folder_already_exists");
+ message = _CS_FOLDER_ALREADY_EXISTS;
} else if (error->domain == TNY_ERROR_DOMAIN &&
error->code == TNY_SERVICE_ERROR_STATE) {
/* This means that the folder is already in use (a
message is opened for example */
message = _("emev_ni_internal_error");
} else {
- message = _CS("ckdg_ib_unable_to_rename");
+ message = _CS_UNABLE_TO_RENAME;
}
/* We don't set a parent for the dialog because the dialog
/* Note that if the rename fails new_folder will be NULL */
if (new_folder) {
modest_folder_view_select_folder (folder_view, new_folder, FALSE);
-#ifndef MODEST_TOOLKIT_HILDON2
- } else {
- modest_folder_view_select_first_inbox_or_local (folder_view);
-#endif
}
gtk_widget_grab_focus (GTK_WIDGET (folder_view));
}
current_name = tny_folder_get_name (TNY_FOLDER (folder));
parent = tny_folder_get_folder_store (TNY_FOLDER (folder));
- response = modest_platform_run_rename_folder_dialog (GTK_WINDOW (window),
+ response = modest_platform_run_rename_folder_dialog (MODEST_WINDOW (window),
parent, current_name,
&folder_name);
g_object_unref (parent);
if (response != GTK_RESPONSE_ACCEPT || strlen (folder_name) == 0) {
do_rename = FALSE;
} else {
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
RenameFolderInfo *rename_folder_data = g_new0 (RenameFolderInfo, 1);
rename_folder_data->folder = g_object_ref (folder);
rename_folder_data->new_name = folder_name;
- modest_platform_connect_if_remote_and_perform (GTK_WINDOW(window), TRUE,
+ modest_platform_connect_if_remote_and_perform (toplevel, TRUE,
folder, on_rename_folder_performer, rename_folder_data);
}
}
gpointer user_data)
{
GObject *win = modest_mail_operation_get_source (mail_op);
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (win));
- modest_platform_run_information_dialog ((win) ? GTK_WINDOW (win) : NULL,
+ modest_platform_run_information_dialog (toplevel,
_("mail_in_ui_folder_delete_error"),
FALSE);
g_object_unref (win);
mail_op);
modest_mail_operation_remove_folder (mail_op, TNY_FOLDER (info->folder), info->move_to_trash);
-#ifndef MODEST_TOOLKIT_HILDON2
- modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (folder_view));
-#endif
-
g_object_unref (mail_op);
g_object_unref (info->folder);
g_free (info);
GtkWidget *folder_view;
gint response;
gchar *message;
+ GtkWindow *toplevel;
g_return_val_if_fail (MODEST_IS_WINDOW(window), FALSE);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+
if (MODEST_IS_FOLDER_WINDOW (window)) {
folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window)));
} else {
/* Show an error if it's an account */
if (!TNY_IS_FOLDER (folder)) {
- modest_platform_run_information_dialog (GTK_WINDOW (window),
+ modest_platform_run_information_dialog (toplevel,
_("mail_in_ui_folder_delete_error"),
FALSE);
g_object_unref (G_OBJECT (folder));
/* Ask the user */
message = g_strdup_printf (_("mcen_nc_delete_folder_text"),
tny_folder_get_name (TNY_FOLDER (folder)));
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window),
+ response = modest_platform_run_confirmation_dialog (toplevel,
(const gchar *) message);
g_free (message);
info->move_to_trash = move_to_trash;
account = tny_folder_get_account (TNY_FOLDER (folder));
- modest_platform_connect_if_remote_and_perform (GTK_WINDOW (window),
+ modest_platform_connect_if_remote_and_perform (toplevel,
TRUE,
TNY_FOLDER_STORE (account),
on_delete_folder_cb, info);
gtk_dialog_new_with_buttons (_("mail_ti_password_protected"),
NULL,
GTK_DIALOG_MODAL,
- _HL("wdgt_bd_done"),
+ _HL_DONE,
GTK_RESPONSE_ACCEPT,
NULL);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox),
GtkClipboard *clipboard;
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
- focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
+ focused_widget = gtk_container_get_focus_child ((GtkContainer *) window);
if (GTK_IS_EDITABLE (focused_widget)) {
gtk_editable_cut_clipboard (GTK_EDITABLE(focused_widget));
gtk_clipboard_set_can_store (clipboard, NULL, 0);
gboolean copied = TRUE;
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
- focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
+ focused_widget = gtk_container_get_focus_child ((GtkContainer *) window);
if (GTK_IS_LABEL (focused_widget)) {
gchar *selection;
if (num_of_unc_msgs == 0 || continue_download) {
modest_platform_information_banner (
- NULL, NULL, _CS("mcen_ib_getting_items"));
+ NULL, NULL, _CS_GETTING_ITEMS);
modest_header_view_copy_selection (
MODEST_HEADER_VIEW (focused_widget));
} else
/* Show information banner if there was a copy to clipboard */
if(copied)
modest_platform_information_banner (
- NULL, NULL, _CS("ecoc_ib_edwin_copied"));
+ NULL, NULL, _CS_COPIED);
}
void
GtkWidget *inf_note = NULL;
ModestMailOperation *mail_op = NULL;
- focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
+ focused_widget = gtk_container_get_focus_child ((GtkContainer *) window);
if (GTK_IS_EDITABLE (focused_widget)) {
gtk_editable_paste_clipboard (GTK_EDITABLE(focused_widget));
} else if (GTK_IS_TEXT_VIEW (focused_widget)) {
PasteAsAttachmentHelper *helper = g_new0 (PasteAsAttachmentHelper, 1);
helper->window = MODEST_MSG_EDIT_WINDOW (window);
helper->banner = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
- _CS("ckct_nw_pasting"));
+ _CS_PASTING);
modest_email_clipboard_get_data (e_clipboard, &src_folder, &data, &delete);
mail_op = modest_mail_operation_new (G_OBJECT (window));
if (helper->banner != NULL) {
if (response == GTK_RESPONSE_OK) {
/* Launch notification */
inf_note = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
- _CS("ckct_nw_pasting"));
+ _CS_PASTING);
if (inf_note != NULL) {
gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
gtk_widget_show (GTK_WIDGET(inf_note));
} else if (src_folder != NULL) {
/* Launch notification */
inf_note = modest_platform_animation_banner (GTK_WIDGET (window), NULL,
- _CS("ckct_nw_pasting"));
+ _CS_PASTING);
if (inf_note != NULL) {
gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
gtk_widget_show (GTK_WIDGET(inf_note));
{
GtkWidget *focused_widget;
- focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
+ focused_widget = gtk_container_get_focus_child ((GtkContainer *) window);
if (MODEST_IS_ATTACHMENTS_VIEW (focused_widget)) {
modest_attachments_view_select_all (MODEST_ATTACHMENTS_VIEW (focused_widget));
} else if (GTK_IS_LABEL (focused_widget)) {
if (active != fullscreen) {
modest_window_mgr_set_fullscreen_mode (mgr, active);
#ifndef MODEST_TOOLKIT_HILDON2
- gtk_window_present (GTK_WINDOW (window));
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+ gtk_window_present (toplevel);
#endif
}
}
fullscreen = modest_window_mgr_get_fullscreen_mode (mgr);
modest_window_mgr_set_fullscreen_mode (mgr, !fullscreen);
-#ifndef MODEST_TOOLKIT_HILDON2
- gtk_window_present (GTK_WINDOW (window));
-#endif
}
/*
{
gboolean async_retrieval;
+ GtkWindow *toplevel;
TnyMsg *msg = NULL;
if (MODEST_IS_MSG_VIEW_WINDOW (window)) {
async_retrieval = TRUE;
msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW (window));
+ async_retrieval = !TNY_IS_CAMEL_BS_MSG (msg);
} else {
async_retrieval = FALSE;
}
- modest_platform_run_header_details_dialog (GTK_WINDOW (window), header, async_retrieval, msg);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+ modest_platform_run_header_details_dialog (toplevel, header, async_retrieval, msg);
if (msg)
g_object_unref (msg);
}
header_view = GTK_WIDGET (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (win)));
folder = modest_header_view_get_folder (MODEST_HEADER_VIEW (header_view));
if (folder) {
- modest_platform_run_folder_details_dialog (GTK_WINDOW (win),
- folder);
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+
+ modest_platform_run_folder_details_dialog (toplevel, folder);
g_object_unref (folder);
}
}
{
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win));
- modest_platform_information_banner ((GtkWidget *) win, NULL, _CS("ckdg_ib_maximum_characters_reached"));
+ modest_platform_information_banner ((GtkWidget *) win, NULL, _CS_MAXIMUM_CHARACTERS_REACHED);
}
MoveToInfo *helper = NULL;
ModestFolderView *folder_view;
gboolean unset_edit_mode = FALSE;
+ GtkWindow *toplevel;
helper = (MoveToInfo *) user_data;
parent_win = (GtkWidget *) helper->win;
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) parent_win);
folder_view = MODEST_FOLDER_VIEW (g_object_get_data (G_OBJECT (dialog),
MODEST_MOVE_TO_DIALOG_FOLDER_VIEW));
switch (response) {
case MODEST_GTK_RESPONSE_NEW_FOLDER:
selected = modest_folder_view_get_selected (folder_view);
- modest_ui_actions_create_folder (GTK_WIDGET (dialog), GTK_WIDGET (folder_view), selected);
+ modest_ui_actions_create_folder ((GtkWindow *) dialog, GTK_WIDGET (folder_view), selected);
g_object_unref (selected);
return;
case GTK_RESPONSE_NONE:
modest_ui_actions_on_folder_window_move_to (GTK_WIDGET (folder_view),
dst_folder,
helper->list,
- GTK_WINDOW (parent_win));
+ toplevel);
} else {
/* if the user selected a root folder
(account) then do not perform any action */
g_object_set_data (G_OBJECT(dialog), MODEST_MOVE_TO_DIALOG_FOLDER_VIEW, tree_view);
/* Hide special folders */
-#ifndef MODEST_TOOLKIT_HILDON2
- modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (tree_view), FALSE);
-#endif
if (list_to_move)
modest_folder_view_set_list_to_move (MODEST_FOLDER_VIEW (tree_view), list_to_move);
-#ifndef MODEST_TOOLKIT_HILDON2
- modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (tree_view));
-#endif
gtk_widget_show (GTK_WIDGET (tree_view));
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"));
+ _CS_PASTING);
if (helper->banner != NULL) {
g_object_ref (helper->banner);
gtk_widget_show (GTK_WIDGET(helper->banner));
connect_info->dst_account = get_account_from_folder_store (TNY_FOLDER_STORE (dst_folder));
connect_info->data = info;
- modest_platform_double_connect_and_perform(GTK_WINDOW (win), TRUE,
+ modest_platform_double_connect_and_perform(win, TRUE,
TNY_FOLDER_STORE (src_folder),
connect_info);
}
connect_info->dst_account = tny_folder_get_account (TNY_FOLDER (dst_folder));
connect_info->data = helper;
- modest_platform_double_connect_and_perform(GTK_WINDOW (win), TRUE,
+ modest_platform_double_connect_and_perform(win, TRUE,
TNY_FOLDER_STORE (src_folder),
connect_info);
} else {
TnyAccount *src_account = get_account_from_folder_store (TNY_FOLDER_STORE (src_folder));
- xfer_messages_performer (FALSE, NULL, GTK_WINDOW (win),
+ xfer_messages_performer (FALSE, NULL, win,
src_account, helper);
g_object_unref (src_account);
}
if (headers) {
TnyHeader *header = NULL;
TnyIterator *iter;
+ GtkWindow *toplevel;
iter = tny_list_create_iterator (headers);
header = (TnyHeader *) tny_iterator_get_current (iter);
src_folder = tny_header_get_folder (header);
/* Transfer the messages */
- modest_ui_actions_transfer_messages_helper (GTK_WINDOW (win), src_folder,
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ modest_ui_actions_transfer_messages_helper (toplevel, src_folder,
headers,
TNY_FOLDER (dst_folder));
modest_ui_actions_on_edit_mode_move_to (ModestWindow *win)
{
GtkWidget *dialog = NULL;
+ GtkWindow *toplevel = NULL;
MoveToInfo *helper = NULL;
TnyList *list_to_move;
}
/* Create and run the dialog */
- dialog = create_move_to_dialog (GTK_WINDOW (win), NULL, list_to_move);
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ dialog = create_move_to_dialog (toplevel, NULL, list_to_move);
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
GTK_WINDOW (dialog),
- (GtkWindow *) win);
+ toplevel);
/* Create helper */
helper = g_slice_new0 (MoveToInfo);
ModestWindow *win)
{
GtkWidget *dialog;
+ GtkWindow *toplevel;
dialog = modest_platform_get_global_settings_dialog ();
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (win));
+ toplevel = (GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (win));
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), toplevel);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
gtk_widget_show_all (dialog);
help_id = modest_window_mgr_get_help_id (modest_runtime_get_window_mgr(), win);
if (help_id)
- modest_platform_show_help (GTK_WINDOW (win), help_id);
+ modest_platform_show_help (win, help_id);
#endif
}
void
modest_ui_actions_on_search_messages (GtkAction *action, ModestWindow *window)
{
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+
g_return_if_fail (MODEST_IS_WINDOW (window));
/* we check for low-mem; in that case, show a warning, and don't allow
if (modest_platform_check_memory_low (window, TRUE))
return;
- modest_platform_show_search_messages (GTK_WINDOW (window));
+ modest_platform_show_search_messages (toplevel);
}
void
modest_ui_actions_on_open_addressbook (GtkAction *action, ModestWindow *win)
{
- g_return_if_fail (MODEST_IS_WINDOW (win));
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+ g_return_if_fail (MODEST_IS_WINDOW (win));
/* we check for low-mem; in that case, show a warning, and don't allow
* for the addressbook
if (modest_platform_check_memory_low (win, TRUE))
return;
-
- modest_platform_show_addressbook (GTK_WINDOW (win));
+ modest_platform_show_addressbook (toplevel);
}
server_name);
break;
case TNY_SERVICE_ERROR_SEND:
- message = g_strdup (_CS("sfil_ib_unable_to_send"));
+ message = g_strdup (_CS_UNABLE_TO_SEND);
break;
case TNY_SERVICE_ERROR_UNAVAILABLE:
message = modest_protocol_get_translation (protocol,
default:
g_warning ("%s: unexpected ERROR %d",
__FUNCTION__, err->code);
- message = g_strdup (_CS("sfil_ib_unable_to_send"));
+ message = g_strdup (_CS_UNABLE_TO_SEND);
break;
}
store_conn_status = tny_account_get_connection_status (store_account);
if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || sending) {
gint response;
+ GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) self);
- response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self),
- _("emev_nc_disconnect_account"));
+ response = modest_platform_run_confirmation_dialog (toplevel,
+ _("emev_nc_disconnect_account"));
if (response == GTK_RESPONSE_OK) {
retval = TRUE;
} else {