gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, filename, 1, part, -1);
attachments_added ++;
g_free (filename);
- g_object_unref (part);
}
+ g_object_unref (part);
}
+ g_object_unref (iterator);
selector = GTK_WIDGET (hildon_touch_selector_new ());
renderer = gtk_cell_renderer_text_new ();
}
if (tny_list_get_length (att_list) == 0)
result = FALSE;
+
+ g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL);
+ g_list_free (selected_rows);
} else {
result = FALSE;
}
g_object_unref (att_list);
return;
}
-
} else {
g_object_ref (att_list);
}
g_object_unref (att_list);
/* if the last attachment has been removed, focus the Subject: field */
- if (!modest_attachments_view_has_attachments (MODEST_ATTACHMENTS_VIEW (priv->attachments_view)))
+ if (!modest_attachments_view_has_attachments (MODEST_ATTACHMENTS_VIEW (priv->attachments_view)))
gtk_widget_grab_focus (priv->subject_field);
}
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;
}
-
-
}