}
gboolean
-modest_maemo_utils_select_attachments (GtkWindow *window, TnyList *att_list)
+modest_maemo_utils_select_attachments (GtkWindow *window, TnyList *att_list, gboolean include_msgs)
{
GtkTreeModel *model;
TnyIterator *iterator;
tny_iterator_next (iterator)) {
GtkTreeIter iter;
TnyMimePart *part;
+ gchar *label;
+ gchar *filename = NULL;
part = (TnyMimePart *) tny_iterator_get_current (iterator);
- /* Embbeded messages are not offered to be
- saved. Purged attachments are ignored as well */
- if (!TNY_IS_MSG (part) && !tny_mime_part_is_purged (part)) {
- gchar *label;
- gchar *filename = NULL;
-
- filename = g_strdup (tny_mime_part_get_filename (part));
+ /* Ignore purged attachments and messages if ignore is
+ set to TRUE */
+ if (!(tny_mime_part_is_purged (part) ||
+ (TNY_IS_MSG (part) && !include_msgs))) {
+
+ if (TNY_IS_MSG (part)) {
+ TnyHeader *header = tny_msg_get_header (TNY_MSG (part));
+ filename = tny_header_dup_subject (header);
+ g_object_unref (header);
+ } else {
+ filename = g_strdup (tny_mime_part_get_filename (part));
+ }
label = g_strconcat (filename, NULL);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, label, 1, part, -1);
HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE);
dialog = hildon_picker_dialog_new (window);
- gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ti_select_attachment_title"));
+ gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ti_select_attachments_title"));
hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (dialog), HILDON_TOUCH_SELECTOR (selector));
hildon_picker_dialog_set_done_label (HILDON_PICKER_DIALOG (dialog), _HL("wdgt_bd_done"));