- /* check the folder rules for the destination */
- folder = tree_path_to_folder (dest_model, dest_row);
- if (folder) {
- ModestTnyFolderRules rules =
- modest_tny_folder_get_rules (folder);
- forbidden = rules & MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE;
- if (forbidden)
- g_debug ("folder rules: cannot write to that folder");
- g_object_unref (folder);
+ if (!forbidden) {
+ /* check the folder rules for the destination */
+ folder = tree_path_to_folder (dest_model, dest_row);
+ if (TNY_IS_FOLDER(folder)) {
+ ModestTnyFolderRules rules =
+ modest_tny_folder_get_rules (folder);
+ forbidden = rules & MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE;
+
+ if (forbidden)
+ g_debug ("folder rules: cannot write to that folder");
+ g_object_unref (folder);
+ } else if (TNY_IS_FOLDER_STORE(folder)){
+ /* enable local root as destination for folders */
+ if (!MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (folder)
+ && TNY_IS_ACCOUNT (folder))
+ forbidden = TRUE;
+ }