summaryrefslogtreecommitdiffstats
path: root/examples/applications/qtmail/emailclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/applications/qtmail/emailclient.cpp')
-rw-r--r--examples/applications/qtmail/emailclient.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/examples/applications/qtmail/emailclient.cpp b/examples/applications/qtmail/emailclient.cpp
index d89493ab..41c9b602 100644
--- a/examples/applications/qtmail/emailclient.cpp
+++ b/examples/applications/qtmail/emailclient.cpp
@@ -1827,8 +1827,7 @@ void EmailClient::folderSelected(QMailMessageSet *item)
if (item) {
contextStatusUpdate();
- bool atAccount(false);
- bool atFolder(false);
+ bool atAccount(false), atFolder(false), showCreate(false), showDelete(false), showRename(false);
QMailAccountId accountId(item->data(EmailFolderModel::ContextualAccountIdRole).value<QMailAccountId>());
QMailFolderId folderId(item->data(EmailFolderModel::FolderIdRole).value<QMailFolderId>());
@@ -1850,18 +1849,25 @@ void EmailClient::folderSelected(QMailMessageSet *item)
synchronizeAction->setText(tr("Exclude folder"));
else
synchronizeAction->setText(tr("Include folder"));
- }
- else
- {
+
+ if (item->data(EmailFolderModel::FolderChildCreationPermittedRole).value<bool>())
+ showCreate = true;
+ if (item->data(EmailFolderModel::FolderDeletionPermittedRole).value<bool>())
+ showDelete = true;
+ if (item->data(EmailFolderModel::FolderRenamePermittedRole).value<bool>())
+ showRename = true;
+ } else {
//Can still create a root folder
selectedFolderId = QMailFolderId(0);
+ //TODO: check if account supports creating folders
+ showCreate = true;
}
}
setActionVisible(synchronizeAction, atFolder);
- setActionVisible(createFolderAction, atAccount);
- setActionVisible(deleteFolderAction, atFolder);
- setActionVisible(renameFolderAction, atFolder);
+ setActionVisible(createFolderAction, showCreate);
+ setActionVisible(deleteFolderAction, showDelete);
+ setActionVisible(renameFolderAction, showRename);
updateGetAccountButton();