modest_msg_view_set_shadow_type (MODEST_MSG_VIEW (priv->msg_view), GTK_SHADOW_NONE);
main_vbox = gtk_vbox_new (FALSE, 6);
priv->main_scroll = hildon_pannable_area_new ();
+ g_object_set (G_OBJECT (priv->main_scroll), "mov-mode", HILDON_MOVEMENT_MODE_BOTH, NULL);
gtk_container_add (GTK_CONTAINER (priv->main_scroll), priv->msg_view);
gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_scroll, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER(obj), main_vbox);
G_CALLBACK (modest_ui_actions_on_details), obj);
g_signal_connect (G_OBJECT(priv->msg_view), "link_contextual",
G_CALLBACK (modest_ui_actions_on_msg_link_contextual), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "limit_error",
+ G_CALLBACK (modest_ui_actions_on_limit_error), obj);
g_signal_connect (G_OBJECT (priv->msg_view), "fetch_image",
G_CALLBACK (on_fetch_image), obj);
tny_header_view_set_header (TNY_HEADER_VIEW (priv->msg_view), header);
gtk_window_set_title (GTK_WINDOW (window), _CS("ckdg_pb_updating"));
+ if (header)
+ folder = NULL;
+
if (folder)
g_object_ref (folder);
message_reader_performer (FALSE, NULL, (GtkWindow *) window, account, info);
g_object_unref (account);
- g_object_unref (folder);
+ if (folder)
+ g_object_unref (folder);
return TRUE;
}
/* Update the row reference */
if (priv->row_reference != NULL) {
gtk_tree_row_reference_free (priv->row_reference);
- priv->row_reference = gtk_tree_row_reference_copy (row_reference);
+ priv->row_reference = row_reference?gtk_tree_row_reference_copy (row_reference):NULL;
if (priv->next_row_reference != NULL) {
gtk_tree_row_reference_free (priv->next_row_reference);
}
- priv->next_row_reference = gtk_tree_row_reference_copy (priv->row_reference);
- select_next_valid_row (priv->header_model, &(priv->next_row_reference), TRUE, priv->is_outbox);
+ if (row_reference) {
+ priv->next_row_reference = gtk_tree_row_reference_copy (priv->row_reference);
+ select_next_valid_row (priv->header_model, &(priv->next_row_reference), TRUE, priv->is_outbox);
+ } else {
+ priv->next_row_reference = NULL;
+ }
}
/* Mark header as read */
{
GList *pairs;
GnomeVFSResult result;
+ gchar *uri;
} SaveMimePartInfo;
static void save_mime_part_info_free (SaveMimePartInfo *info, gboolean with_struct);
}
g_list_free (info->pairs);
info->pairs = NULL;
+ g_free (info->uri);
if (with_struct) {
g_slice_free (SaveMimePartInfo, info);
}
if (info->result == GNOME_VFS_OK) {
hildon_banner_show_information (NULL, NULL, _CS("sfil_ib_saved"));
} else if (info->result == GNOME_VFS_ERROR_NO_SPACE) {
- gchar *msg = g_strdup_printf (_KR("cerm_device_memory_full"), "");
+ gchar *msg = NULL;
+
+ /* Check if the uri belongs to the external mmc */
+ if (g_str_has_prefix (info->uri, g_getenv (MODEST_MMC1_VOLUMEPATH_ENV)))
+ msg = g_strdup_printf (_KR("cerm_device_memory_full"), "");
+ else
+ msg = g_strdup (_KR("cerm_memory_card_full"));
modest_platform_information_banner (NULL, NULL, msg);
g_free (msg);
} else {
chooser_uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
current_folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog));
- if (current_folder && current_folder != '\0') {
+ if (current_folder && *current_folder != '\0') {
GError *err = NULL;
- modest_conf_set_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH,
+ modest_conf_set_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH,
current_folder,&err);
if (err != NULL) {
g_debug ("Error storing latest used folder: %s", err->message);
g_free (current_folder);
if (!modest_utils_folder_writable (chooser_uri)) {
- hildon_banner_show_information
- (NULL, NULL, _FM("sfil_ib_readonly_location"));
+ const gchar *err_msg;
+
+#ifdef MODEST_PLATFORM_MAEMO
+ if (modest_maemo_utils_in_usb_mode ()) {
+ err_msg = dgettext ("hildon-status-bar-usb", "usbh_ib_mmc_usb_connected");
+ } else {
+ err_msg = _FM("sfil_ib_readonly_location");
+ }
+#else
+ err_msg = _FM("sfil_ib_readonly_location");
+#endif
+ hildon_banner_show_information (NULL, NULL, err_msg);
} else {
TnyIterator *iter;
}
g_object_unref (iter);
}
- g_free (chooser_uri);
if (files_to_save != NULL) {
SaveMimePartInfo *info = g_slice_new0 (SaveMimePartInfo);
info->pairs = files_to_save;
info->result = TRUE;
+ info->uri = g_strdup (chooser_uri);
save_mime_parts_to_file_with_checks ((GtkWindow *) dialog, info);
}
+ g_free (chooser_uri);
end:
/* Free and close the dialog */
gchar *conf_folder = NULL;
gchar *filename = NULL;
gchar *save_multiple_str = NULL;
+ const gchar *root_folder = "file:///";
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
save_dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_SAVE);
- /* set folder */
- conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL);
+ /* Get last used folder */
+ conf_folder = modest_conf_get_string (modest_runtime_get_conf (),
+ MODEST_CONF_LATEST_SAVE_ATTACHMENT_PATH, NULL);
+
+ /* File chooser stops working if we select "file:///" as current folder */
+ if (conf_folder && g_ascii_strcasecmp (root_folder, conf_folder) != 0) {
+ g_free (conf_folder);
+ conf_folder = NULL;
+ }
+
if (conf_folder && conf_folder[0] != '\0') {
gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (save_dialog), conf_folder);
} else {
gchar *docs_folder;
- /* Set the default folder to images folder */
- docs_folder = g_build_filename (g_getenv (MYDOCS_ENV), DOCS_FOLDER, NULL);
+ /* Set the default folder to documents folder */
+ docs_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS));
+ if (!docs_folder) {
+ /* fallback */
+ docs_folder = g_build_filename (g_getenv (MYDOCS_ENV), DOCS_FOLDER, NULL);
+ }
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (save_dialog), docs_folder);
g_free (docs_folder);
}
if (save_multiple_str) {
g_object_set (G_OBJECT (save_dialog), "save-multiple", save_multiple_str, NULL);
gtk_window_set_title (GTK_WINDOW (save_dialog), _FM("sfil_ti_save_objects_files"));
+ g_free (save_multiple_str);
}
/* We must run this asynchronously, because the hildon dialog
APP_MENU_CALLBACK (modest_msg_view_window_show_find_toolbar),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_find_in_msg));
- modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_move_message"), NULL,
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self),
+ dngettext(GETTEXT_PACKAGE,
+ "mcen_me_move_message",
+ "mcen_me_move_messages",
+ 1),
+ NULL,
APP_MENU_CALLBACK (modest_ui_actions_on_move_to),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_move_to));
gtk_widget_destroy (picker_dialog);
if (selected)
- modest_address_book_add_address (selected);
+ modest_address_book_add_address (selected, (GtkWindow *) self);
g_free (selected);
} else {