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;
        }
    }
}
Beispiel #2
0
QMessageFolderId addFolder(const Parameters &params)
{
    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();
}