type = TNY_FOLDER_TYPE_UNKNOWN;
folder = g_utf8_strdown (name, strlen(name));
- if (strcmp (folder, "inbox") == 0 ||
- strcmp (folder, _("inbox")) == 0 ||
- strcmp (folder, _("mcen_me_folder_inbox")) == 0)
- type = TNY_FOLDER_TYPE_INBOX;
- else if (strcmp (folder, "outbox") == 0 ||
+// if (strcmp (folder, "inbox") == 0 ||
+// strcmp (folder, _("inbox")) == 0 ||
+// strcmp (folder, _("mcen_me_folder_inbox")) == 0)
+// type = TNY_FOLDER_TYPE_INBOX;
+ if (strcmp (folder, "outbox") == 0 ||
strcmp (folder, _("outbox")) == 0 ||
strcmp (folder, _("mcen_me_folder_outbox")) == 0)
type = TNY_FOLDER_TYPE_OUTBOX;
- else if (g_str_has_prefix(folder, "junk") ||
- g_str_has_prefix(folder, _("junk")))
- type = TNY_FOLDER_TYPE_JUNK;
- else if (g_str_has_prefix(folder, "trash") ||
- g_str_has_prefix(folder, _("trash")))
- type = TNY_FOLDER_TYPE_TRASH;
+// else if (g_str_has_prefix(folder, "junk") ||
+// g_str_has_prefix(folder, _("junk")))
+// type = TNY_FOLDER_TYPE_JUNK;
+// else if (g_str_has_prefix(folder, "trash") ||
+// g_str_has_prefix(folder, _("trash")))
+// type = TNY_FOLDER_TYPE_TRASH;
else if (g_str_has_prefix(folder, "sent") ||
g_str_has_prefix(folder, _("sent")) ||
strcmp (folder, _("mcen_me_folder_sent")) == 0)
g_str_has_prefix(folder, _("draft")) ||
strcmp (folder, _("mcen_me_folder_drafts")) == 0)
type = TNY_FOLDER_TYPE_DRAFTS;
- else if (g_str_has_prefix(folder, "notes") ||
- g_str_has_prefix(folder, _("notes")))
- type = TNY_FOLDER_TYPE_NOTES;
- else if (g_str_has_prefix(folder, "contacts") ||
- g_str_has_prefix(folder, _("contacts")))
- type = TNY_FOLDER_TYPE_CONTACTS;
- else if (g_str_has_prefix(folder, "calendar") ||
- g_str_has_prefix(folder, _("calendar")))
- type = TNY_FOLDER_TYPE_CALENDAR;
+// else if (g_str_has_prefix(folder, "notes") ||
+// g_str_has_prefix(folder, _("notes")))
+// type = TNY_FOLDER_TYPE_NOTES;
+// else if (g_str_has_prefix(folder, "contacts") ||
+// g_str_has_prefix(folder, _("contacts")))
+// type = TNY_FOLDER_TYPE_CONTACTS;
+// else if (g_str_has_prefix(folder, "calendar") ||
+// g_str_has_prefix(folder, _("calendar")))
+// type = TNY_FOLDER_TYPE_CALENDAR;
g_free (folder);
return type;
switch (type) {
case TNY_FOLDER_TYPE_OUTBOX:
case TNY_FOLDER_TYPE_SENT:
- rules |= MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE;
case TNY_FOLDER_TYPE_DRAFTS:
+ rules |= MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE;
case TNY_FOLDER_TYPE_INBOX:
case TNY_FOLDER_TYPE_JUNK:
case TNY_FOLDER_TYPE_TRASH:
}
} else {
ModestTransportStoreProtocol proto;
- TnyAccount *account =
- modest_tny_folder_get_account ((TnyFolder*)folder);
+ TnyFolderType folder_type;
+ TnyAccount *account;
+
+ account = modest_tny_folder_get_account ((TnyFolder*)folder);
if (!account)
return -1; /* no account: nothing is allowed */
}
g_object_unref (G_OBJECT(account));
+
+ /* Neither INBOX not ROOT folders should me moveable */
+ folder_type = modest_tny_folder_guess_folder_type (folder);
+ if ((folder_type == TNY_FOLDER_TYPE_INBOX) ||
+ (folder_type == TNY_FOLDER_TYPE_ROOT)) {
+ rules |= MODEST_FOLDER_RULES_FOLDER_NON_DELETABLE;
+ rules |= MODEST_FOLDER_RULES_FOLDER_NON_MOVEABLE;
+ rules |= MODEST_FOLDER_RULES_FOLDER_NON_RENAMEABLE;
+ }
}
return rules;
}
gboolean
modest_tny_folder_is_local_folder (TnyFolder *folder)
{
- g_return_val_if_fail (folder, FALSE);
+ g_return_val_if_fail (TNY_IS_FOLDER (folder), FALSE);
/* The merge folder is a special case,
* used to merge the per-account local outbox folders.
/* Outbox is a special case, using a derived TnyAccount: */
if (MODEST_IS_TNY_OUTBOX_ACCOUNT (account)) {
- g_object_unref (account);
- return TRUE;
+ g_object_unref (G_OBJECT(account));
+ return TRUE;
}
const gchar* account_id = tny_account_get_id (account);
- if (!account_id)
+ if (!account_id) {
+ g_object_unref (G_OBJECT(account));
return FALSE;
-
- g_object_unref (G_OBJECT(account));
+ }
+ g_object_unref (G_OBJECT(account));
return (strcmp (account_id, MODEST_LOCAL_FOLDERS_ACCOUNT_ID) == 0);
}