X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-email-clipboard.c;h=5c898cade661721f3e8b7336ce9c5a0175e49f38;hp=b91eea4d33a542b48a6aab8f4702b8623fcc155f;hb=e61d161744d31c7799d1a7b5246b53a7a03d9ea5;hpb=250e23c3f8c9b93a86641c4c8acecc1adb817e02 diff --git a/src/modest-email-clipboard.c b/src/modest-email-clipboard.c index b91eea4..5c898ca 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); @@ -261,6 +262,8 @@ 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; @@ -275,12 +278,65 @@ modest_email_clipboard_check_source_folder (ModestEmailClipboard *self, /* 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)