#include <modest-address-book.h>
#include "modest-error.h"
#include "modest-ui-actions.h"
-#include "modest-protocol-info.h"
#include "modest-tny-platform-factory.h"
#include "modest-platform.h"
#include "modest-debug.h"
#ifdef MODEST_PLATFORM_MAEMO
#include "maemo/modest-osso-state-saving.h"
+#endif /* MODEST_PLATFORM_MAEMO */
+#ifndef MODEST_TOOLKIT_GTK
#include "maemo/modest-hildon-includes.h"
#include "maemo/modest-connection-specific-smtp-window.h"
-#endif /* MODEST_PLATFORM_MAEMO */
+#endif /* !MODEST_TOOLKIT_GTK */
#include <modest-utils.h>
#include "widgets/modest-ui-constants.h"
#include "modest-text-utils.h"
#ifdef MODEST_HAVE_EASYSETUP
+#ifdef MODEST_TOOLKIT_HILDON2
+#include "modest-easysetup-wizard-dialog.h"
+#else
#include "easysetup/modest-easysetup-wizard-dialog.h"
+#endif
#endif /* MODEST_HAVE_EASYSETUP */
#include <modest-widget-memory.h>
#include <gtkhtml/gtkhtml.h>
#define MIN_FREE_SPACE 5 * 1024 * 1024
+#define MOVE_FOLDER_OK_BUTTON "ok-button"
+#define MOVE_FOLDER_NEW_BUTTON "new-button"
typedef struct _GetMsgAsyncHelper {
ModestWindow *window;
gint num_of_uncached_msgs,
TnyAccount *account);
-static gboolean remote_folder_is_pop (TnyFolderStore *folder);
+static gboolean remote_folder_has_leave_on_server (TnyFolderStore *folder);
static void do_create_folder (GtkWindow *window,
TnyFolderStore *parent_folder,
* This function checks whether a TnyFolderStore is a pop account
*/
static gboolean
-remote_folder_is_pop (TnyFolderStore *folder)
+remote_folder_has_leave_on_server (TnyFolderStore *folder)
{
- const gchar *proto = NULL;
- TnyAccount *account = NULL;
+ TnyAccount *account;
+ gboolean result;
g_return_val_if_fail (TNY_IS_FOLDER_STORE (folder), FALSE);
account = get_account_from_folder_store (folder);
- proto = tny_account_get_proto (account);
+ result = (modest_protocol_registry_protocol_type_has_leave_on_server (modest_runtime_get_protocol_registry (),
+ modest_tny_account_get_protocol_type (account)));
g_object_unref (account);
- return (modest_protocol_info_get_transport_store_protocol (proto) == MODEST_PROTOCOL_STORE_POP);
+ return result;
}
/* FIXME: this should be merged with the similar code in modest-account-view-window */
modest_ui_actions_run_account_setup_wizard (ModestWindow *win)
{
gboolean result = FALSE;
- GtkWindow *dialog, *wizard;
+ GtkWindow *wizard;
gint dialog_response;
- /* Show the easy-setup wizard: */
- dialog = modest_window_mgr_get_modal (modest_runtime_get_window_mgr());
- if (dialog) {
- /* old wizard is active already;
- */
- gtk_window_present (GTK_WINDOW(dialog));
- return FALSE;
- }
-
-
/* there is no such wizard yet */
wizard = GTK_WINDOW (modest_platform_get_account_settings_wizard ());
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), wizard);
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), GTK_WINDOW (wizard), (GtkWindow *) win);
/* always present a main window in the background
* we do it here, so we cannot end up with two wizards (as this
in order to get the widgets properly drawn (MainWindow main
paned won't be in its right position and the dialog will be
missplaced */
+#ifndef MODEST_TOOLKIT_HILDON2
gtk_widget_show_all (GTK_WIDGET (win));
gtk_widget_show_all (GTK_WIDGET (wizard));
gtk_window_present (GTK_WINDOW (win));
gtk_window_present (GTK_WINDOW (wizard));
+#endif
dialog_response = gtk_dialog_run (GTK_DIALOG (wizard));
gtk_widget_destroy (GTK_WIDGET (wizard));
GtkWindow *account_win = GTK_WINDOW (modest_account_view_window_new ());
/* The accounts dialog must be modal */
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), account_win);
+ 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));
}
}
* because it requires an API (libconic) to detect different connection
* possiblities.
*/
-#ifdef MODEST_PLATFORM_MAEMO /* Defined in config.h */
+#ifndef MODEST_TOOLKIT_GTK /* Defined in config.h */
/* Create the window if necessary: */
GtkWidget *specific_window = GTK_WIDGET (modest_connection_specific_smtp_window_new ());
/* Show the window: */
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
- GTK_WINDOW (specific_window));
+ GTK_WINDOW (specific_window), (GtkWindow *) win);
gtk_widget_show (specific_window);
-#endif /* MODEST_PLATFORM_MAEMO */
+#endif /* !MODEST_TOOLKIT_GTK */
}
void
if (attachments && modest_platform_check_memory_low (win, TRUE))
goto cleanup;
- account_name = modest_account_mgr_get_default_account(mgr);
+#ifdef MODEST_TOOLKIT_HILDON2
+ account_name = g_strdup (modest_window_get_active_account(win));
+#endif
+ if (!account_name) {
+ account_name = modest_account_mgr_get_default_account(mgr);
+ }
if (!account_name) {
g_printerr ("modest: no account found\n");
goto cleanup;
signature = modest_account_mgr_get_signature (mgr, account_name, &use_signature);
if (body_str != NULL) {
- body = use_signature ? g_strconcat(body_str, "\n", signature, NULL) : g_strdup(body_str);
+ body = use_signature ? g_strconcat(body_str, "\n--\n", signature, NULL) : g_strdup(body_str);
} else {
- body = use_signature ? g_strconcat("\n", signature, NULL) : g_strdup("");
+ body = use_signature ? g_strconcat("\n--\n", signature, NULL) : g_strdup("");
}
msg = modest_tny_msg_new (to_str, from_str, cc_str, bcc_str, subject_str, body, NULL, NULL, NULL);
total_size = 0;
allowed_size = MODEST_MAX_ATTACHMENT_SIZE;
msg_win = modest_msg_edit_window_new (msg, account_name, FALSE);
+
+ if (!modest_window_mgr_register_window (modest_runtime_get_window_mgr(), msg_win, NULL)) {
+ gtk_widget_destroy (GTK_WIDGET (msg_win));
+ goto cleanup;
+ }
+ modest_msg_edit_window_set_modified (MODEST_MSG_EDIT_WINDOW (msg_win), set_as_modified);
+ gtk_widget_show_all (GTK_WIDGET (msg_win));
+
while (attachments) {
total_size +=
- modest_msg_edit_window_attach_file_one(
- (ModestMsgEditWindow *)msg_win,
- attachments->data, allowed_size);
+ modest_msg_edit_window_attach_file_one((ModestMsgEditWindow *)msg_win,
+ attachments->data, allowed_size);
if (total_size > allowed_size) {
g_warning ("%s: total size: %u",
attachments = g_slist_next(attachments);
}
- modest_window_mgr_register_window (modest_runtime_get_window_mgr(), msg_win);
- modest_msg_edit_window_set_modified (MODEST_MSG_EDIT_WINDOW (msg_win), set_as_modified);
-
- gtk_widget_show_all (GTK_WIDGET (msg_win));
cleanup:
g_free (from_str);
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;
+ subject = tny_header_dup_subject (header);
+ msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"),
+ subject);
+ modest_platform_run_information_dialog (NULL, msg, FALSE);
+ g_free (msg);
+ g_free (subject);
+ }
+
/* Remove the header from the preregistered uids */
modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (),
header);
/* Register and show new window */
if (win != NULL) {
mgr = modest_runtime_get_window_mgr ();
- modest_window_mgr_register_window (mgr, win);
+ if (!modest_window_mgr_register_window (mgr, win, NULL)) {
+ gtk_widget_destroy (GTK_WIDGET (win));
+ goto cleanup;
+ }
gtk_widget_show_all (GTK_WIDGET(win));
}
gpointer user_data)
{
ModestMailOperation *mail_op = NULL;
- const gchar *proto_name;
gchar *error_msg;
- ModestTransportStoreProtocol proto;
+ ModestProtocolType proto;
TnyList *not_opened_headers;
TnyConnectionStatus status;
gboolean show_open_draft = FALSE;
}
/* Get the error message depending on the protocol */
- proto_name = tny_account_get_proto (account);
- if (proto_name != NULL) {
- proto = modest_protocol_info_get_transport_store_protocol (proto_name);
- } else {
- proto = MODEST_PROTOCOL_STORE_MAILDIR;
+ proto = modest_tny_account_get_protocol_type (account);
+ if (proto == MODEST_PROTOCOL_REGISTRY_TYPE_INVALID) {
+ proto = MODEST_PROTOCOLS_STORE_MAILDIR;
}
/* Create the error messages */
if (tny_list_get_length (not_opened_headers) == 1) {
- if (proto == MODEST_PROTOCOL_STORE_POP) {
- error_msg = g_strdup (_("emev_ni_ui_pop3_msg_recv_error"));
- } else if (proto == MODEST_PROTOCOL_STORE_IMAP) {
- TnyIterator *iter = tny_list_create_iterator (not_opened_headers);
- TnyHeader *header = TNY_HEADER (tny_iterator_get_current (iter));
- gchar *subject = tny_header_dup_subject (header);
- error_msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"),
- subject);
- g_free (subject);
- g_object_unref (header);
- g_object_unref (iter);
- } else {
+ ModestProtocol *protocol;
+ ModestProtocolRegistry *protocol_registry;
+ TnyIterator *iter;
+ TnyHeader *header;
+ gchar *subject;
+
+ protocol_registry = modest_runtime_get_protocol_registry ();
+ iter = tny_list_create_iterator (not_opened_headers);
+ header = TNY_HEADER (tny_iterator_get_current (iter));
+ subject = tny_header_dup_subject (header);
+
+ protocol = modest_protocol_registry_get_protocol_by_type (protocol_registry, proto);
+ error_msg = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE, subject);
+ g_free (subject);
+ g_object_unref (header);
+ g_object_unref (iter);
+
+ if (error_msg == NULL) {
+ error_msg = g_strdup (_("mail_ni_ui_folder_get_msg_folder_error"));
+ }
+
+ if (modest_protocol_registry_protocol_type_has_tag (protocol_registry,
+ proto,
+ MODEST_PROTOCOL_REGISTRY_LOCAL_STORE_PROTOCOLS)) {
TnyHeader *header;
TnyFolder *folder;
TnyIterator *iter;
g_object_unref (folder);
g_object_unref (header);
g_object_unref (iter);
- error_msg = g_strdup (_("mail_ni_ui_folder_get_msg_folder_error"));
}
} else {
error_msg = g_strdup (_("mail_ni_ui_folder_get_msg_folder_error"));
window to the user */
if (found) {
if (window) {
+#ifndef MODEST_TOOLKIT_HILDON2
gtk_window_present (GTK_WINDOW (window));
+#endif
} else {
/* the header has been registered already, we don't do
* anything but wait for the window to come up*/
edit_type = MODEST_EDIT_TYPE_FORWARD;
break;
default:
+ modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (),
+ header);
g_return_if_reached ();
return;
}
/* Create and register the windows */
msg_win = modest_msg_edit_window_new (new_msg, rf_helper->account_name, FALSE);
mgr = modest_runtime_get_window_mgr ();
- modest_window_mgr_register_window (mgr, msg_win);
+ modest_window_mgr_register_window (mgr, msg_win, (ModestWindow *) rf_helper->parent_window);
if (rf_helper->parent_window != NULL) {
gdouble parent_zoom;
gtk_widget_show_all (GTK_WIDGET (msg_win));
cleanup:
+ /* We always unregister the header because the message is
+ forwarded or replied so the original one is no longer
+ opened */
+ modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (),
+ header);
if (new_msg)
g_object_unref (G_OBJECT (new_msg));
if (account)
}
/* Retrieve the message */
+ modest_window_mgr_register_header (modest_runtime_get_window_mgr (), rf_helper->header, NULL);
mail_op = modest_mail_operation_new_with_error_handling (G_OBJECT (parent_window),
modest_ui_actions_disk_operations_error_handler,
NULL, NULL);
if (TNY_IS_FOLDER (folder_store) && selected) {
TnyAccount *account;
const gchar *account_name = NULL;
- gboolean refresh;
/* Update the active account */
account = modest_tny_folder_get_account (TNY_FOLDER (folder_store));
modest_main_window_set_contents_style (main_window,
MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS);
- refresh = !modest_account_mgr_account_is_busy (modest_runtime_get_account_mgr (), account_name);
-
/* Set folder on header view. This function
will call tny_folder_refresh_async so we
pass a callback that will be called when
empty view if there are no messages */
modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view),
TNY_FOLDER (folder_store),
- refresh,
+ TRUE,
folder_refreshed_cb,
main_window);
already being done by the sort
dialog. Remove it when the GNOME version
has the same behaviour */
-#ifdef MODEST_PLATFORM_GNOME
+#ifdef MODEST_TOOLKIT_GTK
if (modest_main_window_get_contents_style (main_window) ==
MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS)
modest_widget_memory_save (conf, G_OBJECT (header_view),
gchar *account_name, *from;
ModestAccountMgr *account_mgr;
gboolean had_error = FALSE;
- ModestMainWindow *win;
+ ModestMainWindow *win = NULL;
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window), FALSE);
on_save_to_drafts_cb,
g_object_ref(edit_window));
+#ifdef MODEST_TOOLKIT_HILDON2
+ /* In hildon2 we always show the information banner on saving to drafts.
+ * It will be a system information banner in this case.
+ */
+ gchar *text = g_strdup_printf (_("mail_va_saved_to_drafts"), _("mcen_me_folder_drafts"));
+ modest_platform_information_banner (NULL, NULL, text);
+ g_free (text);
+#else
/* Use the main window as the parent of the banner, if the
main window does not exist it won't be shown, if the parent
window exists then it's properly shown. We don't use the
modest_platform_information_banner (GTK_WIDGET (win), NULL, text);
g_free (text);
}
+#endif
modest_msg_edit_window_set_modified (edit_window, FALSE);
/* Frees */
}
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
typedef struct {
guint handler;
gchar *name;
/* Try again. Do *NOT* show any error because the mail
operations system will do it for us because we
created the mail_op with new_with_error_handler */
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
CreateFolderHelper *helper;
helper = g_slice_new0 (CreateFolderHelper);
helper->name = g_strdup (suggested_name);
/* Clear the headers view */
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
- gtk_tree_selection_unselect_all (sel);
+ gtk_tree_selection_unselect_all (sel);
/* Actually rename the folder */
modest_mail_operation_rename_folder (mail_op,
(const gchar *) (data->new_name),
on_rename_folder_cb,
folder_view);
+ g_object_unref (data->folder);
g_object_unref (mail_op);
}
do_rename = FALSE;
} else {
RenameFolderInfo *rename_folder_data = g_new0 (RenameFolderInfo, 1);
- rename_folder_data->folder = folder;
+ rename_folder_data->folder = g_object_ref (folder);
rename_folder_data->new_name = folder_name;
modest_platform_connect_if_remote_and_perform (GTK_WINDOW(main_window), TRUE,
folder, on_rename_folder_performer, rename_folder_data);
if (remember)
*remember = TRUE;
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
/* Maemo uses a different (awkward) button order,
* It should probably just use gtk_alternative_dialog_button_order ().
*/
GTK_STOCK_OK,
GTK_RESPONSE_ACCEPT,
NULL);
-#endif /* MODEST_PLATFORM_MAEMO */
+#endif /* !MODEST_TOOLKIT_GTK */
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), GTK_WINDOW (dialog));
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), GTK_WINDOW (dialog), NULL);
gchar *server_name = modest_account_mgr_get_server_account_hostname (
modest_runtime_get_account_mgr(), server_account_name);
*/
gtk_widget_set_sensitive (entry_username, FALSE);
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
/* Auto-capitalization is the default, so let's turn it off: */
hildon_gtk_entry_set_input_mode (GTK_ENTRY (entry_username), HILDON_GTK_INPUT_MODE_FULL);
#else
gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry_username,
TRUE, FALSE, 0);
-#endif /* MODEST_PLATFORM_MAEMO */
+#endif /* !MODEST_TOOLKIT_GTK */
/* password: */
GtkWidget *entry_password = gtk_entry_new ();
gtk_entry_set_visibility (GTK_ENTRY(entry_password), FALSE);
/* gtk_entry_set_invisible_char (GTK_ENTRY(entry_password), "*"); */
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
/* Auto-capitalization is the default, so let's turn it off: */
hildon_gtk_entry_set_input_mode (GTK_ENTRY (entry_password),
HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_INVISIBLE);
#else
gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), entry_password,
TRUE, FALSE, 0);
-#endif /* MODEST_PLATFORM_MAEMO */
+#endif /* !MODEST_TOOLKIT_GTK */
if (initial_username != NULL)
gtk_widget_grab_focus (GTK_WIDGET (entry_password));
gtk_clipboard_set_can_store (clipboard, NULL, 0);
gtk_clipboard_store (clipboard);
} else if (GTK_IS_HTML (focused_widget)) {
- gtk_html_copy (GTK_HTML (focused_widget));
- gtk_clipboard_set_can_store (clipboard, NULL, 0);
- gtk_clipboard_store (clipboard);
+ const gchar *sel;
+ int len = -1;
+ sel = gtk_html_get_selection_html (GTK_HTML (focused_widget), &len);
+ if ((sel == NULL) || (sel[0] == '\0')) {
+ copied = FALSE;
+ } else {
+ gtk_html_copy (GTK_HTML (focused_widget));
+ gtk_clipboard_set_can_store (clipboard, NULL, 0);
+ gtk_clipboard_store (clipboard);
+ }
} else if (GTK_IS_TEXT_VIEW (focused_widget)) {
GtkTextBuffer *buffer;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (focused_widget));
if (active != fullscreen) {
modest_window_mgr_set_fullscreen_mode (mgr, active);
+#ifndef MODEST_TOOLKIT_HILDON2
gtk_window_present (GTK_WINDOW (window));
+#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
}
/*
dialog = modest_details_dialog_new_with_header (GTK_WINDOW (window), header);
/* Run dialog */
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), (GtkWindow *) window);
gtk_widget_show_all (dialog);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
+ g_signal_connect_swapped (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy),
+ dialog);
}
/*
{
GtkWidget *dialog = NULL;
GtkWidget *ok_button = NULL, *new_button = NULL;
- GList *children = NULL;
gboolean ok_sensitive = TRUE, new_sensitive = TRUE;
gboolean moving_folder = FALSE;
gboolean is_local_account = TRUE;
if (!dialog)
return;
- children = gtk_container_get_children (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area));
-#ifdef MODEST_PLATFORM_MAEMO
- ok_button = GTK_WIDGET (children->next->next->data);
- new_button = GTK_WIDGET (children->next->data);
-#else
- ok_button = GTK_WIDGET (children->data);
- new_button = GTK_WIDGET (children->next->next->data);
-#endif
- g_list_free (children);
+ ok_button = g_object_get_data (G_OBJECT (dialog), MOVE_FOLDER_OK_BUTTON);
+ new_button = g_object_get_data (G_OBJECT (dialog), MOVE_FOLDER_NEW_BUTTON);
/* check if folder_store is an remote account */
if (TNY_IS_ACCOUNT (folder_store)) {
if ((gpointer) local_account != (gpointer) folder_store &&
(gpointer) mmc_account != (gpointer) folder_store) {
- const char *proto_name = tny_account_get_proto (TNY_ACCOUNT (folder_store));
- ModestTransportStoreProtocol proto = MODEST_PROTOCOL_STORE_MAILDIR;
- if (proto_name != NULL) {
- proto = modest_protocol_info_get_transport_store_protocol (proto_name);
+ ModestProtocolType proto;
+ proto = modest_tny_account_get_protocol_type (TNY_ACCOUNT (folder_store));
+ if (proto == MODEST_PROTOCOL_REGISTRY_TYPE_INVALID) {
+ proto = MODEST_PROTOCOLS_STORE_MAILDIR;
}
is_local_account = FALSE;
/* New button should be dimmed on remote
POP account root */
- new_sensitive = (proto != MODEST_PROTOCOL_STORE_POP);
+ new_sensitive = (modest_protocol_registry_protocol_type_has_tag (modest_runtime_get_protocol_registry (),
+ proto,
+ MODEST_PROTOCOL_REGISTRY_STORE_HAS_FOLDERS));
}
g_object_unref (local_account);
- g_object_unref (mmc_account);
+
+ /* It could not exist */
+ if (mmc_account)
+ g_object_unref (mmc_account);
}
/* Check the target folder rules */
GtkWidget **tree_view)
{
GtkWidget *dialog, *scroll;
- GtkWidget *new_button;
+ GtkWidget *new_button, *ok_button;
dialog = gtk_dialog_new_with_buttons (_("mcen_ti_moveto_folders_title"),
GTK_WINDOW (win),
GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR | GTK_DIALOG_DESTROY_WITH_PARENT,
NULL);
-#ifdef MODEST_PLATFORM_MAEMO
- gtk_dialog_add_button (GTK_DIALOG (dialog), _("mcen_bd_dialog_ok"), GTK_RESPONSE_ACCEPT);
+#ifndef MODEST_TOOLKIT_GTK
+ ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("mcen_bd_dialog_ok"), GTK_RESPONSE_ACCEPT);
/* We do this manually so GTK+ does not associate a response ID for
* the button. */
new_button = gtk_button_new_from_stock (_("mcen_bd_new"));
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), new_button, FALSE, FALSE, 0);
+ gtk_widget_show (new_button);
+#ifndef MODEST_TOOLKIT_HILDON2
gtk_dialog_add_button (GTK_DIALOG (dialog), _("mcen_bd_dialog_cancel"), GTK_RESPONSE_REJECT);
+#endif
#else
/* We do this manually so GTK+ does not associate a response ID for
* the button. */
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), new_button, FALSE, FALSE, 0);
gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), new_button, TRUE);
gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT);
- gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
+ ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
gtk_container_set_border_width (GTK_CONTAINER (dialog), 12);
gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 24);
#endif
+ g_object_set_data (G_OBJECT (dialog), MOVE_FOLDER_OK_BUTTON, ok_button);
+ g_object_set_data (G_OBJECT (dialog), MOVE_FOLDER_NEW_BUTTON, new_button);
/* Create scrolled window */
scroll = gtk_scrolled_window_new (NULL, NULL);
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
-#ifndef MODEST_PLATFORM_MAEMO
+#ifdef MODEST_TOOLKIT_GTK
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN);
#endif
scroll, TRUE, TRUE, 0);
gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
-#ifdef MODEST_PLATFORM_MAEMO
+#ifndef MODEST_TOOLKIT_GTK
gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 300);
#else
gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 400);
/* The transfer is possible and the user wants to */
*do_xfer = TRUE;
- if (remote_folder_is_pop (src_folder) && delete_originals) {
+ if (remote_folder_has_leave_on_server (src_folder) && delete_originals) {
const gchar *account_name;
gboolean leave_on_server;
{
ModestWindow *win = MODEST_WINDOW (parent_window);
TnyAccount *dst_account = NULL;
- const gchar *proto_str = NULL;
- gboolean dst_is_pop = FALSE;
+ gboolean dst_forbids_message_add = FALSE;
XferMsgsHelper *helper;
MoveToHelper *movehelper;
ModestMailOperation *mail_op;
}
dst_account = tny_folder_get_account (TNY_FOLDER (helper->dst_folder));
- proto_str = tny_account_get_proto (dst_account);
/* tinymail will return NULL for local folders it seems */
- dst_is_pop = proto_str &&
- (modest_protocol_info_get_transport_store_protocol (proto_str) ==
- MODEST_PROTOCOL_STORE_POP);
-
+ dst_forbids_message_add = modest_protocol_registry_protocol_type_has_tag (modest_runtime_get_protocol_registry (),
+ modest_tny_account_get_protocol_type (dst_account),
+ MODEST_PROTOCOL_REGISTRY_STORE_FORBID_MESSAGE_ADD);
g_object_unref (dst_account);
- if (dst_is_pop) {
+ if (dst_forbids_message_add) {
modest_platform_information_banner (GTK_WIDGET (win),
NULL,
ngettext("mail_in_ui_folder_move_target_error",
gboolean need_connection = TRUE;
gboolean do_xfer = TRUE;
XferMsgsHelper *helper;
+
+ g_return_if_fail (TNY_IS_FOLDER (src_folder));
+ g_return_if_fail (TNY_IS_FOLDER (dst_folder));
+ g_return_if_fail (TNY_IS_LIST (headers));
modest_ui_actions_xfer_messages_check (win, TNY_FOLDER_STORE (src_folder),
headers, TNY_FOLDER (dst_folder),
TNY_FOLDER (dst_folder));
/* Frees */
+ g_object_unref (src_folder);
g_object_unref (header);
g_object_unref (headers);
}
/* Create and run the dialog */
dialog = create_move_to_dialog (GTK_WINDOW (win), folder_view, &tree_view);
modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (tree_view));
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), (GtkWindow *) win);
result = gtk_dialog_run (GTK_DIALOG(dialog));
g_object_ref (tree_view);
gtk_widget_destroy (dialog);
tree_column = gtk_tree_view_get_column (GTK_TREE_VIEW (header_view),
TNY_GTK_HEADER_LIST_MODEL_FROM_COLUMN);
- gtk_tree_view_column_queue_resize (tree_column);
+ if (tree_column)
+ gtk_tree_view_column_queue_resize (tree_column);
}
#else
gtk_widget_queue_draw (header_view);
/* Rerun dimming rules, because the message could become deletable for example */
modest_window_check_dimming_rules_group (MODEST_WINDOW (main_window),
MODEST_DIMMING_RULES_TOOLBAR);
+ modest_window_check_dimming_rules_group (MODEST_WINDOW (main_window),
+ MODEST_DIMMING_RULES_MENU);
/* Free */
frees:
modest_ui_actions_on_account_connection_error (GtkWindow *parent_window,
TnyAccount *account)
{
- ModestTransportStoreProtocol proto;
- const gchar *proto_name;
+ ModestProtocolType protocol_type;
+ ModestProtocol *protocol;
gchar *error_note = NULL;
- proto_name = tny_account_get_proto (account);
- proto = modest_protocol_info_get_transport_store_protocol (proto_name);
-
- switch (proto) {
- case MODEST_PROTOCOL_STORE_POP:
- error_note = g_strdup_printf (_("emev_ni_ui_pop3_msg_connect_error"),
- tny_account_get_hostname (account));
- break;
- case MODEST_PROTOCOL_STORE_IMAP:
- error_note = g_strdup_printf (_("emev_ni_ui_imap_connect_server_error"),
- tny_account_get_hostname (account));
- break;
- case MODEST_PROTOCOL_STORE_MAILDIR:
- case MODEST_PROTOCOL_STORE_MBOX:
- error_note = g_strdup (_("emev_nc_mailbox_notavailable"));
- break;
- default:
- g_warning ("%s: This should not be reached", __FUNCTION__);
- }
+ protocol_type = modest_tny_account_get_protocol_type (account);
+ protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (),
+ protocol_type);
- if (error_note) {
+ error_note = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_ACCOUNT_CONNECTION_ERROR, tny_account_get_hostname (account));
+ if (error_note == NULL) {
+ g_warning ("%s: This should not be reached", __FUNCTION__);
+ } else {
modest_platform_run_information_dialog (parent_window, error_note, FALSE);
g_free (error_note);
}
modest_ui_actions_get_msg_already_deleted_error_msg (ModestWindow *win)
{
gchar *msg = NULL;
+ gchar *subject;
TnyFolderStore *folder = NULL;
TnyAccount *account = NULL;
- ModestTransportStoreProtocol proto;
+ ModestProtocolType proto;
+ ModestProtocol *protocol;
TnyHeader *header = NULL;
if (MODEST_IS_MAIN_WINDOW (win)) {
/* Get the account type */
account = tny_folder_get_account (TNY_FOLDER (folder));
- proto = modest_protocol_info_get_transport_store_protocol (tny_account_get_proto (account));
- if (proto == MODEST_PROTOCOL_STORE_POP) {
- msg = g_strdup (_("emev_ni_ui_pop3_msg_recv_error"));
- } else if (proto == MODEST_PROTOCOL_STORE_IMAP) {
- gchar *subject;
- subject = tny_header_dup_subject (header);
- msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"),
- subject);
- g_free (subject);
- } else {
+ proto = modest_tny_account_get_protocol_type (account);
+ protocol = modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (),
+ proto);
+
+ subject = tny_header_dup_subject (header);
+ msg = modest_protocol_get_translation (protocol, MODEST_PROTOCOL_TRANSLATION_MSG_NOT_AVAILABLE, subject);
+ g_free (subject);
+ if (msg == NULL) {
msg = g_strdup_printf (_("mail_ni_ui_folder_get_msg_folder_error"));
}