/* globals */
static GObjectClass *parent_class = NULL;
-typedef struct _ModestEmailClipboardPrivate ModestEmailClipboardPrivate;
struct _ModestEmailClipboardPrivate {
TnyList *selection;
TnyFolder *src;
{
static GType my_type = 0;
- if (!my_type) {
+ if (G_UNLIKELY (!my_type)) {
static const GTypeInfo my_info = {
sizeof (ModestEmailClipboardClass),
NULL, /* base init */
static void
modest_email_clipboard_init (ModestEmailClipboard * obj)
{
- ModestEmailClipboardPrivate *priv =
- MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (obj);
+
+ if (obj->priv == NULL)
+ obj->priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (obj);
- priv->src = NULL;
- priv->selection = NULL;
- priv->hidding = NULL;
- priv->delete = FALSE;
+ obj->priv->src = NULL;
+ obj->priv->selection = NULL;
+ obj->priv->hidding = NULL;
+ obj->priv->delete = FALSE;
}
static void
ModestEmailClipboard *
-modest_email_clipboard_new ()
+modest_email_clipboard_new (void)
{
GObject *obj;
- ModestEmailClipboardPrivate *priv;
-
obj = G_OBJECT (g_object_new (MODEST_TYPE_EMAIL_CLIPBOARD, NULL));
- priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (obj);
return MODEST_EMAIL_CLIPBOARD (obj);
}
gboolean
modest_email_clipboard_cleared (ModestEmailClipboard *self)
{
- ModestEmailClipboardPrivate *priv = NULL;;
gboolean cleared = FALSE;
g_return_val_if_fail (MODEST_IS_EMAIL_CLIPBOARD (self), TRUE);
- priv = MODEST_EMAIL_CLIPBOARD_GET_PRIVATE (self);
- cleared = ((priv->src == NULL) && (priv->selection == NULL));
+ cleared = ((self->priv->src == NULL) && (self->priv->selection == NULL));
return cleared;
}
gboolean
modest_email_clipboard_check_source_folder (ModestEmailClipboard *self,
- const TnyFolder *folder)
+ TnyFolder *folder)
{
TnyFolderType folder_type1;
TnyFolderType folder_type2;
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)