*/
#include <modest-email-clipboard.h>
+#include <modest-tny-folder.h>
/* 'private'/'protected' functions */
static void modest_email_clipboard_class_init (ModestEmailClipboardClass * klass);
i = 0;
while (!tny_iterator_is_done (iter)) {
obj = tny_iterator_get_current (iter);
- if (TNY_IS_HEADER (obj))
+ if (obj && TNY_IS_HEADER (obj))
id = g_strdup(tny_header_get_message_id (TNY_HEADER (obj)));
priv->hidding[i++] = id;
tny_iterator_next (iter);
- g_object_unref (obj);
+ if (obj)
+ g_object_unref (obj);
}
g_object_unref (iter);
}
modest_email_clipboard_check_source_folder (ModestEmailClipboard *self,
const TnyFolder *folder)
{
+ TnyFolderType folder_type1;
+ TnyFolderType folder_type2;
ModestEmailClipboardPrivate *priv = NULL;;
const gchar *id1 = NULL;
const gchar *id2 = NULL;
/* Check target and source folders */
id1 = tny_folder_get_id (priv->src);
- id2 = tny_folder_get_id (TNY_FOLDER(folder));
- same_folder = !g_ascii_strcasecmp (id1, id2);
+ id2 = tny_folder_get_id (TNY_FOLDER(folder));
+ folder_type1 = modest_tny_folder_guess_folder_type (priv->src);
+ folder_type2 = modest_tny_folder_guess_folder_type (folder);
+
+ if (folder_type1 == TNY_FOLDER_TYPE_INVALID || folder_type2 == TNY_FOLDER_TYPE_INVALID)
+ g_warning ("%s: BUG: folder of type TNY_FOLDER_TYPE_INVALID", __FUNCTION__);
+
+ same_folder = ((folder_type1 == folder_type2) &&
+ (!g_ascii_strcasecmp (id1, id2)));
return same_folder;
}
+gboolean
+modest_email_clipboard_headers_copied (ModestEmailClipboard *self)
+{
+ ModestEmailClipboardPrivate *priv = NULL;;
+ gboolean result = FALSE;
+
+ g_return_val_if_fail (MODEST_IS_EMAIL_CLIPBOARD (self), FALSE);
+ priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (self);
+
+ result = priv->selection != NULL;
+
+ return result;
+}
+
+gboolean
+modest_email_clipboard_folder_copied (ModestEmailClipboard *self)
+{
+ ModestEmailClipboardPrivate *priv = NULL;;
+ gboolean result = FALSE;
+
+ g_return_val_if_fail (MODEST_IS_EMAIL_CLIPBOARD (self), FALSE);
+ priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (self);
+
+ result = ((priv->selection == NULL) && (priv->src != NULL));
+
+ return result;
+}
+
+const gchar *
+modest_email_clipboard_get_folder_name (ModestEmailClipboard *self)
+{
+ ModestEmailClipboardPrivate *priv = NULL;;
+ const gchar *folder_name = NULL;
+
+ g_return_val_if_fail (MODEST_IS_EMAIL_CLIPBOARD (self), NULL);
+ priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (self);
+
+ /* If cleared, return always FALSE*/
+ if (modest_email_clipboard_cleared (self)) return NULL;
+
+ /* Check target and source folders */
+ folder_name = tny_folder_get_name (priv->src);
+
+ return folder_name;
+}
+
const gchar **
modest_email_clipboard_get_hidding_ids (ModestEmailClipboard *self,
guint *n_selected)