priv->find_toolbar = hildon_find_toolbar_new (NULL);
hildon_window_add_toolbar (HILDON_WINDOW (obj), GTK_TOOLBAR (priv->find_toolbar));
gtk_widget_set_no_show_all (priv->find_toolbar, TRUE);
-
+
+ /* NULL-ize fields if the window is destroyed */
+ g_signal_connect (priv->msg_view, "destroy", G_CALLBACK (gtk_widget_destroyed), &(priv->msg_view));
+
gtk_widget_show_all (GTK_WIDGET(main_vbox));
}
{
ModestMsgViewWindowPrivate *priv = NULL;
ModestWindowPrivate *parent_priv;
- GtkWidget *reply_button = NULL, *menu = NULL;
parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(self);
hildon_window_add_toolbar (HILDON_WINDOW (self),
GTK_TOOLBAR (parent_priv->toolbar));
- /* Set reply button tap and hold menu */
- reply_button = gtk_ui_manager_get_widget (parent_priv->ui_manager,
- "/ToolBar/ToolbarMessageReply");
- menu = gtk_ui_manager_get_widget (parent_priv->ui_manager,
- "/ToolbarReplyCSM");
- if (menu && reply_button)
- gtk_widget_tap_and_hold_setup (GTK_WIDGET (reply_button), menu, NULL, 0);
}
if (show_toolbar) {
gchar *filepath = (gchar *) user_data;
if (cancelled || err) {
- modest_platform_information_banner (NULL, NULL,
- _("mail_ib_file_operation_failed"));
+ if (err) {
+ modest_platform_information_banner (NULL, NULL,
+ _KR("cerm_device_memory_full"));
+ }
goto free;
}
mime_part = (TnyMimePart *) tny_iterator_get_current (iter);
g_object_unref (iter);
}
- g_object_unref (selected_attachments);
+ if (selected_attachments)
+ g_object_unref (selected_attachments);
if (error)
- return;
+ goto frees;
} else {
g_object_ref (mime_part);
}
- if (tny_mime_part_is_purged (mime_part)) {
- g_object_unref (mime_part);
- return;
- }
+ if (tny_mime_part_is_purged (mime_part))
+ goto frees;
if (!modest_tny_mime_part_is_msg (mime_part)) {
gchar *filepath = NULL;
gtk_widget_show_all (GTK_WIDGET (msg_win));
}
}
- g_object_unref (mime_part);
+
+ frees:
+ if (attachment_uid)
+ g_free (attachment_uid);
+ if (mime_part)
+ g_object_unref (mime_part);
}
typedef struct
g_warning ("modest: could not save attachment %s: %d (%s)\n", pair->filename, error?error->code:-1, error?error->message:"Unknown error");
if ((error->domain == TNY_ERROR_DOMAIN) &&
- (error->code = TNY_IO_ERROR_WRITE) &&
+ (error->code == TNY_IO_ERROR_WRITE) &&
(errno == ENOSPC)) {
info->result = GNOME_VFS_ERROR_NO_SPACE;
} else {
}
void
-modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, TnyList *mime_parts)
+modest_msg_view_window_save_attachments (ModestMsgViewWindow *window,
+ TnyList *mime_parts)
{
ModestMsgViewWindowPrivate *priv;
GtkWidget *save_dialog = NULL;
/* In Hildon 2.2 save and delete operate over all the attachments as there's no
* selection available */
mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
- if (!modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts)) {
+ if (mime_parts && !modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts, FALSE)) {
g_object_unref (mime_parts);
return;
}
- if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0)
+ if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0) {
+ if (mime_parts) {
+ g_object_unref (mime_parts);
+ mime_parts = NULL;
+ }
return;
+ }
} else {
g_object_ref (mime_parts);
}
}
g_object_unref (iter);
- if (!modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts) ||
+ if (!modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts, TRUE) ||
tny_list_get_length (mime_parts) == 0) {
g_object_unref (mime_parts);
return;
TnyHeader *header = NULL;
gchar *subject = NULL;
- if (!GTK_WIDGET_VISIBLE (window))
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
+
+ /* Note that if the window is closed while we're retrieving
+ the message, this widget could de deleted */
+ if (!priv->msg_view)
return;
- priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
if (msg != NULL) {
return FALSE;
}
- return TRUE;;
+ return TRUE;
}
static void