ModestMsgViewWindowPrivate *priv = NULL;
TnyFolder *header_folder = NULL;
ModestHeaderView *header_view = NULL;
- ModestWindow *main_window = NULL;
ModestWindowMgr *mgr = NULL;
MODEST_DEBUG_BLOCK (
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
- /* Remember the message list's TreeModel so we can detect changes
+ /* Remember the message list's TreeModel so we can detect changes
* and change the list selection when necessary: */
-
- main_window = modest_window_mgr_get_main_window(mgr, FALSE); /* don't create */
- if (main_window) {
- header_view = MODEST_HEADER_VIEW(modest_main_window_get_child_widget(
- MODEST_MAIN_WINDOW(main_window),
- MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW));
- }
-
- if (header_view != NULL){
- header_folder = modest_header_view_get_folder(header_view);
- /* This could happen if the header folder was
- unseleted before opening this msg window (for
- example if the user selects an account in the
- folder view of the main window */
- if (header_folder) {
- priv->is_outbox = (modest_tny_folder_guess_folder_type (header_folder) == TNY_FOLDER_TYPE_OUTBOX);
- priv->header_folder_id = tny_folder_get_id(header_folder);
- g_assert(priv->header_folder_id != NULL);
- g_object_unref(header_folder);
- }
+ header_folder = modest_header_view_get_folder (header_view);
+ if (header_folder) {
+ priv->is_outbox = (modest_tny_folder_guess_folder_type (header_folder) ==
+ TNY_FOLDER_TYPE_OUTBOX);
+ priv->header_folder_id = tny_folder_get_id (header_folder);
+ g_object_unref(header_folder);
}
/* Setup row references and connect signals */
}
ModestWindow *
-modest_msg_view_window_new_from_header_view (ModestHeaderView *header_view,
- const gchar *modest_account_name,
+modest_msg_view_window_new_from_header_view (ModestHeaderView *header_view,
+ const gchar *modest_account_name,
const gchar *mailbox,
- const gchar *msg_uid,
- GtkTreeRowReference *row_reference)
+ const gchar *msg_uid,
+ GtkTreeRowReference *row_reference)
{
ModestMsgViewWindow *window = NULL;
ModestMsgViewWindowPrivate *priv = NULL;
example if the user selects an account in the
folder view of the main window */
if (header_folder) {
- priv->is_outbox = (modest_tny_folder_guess_folder_type (header_folder) == TNY_FOLDER_TYPE_OUTBOX);
+ priv->is_outbox = (modest_tny_folder_guess_folder_type (header_folder) ==
+ TNY_FOLDER_TYPE_OUTBOX);
priv->header_folder_id = tny_folder_get_id(header_folder);
- g_assert(priv->header_folder_id != NULL);
g_object_unref(header_folder);
}
}
if (header_view != NULL){
modest_header_view_add_observer(header_view,
- MODEST_HEADER_VIEW_OBSERVER(window));
+ MODEST_HEADER_VIEW_OBSERVER(window));
}
tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), NULL);
TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
&header, -1);
message_reader (window, priv, header, row_reference);
+ g_object_unref (header);
}
gtk_tree_path_free (path);
g_return_val_if_fail (row_reference != NULL, FALSE);
+ /* We set the header from model while we're loading */
+ tny_header_view_set_header (TNY_HEADER_VIEW (priv->msg_view), header);
+ gtk_window_set_title (GTK_WINDOW (window), _CS("ckdg_pb_updating"));
+
mgr = modest_runtime_get_window_mgr ();
/* Msg download completed */
if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED)) {
- /* We set the header from model while we're loading */
- tny_header_view_set_header (TNY_HEADER_VIEW (priv->msg_view), header);
- gtk_window_set_title (GTK_WINDOW (window), _CS("ckdg_pb_updating"));
-
/* Ask the user if he wants to download the message if
we're not online */
if (!tny_device_is_online (modest_runtime_get_device())) {
return TRUE;
}
}
-
+
folder = tny_header_get_folder (header);
account = tny_folder_get_account (folder);
info = g_slice_new (MsgReaderInfo);
info->header = g_object_ref (header);
info->row_reference = gtk_tree_row_reference_copy (row_reference);
-
+
message_reader_performer (FALSE, NULL, (GtkWindow *) window, account, info);
g_object_unref (account);
g_object_unref (folder);
}
if (replaced_files) {
GtkWidget *confirm_overwrite_dialog;
- const gchar *message = (replaced_files == 1) ?
- _FM("docm_nc_replace_file") : _FM("docm_nc_replace_multiple");
- confirm_overwrite_dialog = hildon_note_new_confirmation (NULL, message);
- if (gtk_dialog_run (GTK_DIALOG (confirm_overwrite_dialog)) != GTK_RESPONSE_OK) {
- is_ok = FALSE;
+
+ if (replaced_files == 1) {
+ SaveMimePartPair *pair = files->data;
+ const gchar *filename = tny_mime_part_get_filename (pair->part);
+ gchar *message = g_strdup_printf ("%s\n%s",
+ _FM("docm_nc_replace_file"),
+ (filename) ? filename : "");
+ confirm_overwrite_dialog = hildon_note_new_confirmation (NULL, message);
+ g_free (message);
+ } else {
+ confirm_overwrite_dialog = hildon_note_new_confirmation (NULL,
+ _FM("docm_nc_replace_multiple"));
}
+ if (gtk_dialog_run (GTK_DIALOG (confirm_overwrite_dialog)) != GTK_RESPONSE_OK)
+ is_ok = FALSE;
+
gtk_widget_destroy (confirm_overwrite_dialog);
}
modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean get_all)
{
ModestMsgViewWindowPrivate *priv;
- TnyList *mime_parts = NULL;
+ TnyList *mime_parts = NULL, *tmp;
gchar *confirmation_message;
gint response;
gint n_attachments;
* because we don't have selection
*/
mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
-
- /* Remove already purged messages from mime parts list */
- iter = tny_list_create_iterator (mime_parts);
+
+ /* Remove already purged messages from mime parts list. We use
+ a copy of the list to remove items in the original one */
+ tmp = tny_list_copy (mime_parts);
+ iter = tny_list_create_iterator (tmp);
while (!tny_iterator_is_done (iter)) {
TnyMimePart *part = TNY_MIME_PART (tny_iterator_get_current (iter));
- tny_iterator_next (iter);
- if (tny_mime_part_is_purged (part)) {
+ if (tny_mime_part_is_purged (part))
tny_list_remove (mime_parts, (GObject *) part);
- }
+
g_object_unref (part);
+ tny_iterator_next (iter);
}
+ g_object_unref (tmp);
g_object_unref (iter);
if (!modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts, TRUE) ||
}
priv->purge_timeout = g_timeout_add (2000, show_remove_attachment_information, window);
-
+
iter = tny_list_create_iterator (mime_parts);
while (!tny_iterator_is_done (iter)) {
TnyMimePart *part;
g_object_unref (priv->remove_attachment_banner);
priv->remove_attachment_banner = NULL;
}
-
-
}