void QMFStorePrivate::createNonexistentFolder(QMailStore *store, const QString &path, quint64 status) { QMailFolderKey pathKey(QMailFolderKey::path(path)); QMailFolderKey accountKey(QMailFolderKey::parentAccountId(QMailAccountId())); if (store->countFolders(pathKey & accountKey) == 0) { QMailFolder folder; folder.setPath(path); folder.setStatus(status); if (!store->addFolder(&folder)) { qWarning() << "Unable to add folder for:" << path; } } }
QMessageFolderId addFolder(const Parameters ¶ms) { QString path(params["path"]); QString name(params["name"]); QString parentAccountName(params["parentAccountName"]); QString parentFolderPath(params["parentFolderPath"]); if (!path.isEmpty() && !parentAccountName.isEmpty()) { // Find the named account QMailAccountIdList accountIds(QMailStore::instance()->queryAccounts(QMailAccountKey::name(parentAccountName))); if (accountIds.count() == 1) { QMailFolder folder; folder.setPath(path); folder.setParentAccountId(accountIds.first()); if (!name.isEmpty()) { folder.setDisplayName(name); } if (!parentFolderPath.isEmpty()) { QMailFolderKey key(QMailFolderKey::path(parentFolderPath) & QMailFolderKey::parentAccountId(folder.parentAccountId())); QMailFolderIdList folderIds(QMailStore::instance()->queryFolders(key)); if (folderIds.count() == 1) { folder.setParentFolderId(folderIds.first()); } else { qWarning() << "Unable to locate parent folder:" << parentFolderPath; } } if (!QMailStore::instance()->addFolder(&folder)) { qWarning() << "Unable to addFolder:" << path; } else { return QmfHelpers::convert(folder.id()); } } else { qWarning() << "Unable to locate parent account:" << parentAccountName; } } return QMessageFolderId(); }