X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-email-clipboard.c;h=c6f6a23770c1327cdd010b385bd0d452dc8edddb;hb=f99eb542955d168e3d9ca3fcd18df22d61ae1d56;hp=af0e19214c97a0a32806b74a34a5bb091f464ab6;hpb=bf831b6566516e6b57de7a64afb732eb8686e792;p=modest diff --git a/src/modest-email-clipboard.c b/src/modest-email-clipboard.c index af0e192..c6f6a23 100644 --- a/src/modest-email-clipboard.c +++ b/src/modest-email-clipboard.c @@ -28,6 +28,7 @@ */ #include +#include /* 'private'/'protected' functions */ static void modest_email_clipboard_class_init (ModestEmailClipboardClass * klass); @@ -196,13 +197,14 @@ modest_email_clipboard_set_data (ModestEmailClipboard *self, 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); } @@ -256,6 +258,35 @@ modest_email_clipboard_cleared (ModestEmailClipboard *self) return cleared; } +gboolean +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; + gboolean same_folder = FALSE; + + g_return_val_if_fail (MODEST_IS_EMAIL_CLIPBOARD (self), TRUE); + g_return_val_if_fail (TNY_IS_FOLDER (folder), TRUE); + priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (self); + + /* If cleared, return always FALSE*/ + if (modest_email_clipboard_cleared (self)) return FALSE; + + /* Check target and source folders */ + id1 = tny_folder_get_id (priv->src); + 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); + same_folder = ((folder_type1 == folder_type2) && + (!g_ascii_strcasecmp (id1, id2))); + + return same_folder; +} + const gchar ** modest_email_clipboard_get_hidding_ids (ModestEmailClipboard *self, guint *n_selected)