diff options
| author | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-05 15:39:36 +0200 |
|---|---|---|
| committer | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-13 10:07:43 +0200 |
| commit | 1c42d00b822c4f209eb33fa66134d6ac5670266e (patch) | |
| tree | fd12c07ec075002eea62b75b99716e449ede0ad1 | |
| parent | de24e206b396395e4c73172371e488dbb1858e45 (diff) | |
Wrap some ridiculously long lines in sql and messageserver side
Some minor changes too like broken indentation.
Change-Id: I2c72f64d4472ca669f339904ff953f2a39118baf
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
| -rw-r--r-- | src/libraries/qmfclient/qmailkeyargument.h | 2 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailmessageserver.cpp | 39 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailmessageserver.h | 24 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailmessagesortkey.h | 1 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailstoresql_p.cpp | 462 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailstoresql_p.h | 86 | ||||
| -rw-r--r-- | src/libraries/qmfmessageserver/qmailmessageservice.cpp | 31 | ||||
| -rw-r--r-- | src/plugins/messageservices/imap/imapprotocol.cpp | 356 |
8 files changed, 755 insertions, 246 deletions
diff --git a/src/libraries/qmfclient/qmailkeyargument.h b/src/libraries/qmfclient/qmailkeyargument.h index 04fc97af..42cdc23f 100644 --- a/src/libraries/qmfclient/qmailkeyargument.h +++ b/src/libraries/qmfclient/qmailkeyargument.h @@ -189,7 +189,7 @@ public: : property(p), op(c) { - valueList.append(v); + valueList.append(v); } template<typename ListType> diff --git a/src/libraries/qmfclient/qmailmessageserver.cpp b/src/libraries/qmfclient/qmailmessageserver.cpp index af64c3af..2456310e 100644 --- a/src/libraries/qmfclient/qmailmessageserver.cpp +++ b/src/libraries/qmfclient/qmailmessageserver.cpp @@ -499,7 +499,9 @@ void QMailMessageServer::retrieveFolderList(quint64 action, const QMailAccountId \sa retrievalCompleted() */ -void QMailMessageServer::retrieveMessageList(quint64 action, const QMailAccountId &accountId, const QMailFolderId &folderId, uint minimum, const QMailMessageSortKey &sort) +void QMailMessageServer::retrieveMessageList(quint64 action, const QMailAccountId &accountId, + const QMailFolderId &folderId, uint minimum, + const QMailMessageSortKey &sort) { d->retrieveMessageList(action, accountId, folderId, minimum, sort); } @@ -523,7 +525,9 @@ void QMailMessageServer::retrieveMessageList(quint64 action, const QMailAccountI \sa retrievalCompleted() */ -void QMailMessageServer::retrieveMessageLists(quint64 action, const QMailAccountId &accountId, const QMailFolderIdList &folderIds, uint minimum, const QMailMessageSortKey &sort) +void QMailMessageServer::retrieveMessageLists(quint64 action, const QMailAccountId &accountId, + const QMailFolderIdList &folderIds, uint minimum, + const QMailMessageSortKey &sort) { d->retrieveMessageLists(action, accountId, folderIds, minimum, sort); } @@ -595,7 +599,8 @@ void QMailMessageServer::createStandardFolders(quint64 action, const QMailAccoun \sa retrievalCompleted() */ -void QMailMessageServer::retrieveMessages(quint64 action, const QMailMessageIdList &messageIds, QMailRetrievalAction::RetrievalSpecification spec) +void QMailMessageServer::retrieveMessages(quint64 action, const QMailMessageIdList &messageIds, + QMailRetrievalAction::RetrievalSpecification spec) { d->retrieveMessages(action, messageIds, spec); } @@ -642,7 +647,9 @@ void QMailMessageServer::retrieveMessageRange(quint64 action, const QMailMessage \sa retrievalCompleted() */ -void QMailMessageServer::retrieveMessagePartRange(quint64 action, const QMailMessagePart::Location &partLocation, uint minimum) +void QMailMessageServer::retrieveMessagePartRange(quint64 action, + const QMailMessagePart::Location &partLocation, + uint minimum) { d->retrieveMessagePartRange(action, partLocation, minimum); } @@ -675,7 +682,8 @@ void QMailMessageServer::exportUpdates(quint64 action, const QMailAccountId &acc This function requires the device to be online, it may initiate communication with external servers. */ -void QMailMessageServer::onlineCopyMessages(quint64 action, const QMailMessageIdList& mailList, const QMailFolderId &destinationId) +void QMailMessageServer::onlineCopyMessages(quint64 action, const QMailMessageIdList& mailList, + const QMailFolderId &destinationId) { d->onlineCopyMessages(action, mailList, destinationId); } @@ -689,7 +697,8 @@ void QMailMessageServer::onlineCopyMessages(quint64 action, const QMailMessageId This function requires the device to be online, it may initiate communication with external servers. */ -void QMailMessageServer::onlineMoveMessages(quint64 action, const QMailMessageIdList& mailList, const QMailFolderId &destinationId) +void QMailMessageServer::onlineMoveMessages(quint64 action, const QMailMessageIdList& mailList, + const QMailFolderId &destinationId) { d->onlineMoveMessages(action, mailList, destinationId); } @@ -708,7 +717,8 @@ void QMailMessageServer::onlineMoveMessages(quint64 action, const QMailMessageId This function requires the device to be online, it may initiate communication with external servers. */ -void QMailMessageServer::onlineFlagMessagesAndMoveToStandardFolder(quint64 action, const QMailMessageIdList& mailList, quint64 setMask, quint64 unsetMask) +void QMailMessageServer::onlineFlagMessagesAndMoveToStandardFolder(quint64 action, const QMailMessageIdList& mailList, + quint64 setMask, quint64 unsetMask) { d->onlineFlagMessagesAndMoveToStandardFolder(action, mailList, setMask, unsetMask); } @@ -735,8 +745,6 @@ void QMailMessageServer::updateMessages(quint64 action, const QMailMessageMetaDa d->updateMessages(action, messages); } - - /*! Requests that the MessageServer create a new folder named \a name, created in the account identified by \a accountId. @@ -751,7 +759,8 @@ void QMailMessageServer::updateMessages(quint64 action, const QMailMessageMetaDa \sa onlineDeleteFolder() */ -void QMailMessageServer::onlineCreateFolder(quint64 action, const QString &name, const QMailAccountId &accountId, const QMailFolderId &parentId) +void QMailMessageServer::onlineCreateFolder(quint64 action, const QString &name, const QMailAccountId &accountId, + const QMailFolderId &parentId) { d->onlineCreateFolder(action, name, accountId, parentId); } @@ -829,7 +838,8 @@ void QMailMessageServer::cancelTransfer(quint64 action) \sa QMailStore::removeMessage() */ -void QMailMessageServer::onlineDeleteMessages(quint64 action, const QMailMessageIdList& mailList, QMailStore::MessageRemovalOption option) +void QMailMessageServer::onlineDeleteMessages(quint64 action, const QMailMessageIdList& mailList, + QMailStore::MessageRemovalOption option) { d->onlineDeleteMessages(action, mailList, option); } @@ -956,7 +966,8 @@ void QMailMessageServer::restoreToPreviousFolder(quint64 action, const QMailMess \sa matchingMessageIds(), messagesCount(), remainingMessagesCount() */ -void QMailMessageServer::searchMessages(quint64 action, const QMailMessageKey& filter, const QString& bodyText, QMailSearchAction::SearchSpecification spec, const QMailMessageSortKey &sort) +void QMailMessageServer::searchMessages(quint64 action, const QMailMessageKey& filter, const QString& bodyText, + QMailSearchAction::SearchSpecification spec, const QMailMessageSortKey &sort) { d->searchMessages(action, filter, bodyText, spec, sort); } @@ -982,7 +993,9 @@ void QMailMessageServer::searchMessages(quint64 action, const QMailMessageKey& f \sa matchingMessageIds(), messagesCount(), remainingMessagesCount() */ -void QMailMessageServer::searchMessages(quint64 action, const QMailMessageKey& filter, const QString& bodyText, QMailSearchAction::SearchSpecification spec, quint64 limit, const QMailMessageSortKey &sort) +void QMailMessageServer::searchMessages(quint64 action, const QMailMessageKey& filter, const QString& bodyText, + QMailSearchAction::SearchSpecification spec, quint64 limit, + const QMailMessageSortKey &sort) { d->searchMessages(action, filter, bodyText, spec, limit, sort); } diff --git a/src/libraries/qmfclient/qmailmessageserver.h b/src/libraries/qmfclient/qmailmessageserver.h index 8c02920a..bdeb7294 100644 --- a/src/libraries/qmfclient/qmailmessageserver.h +++ b/src/libraries/qmfclient/qmailmessageserver.h @@ -104,14 +104,18 @@ public Q_SLOTS: void transmitMessages(quint64, const QMailAccountId &accountId); void transmitMessage(quint64, const QMailMessageId &messageId); - void retrieveFolderList(quint64, const QMailAccountId &accountId, const QMailFolderId &folderId, bool descending); - void retrieveMessageList(quint64, const QMailAccountId &accountId, const QMailFolderId &folderId, uint minimum, const QMailMessageSortKey &sort); - void retrieveMessageLists(quint64, const QMailAccountId &accountId, const QMailFolderIdList &folderIds, uint minimum, const QMailMessageSortKey &sort); + void retrieveFolderList(quint64, const QMailAccountId &accountId, const QMailFolderId &folderId, + bool descending); + void retrieveMessageList(quint64, const QMailAccountId &accountId, const QMailFolderId &folderId, + uint minimum, const QMailMessageSortKey &sort); + void retrieveMessageLists(quint64, const QMailAccountId &accountId, const QMailFolderIdList &folderIds, + uint minimum, const QMailMessageSortKey &sort); void retrieveNewMessages(quint64, const QMailAccountId &accountId, const QMailFolderIdList &folderIds); void createStandardFolders(quint64, const QMailAccountId &accountId); - void retrieveMessages(quint64, const QMailMessageIdList &messageIds, QMailRetrievalAction::RetrievalSpecification spec); + void retrieveMessages(quint64, const QMailMessageIdList &messageIds, + QMailRetrievalAction::RetrievalSpecification spec); void retrieveMessagePart(quint64, const QMailMessagePart::Location &partLocation); void retrieveMessageRange(quint64, const QMailMessageId &messageId, uint minimum); @@ -121,11 +125,13 @@ public Q_SLOTS: void onlineCopyMessages(quint64, const QMailMessageIdList& mailList, const QMailFolderId &destinationId); void onlineMoveMessages(quint64, const QMailMessageIdList& mailList, const QMailFolderId &destinationId); - void onlineFlagMessagesAndMoveToStandardFolder(quint64, const QMailMessageIdList& mailList, quint64 setMask, quint64 unsetMask); + void onlineFlagMessagesAndMoveToStandardFolder(quint64, const QMailMessageIdList& mailList, + quint64 setMask, quint64 unsetMask); void addMessages(quint64, const QMailMessageMetaDataList &messages); void updateMessages(quint64, const QMailMessageMetaDataList &messages); - void onlineCreateFolder(quint64, const QString &name, const QMailAccountId &accountId, const QMailFolderId &parentId); + void onlineCreateFolder(quint64, const QString &name, const QMailAccountId &accountId, + const QMailFolderId &parentId); void onlineRenameFolder(quint64, const QMailFolderId &folderId, const QString &name); void onlineDeleteFolder(quint64, const QMailFolderId &folderId); void onlineMoveFolder(quint64, const QMailFolderId &folderId, const QMailFolderId &newParentId); @@ -140,8 +146,10 @@ public Q_SLOTS: void onlineDeleteMessages(quint64, const QMailMessageIdList& mailList, QMailStore::MessageRemovalOption); - void searchMessages(quint64, const QMailMessageKey& filter, const QString& bodyText, QMailSearchAction::SearchSpecification spec, const QMailMessageSortKey &sort); - void searchMessages(quint64, const QMailMessageKey& filter, const QString& bodyText, QMailSearchAction::SearchSpecification spec, quint64 limit, const QMailMessageSortKey &sort); + void searchMessages(quint64, const QMailMessageKey& filter, const QString& bodyText, + QMailSearchAction::SearchSpecification spec, const QMailMessageSortKey &sort); + void searchMessages(quint64, const QMailMessageKey& filter, const QString& bodyText, + QMailSearchAction::SearchSpecification spec, quint64 limit, const QMailMessageSortKey &sort); void countMessages(quint64, const QMailMessageKey& filter, const QString& bodyText); void cancelSearch(quint64); diff --git a/src/libraries/qmfclient/qmailmessagesortkey.h b/src/libraries/qmfclient/qmailmessagesortkey.h index 7453ee7e..a83fd639 100644 --- a/src/libraries/qmfclient/qmailmessagesortkey.h +++ b/src/libraries/qmfclient/qmailmessagesortkey.h @@ -70,7 +70,6 @@ public: typedef QMailSortKeyArgument<Property> ArgumentType; -public: QMailMessageSortKey(); QMailMessageSortKey(const QMailMessageSortKey& other); virtual ~QMailMessageSortKey(); diff --git a/src/libraries/qmfclient/qmailstoresql_p.cpp b/src/libraries/qmfclient/qmailstoresql_p.cpp index 9f19df43..675b6c24 100644 --- a/src/libraries/qmfclient/qmailstoresql_p.cpp +++ b/src/libraries/qmfclient/qmailstoresql_p.cpp @@ -218,7 +218,6 @@ public: typedef Guard<ProcessMutex> MutexGuard; - QString escape(const QString &original, const QChar &escapee, const QChar &escaper = QChar::fromLatin1('\\')) { QString result(original); @@ -251,7 +250,8 @@ QPair<QString, QString> extractUriElements(const QString &uri) while ((index != -1) && (uri.at(index - 1) == QChar::fromLatin1('\\'))) index = uri.indexOf(QChar::fromLatin1(':'), index + 1); - return qMakePair(unescape(uri.mid(0, index), QChar::fromLatin1(':')), unescape(uri.mid(index + 1), QChar::fromLatin1(':'))); + return qMakePair(unescape(uri.mid(0, index), QChar::fromLatin1(':')), + unescape(uri.mid(index + 1), QChar::fromLatin1(':'))); } QString identifierValue(const QString &str) @@ -340,51 +340,120 @@ class MessageValueExtractor<QVariant> public: MessageValueExtractor(const QVariant &v) : _value(v) {} - QMailMessageId id() const { return QMailMessageId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailMessageId id() const + { + return QMailMessageId(QMailStoreSql::extractValue<quint64>(_value)); + } - QMailMessage::MessageType messageType() const { return static_cast<QMailMessage::MessageType>(QMailStoreSql::extractValue<int>(_value)); } + QMailMessage::MessageType messageType() const + { + return static_cast<QMailMessage::MessageType>(QMailStoreSql::extractValue<int>(_value)); + } - QMailFolderId parentFolderId() const { return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailFolderId parentFolderId() const + { + return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); + } - QMailAddress from() const { return QMailAddress(QMailStoreSql::extractValue<QString>(_value)); } + QMailAddress from() const + { + return QMailAddress(QMailStoreSql::extractValue<QString>(_value)); + } - QList<QMailAddress> to() const { return QMailAddress::fromStringList(QMailStoreSql::extractValue<QString>(_value)); } + QList<QMailAddress> to() const + { + return QMailAddress::fromStringList(QMailStoreSql::extractValue<QString>(_value)); + } - QString subject() const { return QMailStoreSql::extractValue<QString>(_value); } + QString subject() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QMailTimeStamp date() const { return QMailTimeStamp(QMailStoreSql::extractValue<QDateTime>(_value)); } + QMailTimeStamp date() const + { + return QMailTimeStamp(QMailStoreSql::extractValue<QDateTime>(_value)); + } - QMailTimeStamp receivedDate() const { return QMailTimeStamp(QMailStoreSql::extractValue<QDateTime>(_value)); } + QMailTimeStamp receivedDate() const + { + return QMailTimeStamp(QMailStoreSql::extractValue<QDateTime>(_value)); + } - quint64 status() const { return QMailStoreSql::extractValue<quint64>(_value); } + quint64 status() const + { + return QMailStoreSql::extractValue<quint64>(_value); + } - QMailAccountId parentAccountId() const { return QMailAccountId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailAccountId parentAccountId() const + { + return QMailAccountId(QMailStoreSql::extractValue<quint64>(_value)); + } - QString serverUid() const { return QMailStoreSql::extractValue<QString>(_value); } + QString serverUid() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - int size() const { return QMailStoreSql::extractValue<int>(_value); } + int size() const + { + return QMailStoreSql::extractValue<int>(_value); + } - QMailMessage::ContentType content() const { return static_cast<QMailMessage::ContentType>(QMailStoreSql::extractValue<int>(_value)); } + QMailMessage::ContentType content() const + { + return static_cast<QMailMessage::ContentType>(QMailStoreSql::extractValue<int>(_value)); + } - QMailFolderId previousParentFolderId() const { return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailFolderId previousParentFolderId() const + { + return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); + } - QString contentUri() const { return QMailStoreSql::extractValue<QString>(_value); } + QString contentUri() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QMailMessageId inResponseTo() const { return QMailMessageId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailMessageId inResponseTo() const + { + return QMailMessageId(QMailStoreSql::extractValue<quint64>(_value)); + } - QMailMessage::ResponseType responseType() const { return static_cast<QMailMessage::ResponseType>(QMailStoreSql::extractValue<int>(_value)); } + QMailMessage::ResponseType responseType() const + { + return static_cast<QMailMessage::ResponseType>(QMailStoreSql::extractValue<int>(_value)); + } - QString copyServerUid() const { return QMailStoreSql::extractValue<QString>(_value); } + QString copyServerUid() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QMailFolderId restoreFolderId() const { return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailFolderId restoreFolderId() const + { + return QMailFolderId(QMailStoreSql::extractValue<quint64>(_value)); + } - QString listId() const { return QMailStoreSql::extractValue<QString>(_value); } + QString listId() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QString rfcId() const { return QMailStoreSql::extractValue<QString>(_value); } + QString rfcId() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QString preview() const { return QMailStoreSql::extractValue<QString>(_value); } + QString preview() const + { + return QMailStoreSql::extractValue<QString>(_value); + } - QMailThreadId parentThreadId() const { return QMailThreadId(QMailStoreSql::extractValue<quint64>(_value)); } + QMailThreadId parentThreadId() const + { + return QMailThreadId(QMailStoreSql::extractValue<quint64>(_value)); + } }; // Properties of the mailmessages table @@ -710,7 +779,6 @@ static bool caseInsensitiveProperty(QMailThreadSortKey::Property property) return caseInsensitiveProperty(matchingProperty<QMailThreadSortKey::Property, QMailThreadKey::Property>(property)); } - static QMap<QMailAccountSortKey::Property, QMailAccountKey::Property> accountSortMapInit() { QMap<QMailAccountSortKey::Property, QMailAccountKey::Property> map; @@ -735,31 +803,40 @@ QMailAccountKey::Property matchingProperty<QMailAccountSortKey::Property, QMailA static bool caseInsensitiveProperty(QMailAccountSortKey::Property property) { - return caseInsensitiveProperty(matchingProperty<QMailAccountSortKey::Property, QMailAccountKey::Property>(property)); + return caseInsensitiveProperty(matchingProperty<QMailAccountSortKey::Property, + QMailAccountKey::Property>(property)); } template<> QString fieldName<QMailMessageSortKey::Property>(QMailMessageSortKey::Property property, const QString &alias) { - return qualifiedName(messagePropertyName(matchingProperty<QMailMessageSortKey::Property, QMailMessageKey::Property>(property)), alias); + return qualifiedName(messagePropertyName(matchingProperty<QMailMessageSortKey::Property, + QMailMessageKey::Property>(property)), + alias); } template<> QString fieldName<QMailFolderSortKey::Property>(QMailFolderSortKey::Property property, const QString &alias) { - return qualifiedName(folderPropertyName(matchingProperty<QMailFolderSortKey::Property, QMailFolderKey::Property>(property)), alias); + return qualifiedName(folderPropertyName(matchingProperty<QMailFolderSortKey::Property, + QMailFolderKey::Property>(property)), + alias); } template<> QString fieldName<QMailThreadSortKey::Property>(QMailThreadSortKey::Property property, const QString &alias) { - return qualifiedName(threadPropertyName(matchingProperty<QMailThreadSortKey::Property, QMailThreadKey::Property>(property)), alias); + return qualifiedName(threadPropertyName(matchingProperty<QMailThreadSortKey::Property, + QMailThreadKey::Property>(property)), + alias); } template<> QString fieldName<QMailAccountSortKey::Property>(QMailAccountSortKey::Property property, const QString &alias) { - return qualifiedName(accountPropertyName(matchingProperty<QMailAccountSortKey::Property, QMailAccountKey::Property>(property)), alias); + return qualifiedName(accountPropertyName(matchingProperty<QMailAccountSortKey::Property, + QMailAccountKey::Property>(property)), + alias); } template<typename PropertyType> @@ -1029,7 +1106,10 @@ public: QMailMessageId id() const { return QMailMessageId(value<quint64>(QMailMessageKey::Id)); } - QMailMessage::MessageType messageType() const { return static_cast<QMailMessage::MessageType>(value<int>(QMailMessageKey::Type, QMailMessage::None)); } + QMailMessage::MessageType messageType() const + { + return static_cast<QMailMessage::MessageType>(value<int>(QMailMessageKey::Type, QMailMessage::None)); + } QMailFolderId parentFolderId() const { return QMailFolderId(value<quint64>(QMailMessageKey::ParentFolderId)); } @@ -1063,7 +1143,10 @@ public: int size() const { return value<int>(QMailMessageKey::Size); } - QMailMessage::ContentType content() const { return static_cast<QMailMessage::ContentType>(value<int>(QMailMessageKey::ContentType, QMailMessage::UnknownContent)); } + QMailMessage::ContentType content() const + { + return static_cast<QMailMessage::ContentType>(value<int>(QMailMessageKey::ContentType, QMailMessage::UnknownContent)); + } QMailFolderId previousParentFolderId() const { return QMailFolderId(value<quint64>(QMailMessageKey::PreviousParentFolderId)); } @@ -1085,8 +1168,10 @@ public: QMailMessageId inResponseTo() const { return QMailMessageId(value<quint64>(QMailMessageKey::InResponseTo)); } - QMailMessage::ResponseType responseType() const { return static_cast<QMailMessage::ResponseType>(value<int>(QMailMessageKey::ResponseType, QMailMessage::NoResponse)); } - + QMailMessage::ResponseType responseType() const + { + return static_cast<QMailMessage::ResponseType>(value<int>(QMailMessageKey::ResponseType, QMailMessage::NoResponse)); + } QString copyServerUid() const { return value<QString>(QMailMessageKey::CopyServerUid); } @@ -1135,9 +1220,16 @@ public: QVariantList subject() const { return stringValues(); } - QVariant date() const { const QDateTime &dt = QMailStoreSql::extractValue<QDateTime>(arg.valueList.first()); return dt.isNull() ? QVariant() : QVariant(dt); } + QVariant date() const { + const QDateTime &dt = QMailStoreSql::extractValue<QDateTime>(arg.valueList.first()); + return dt.isNull() ? QVariant() : QVariant(dt); + } - QVariant receivedDate() const { const QDateTime &dt = QMailStoreSql::extractValue<QDateTime>(arg.valueList.first()); return dt.isNull() ? QVariant() : QVariant(dt); } + QVariant receivedDate() const + { + const QDateTime &dt = QMailStoreSql::extractValue<QDateTime>(arg.valueList.first()); + return dt.isNull() ? QVariant() : QVariant(dt); + } QVariant status() const { @@ -1760,7 +1852,8 @@ QString buildOrderClause(const ArgumentListType &list, const QString &alias) } -QString operatorString(QMailKey::Comparator op, bool multipleArgs = false, bool patternMatch = false, bool bitwiseMultiples = false) +QString operatorString(QMailKey::Comparator op, bool multipleArgs = false, bool patternMatch = false, + bool bitwiseMultiples = false) { switch (op) { case Equal: @@ -1853,10 +1946,12 @@ QString baseExpression(const QString &column, QMailKey::Comparator op, bool mult template<typename Key> -QString whereClauseItem(const Key &key, const typename Key::ArgumentType &arg, const QString &alias, const QString &field, const QMailStoreSql &store); +QString whereClauseItem(const Key &key, const typename Key::ArgumentType &arg, const QString &alias, + const QString &field, const QMailStoreSql &store); template<> -QString whereClauseItem<QMailAccountKey>(const QMailAccountKey &, const QMailAccountKey::ArgumentType &a, const QString &alias, const QString &field, const QMailStoreSql &store) +QString whereClauseItem<QMailAccountKey>(const QMailAccountKey &, const QMailAccountKey::ArgumentType &a, + const QString &alias, const QString &field, const QMailStoreSql &store) { QString item; { @@ -1920,7 +2015,8 @@ QString whereClauseItem<QMailAccountKey>(const QMailAccountKey &, const QMailAcc } template<> -QString whereClauseItem<QMailMessageKey>(const QMailMessageKey &key, const QMailMessageKey::ArgumentType &a, const QString &alias, const QString &field, const QMailStoreSql &store) +QString whereClauseItem<QMailMessageKey>(const QMailMessageKey &key, const QMailMessageKey::ArgumentType &a, + const QString &alias, const QString &field, const QMailStoreSql &store) { Q_UNUSED(key); QString item; @@ -2095,7 +2191,8 @@ QString whereClauseItem<QMailMessageKey>(const QMailMessageKey &key, const QMail } template<> -QString whereClauseItem<QMailFolderKey>(const QMailFolderKey &key, const QMailFolderKey::ArgumentType &a, const QString &alias, const QString &field, const QMailStoreSql &store) +QString whereClauseItem<QMailFolderKey>(const QMailFolderKey &key, const QMailFolderKey::ArgumentType &a, + const QString &alias, const QString &field, const QMailStoreSql &store) { Q_UNUSED(key); QString item; @@ -2209,7 +2306,8 @@ QString whereClauseItem<QMailFolderKey>(const QMailFolderKey &key, const QMailFo template<> -QString whereClauseItem<QMailThreadKey>(const QMailThreadKey &, const QMailThreadKey::ArgumentType &a, const QString &alias, const QString &field, const QMailStoreSql &store) +QString whereClauseItem<QMailThreadKey>(const QMailThreadKey &, const QMailThreadKey::ArgumentType &a, + const QString &alias, const QString &field, const QMailStoreSql &store) { QString item; { @@ -3177,8 +3275,10 @@ void QMailStoreSql::destroyTemporaryTables() QString sql = queryText(query); QString err = query.lastError().text(); - qCWarning(lcMailStore) << "(" << pid << ")" << "Failed to drop temporary table - query:" << qPrintable(sql) << "; error:" << qPrintable(err); - qCWarning(lcMailStore) << "Failed to drop temporary table - query:" << qPrintable(sql) << "; error:" << qPrintable(err); + qCWarning(lcMailStore) << "(" << pid << ")" << "Failed to drop temporary table - query:" + << qPrintable(sql) << "; error:" << qPrintable(err); + qCWarning(lcMailStore) << "Failed to drop temporary table - query:" << qPrintable(sql) + << "; error:" << qPrintable(err); } } } @@ -3422,7 +3522,9 @@ void QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, metaData->setUnmodified(); } -QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, QMailMessageKey::Properties recordProperties, const QMailMessageKey::Properties& properties) +QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, + QMailMessageKey::Properties recordProperties, + const QMailMessageKey::Properties& properties) { QMailMessageMetaData metaData; @@ -3430,7 +3532,9 @@ QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, return metaData; } -QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, const QMap<QString, QString> &customFields, const QMailMessageKey::Properties& properties) +QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, + const QMap<QString, QString> &customFields, + const QMailMessageKey::Properties& properties) { QMailMessageMetaData metaData; @@ -3443,7 +3547,8 @@ QMailMessageMetaData QMailStoreSql::extractMessageMetaData(const QSqlRecord& r, return metaData; } -QMailMessage QMailStoreSql::extractMessage(const QSqlRecord& r, const QMap<QString, QString> &customFields, const QMailMessageKey::Properties& properties) +QMailMessage QMailStoreSql::extractMessage(const QSqlRecord& r, const QMap<QString, QString> &customFields, + const QMailMessageKey::Properties& properties) { QMailMessage newMessage; @@ -3526,16 +3631,20 @@ QString QMailStoreSql::buildWhereClause(const Key& key, bool nested, bool firstC } } - return ::buildWhereClause(messageKey, messageKey.arguments(), messageKey.subKeys(), messageKey.combiner(), messageKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); + return ::buildWhereClause(messageKey, messageKey.arguments(), messageKey.subKeys(), messageKey.combiner(), + messageKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); } else if (key.isType<QMailFolderKey>()) { const QMailFolderKey &folderKey(key.key<QMailFolderKey>()); - return ::buildWhereClause(folderKey, folderKey.arguments(), folderKey.subKeys(), folderKey.combiner(), folderKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); + return ::buildWhereClause(folderKey, folderKey.arguments(), folderKey.subKeys(), folderKey.combiner(), + folderKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); } else if (key.isType<QMailAccountKey>()) { const QMailAccountKey &accountKey(key.key<QMailAccountKey>()); - return ::buildWhereClause(accountKey, accountKey.arguments(), accountKey.subKeys(), accountKey.combiner(), accountKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); + return ::buildWhereClause(accountKey, accountKey.arguments(), accountKey.subKeys(), accountKey.combiner(), + accountKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); } else if (key.isType<QMailThreadKey>()) { const QMailThreadKey &threadKey(key.key<QMailThreadKey>()); - return ::buildWhereClause(threadKey, threadKey.arguments(), threadKey.subKeys(), threadKey.combiner(), threadKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); + return ::buildWhereClause(threadKey, threadKey.arguments(), threadKey.subKeys(), threadKey.combiner(), + threadKey.isNegated(), nested, firstClause, key.alias(), key.field(), *this); } return QString(); @@ -4248,9 +4357,12 @@ bool QMailStoreSql::setupTables(const QList<TableInfo> &tableList) // Try upgrading the table result = result && upgradeTableVersion(tableName, dbVersion, version); - qCWarning(lcMailStore) << (result ? "Upgraded" : "Unable to upgrade") << "version for table:" << tableName << " from" << dbVersion << "to" << version; + qCWarning(lcMailStore) << (result ? "Upgraded" : "Unable to upgrade") + << "version for table:" << tableName << " from" + << dbVersion << "to" << version; } else { - qCWarning(lcMailStore) << "Incompatible version for table:" << tableName << "- existing" << dbVersion << "!=" << version; + qCWarning(lcMailStore) << "Incompatible version for table:" << tableName + << "- existing" << dbVersion << "!=" << version; result = false; } } @@ -4544,18 +4656,23 @@ bool QMailStoreSql::addFolder(QMailFolder *folder, } bool QMailStoreSql::addMessages(const QList<QMailMessage *> &messages, - QMailMessageIdList *addedMessageIds, QMailThreadIdList *addedThreadIds, QMailMessageIdList *updatedMessageIds, QMailThreadIdList *updatedThreadIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *addedMessageIds, QMailThreadIdList *addedThreadIds, + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *updatedThreadIds, + QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, + QMailAccountIdList *modifiedAccountIds) { // Resolve from overloaded member functions: - AttemptResult (QMailStoreSql::*func)(QMailMessage*, QString const&, QStringList const&, AttemptAddMessageOut*, Transaction&, bool) = &QMailStoreSql::attemptAddMessage; + AttemptResult (QMailStoreSql::*func)(QMailMessage*, QString const&, + QStringList const&, AttemptAddMessageOut*, Transaction&, bool) + = &QMailStoreSql::attemptAddMessage; QSet<QString> contentSchemes; - AttemptAddMessageOut container(addedMessageIds, addedThreadIds, updatedMessageIds, updatedThreadIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); + AttemptAddMessageOut container(addedMessageIds, addedThreadIds, updatedMessageIds, updatedThreadIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); Transaction t(this); - foreach (QMailMessage *message, messages) { // TODO: remove hack to force eager preview generation message->preview(); @@ -4606,12 +4723,17 @@ bool QMailStoreSql::addMessages(const QList<QMailMessage *> &messages, } bool QMailStoreSql::addMessages(const QList<QMailMessageMetaData *> &messages, - QMailMessageIdList *addedMessageIds, QMailThreadIdList *addedThreadIds, QMailMessageIdList *updatedMessageIds, QMailThreadIdList *updatedThreadIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *addedMessageIds, QMailThreadIdList *addedThreadIds, + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *updatedThreadIds, + QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, + QMailAccountIdList *modifiedAccountIds) { // Resolve from overloaded member functions: - AttemptResult (QMailStoreSql::*func)(QMailMessageMetaData*, const QString&, const QStringList&, AttemptAddMessageOut*, Transaction&, bool) = &QMailStoreSql::attemptAddMessage; + AttemptResult (QMailStoreSql::*func)(QMailMessageMetaData*, const QString&, const QStringList&, + AttemptAddMessageOut*, Transaction&, bool) = &QMailStoreSql::attemptAddMessage; - AttemptAddMessageOut out(addedMessageIds, addedThreadIds, updatedMessageIds, updatedThreadIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); + AttemptAddMessageOut out(addedMessageIds, addedThreadIds, updatedMessageIds, updatedThreadIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); Transaction t(this); @@ -4647,9 +4769,13 @@ bool QMailStoreSql::addThread(QMailThread *thread, QMailThreadIdList *addedThrea } bool QMailStoreSql::removeAccounts(const QMailAccountKey &key, - QMailAccountIdList *deletedAccountIds, QMailFolderIdList *deletedFolderIds, QMailThreadIdList *deletedThreadIds, QMailMessageIdList *deletedMessageIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailAccountIdList *deletedAccountIds, QMailFolderIdList *deletedFolderIds, + QMailThreadIdList *deletedThreadIds, QMailMessageIdList *deletedMessageIds, + QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) { - AttemptRemoveAccountOut out(deletedAccountIds, deletedFolderIds, deletedThreadIds, deletedMessageIds, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); + AttemptRemoveAccountOut out(deletedAccountIds, deletedFolderIds, deletedThreadIds, deletedMessageIds, + updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptRemoveAccounts, this, cref(key), @@ -4660,10 +4786,14 @@ bool QMailStoreSql::removeAccounts(const QMailAccountKey &key, bool QMailStoreSql::removeFolders(const QMailFolderKey &key, QMailStore::MessageRemovalOption option, - QMailFolderIdList *deletedFolderIds, QMailMessageIdList *deletedMessageIds, QMailThreadIdList *deletedThreadIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailFolderIdList *deletedFolderIds, QMailMessageIdList *deletedMessageIds, + QMailThreadIdList *deletedThreadIds, QMailMessageIdList *updatedMessageIds, + QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, + QMailAccountIdList *modifiedAccountIds) { - AttemptRemoveFoldersOut out(deletedFolderIds, deletedMessageIds, deletedThreadIds, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); + AttemptRemoveFoldersOut out(deletedFolderIds, deletedMessageIds, deletedThreadIds, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptRemoveFolders, this, @@ -4675,20 +4805,26 @@ bool QMailStoreSql::removeFolders(const QMailFolderKey &key, bool QMailStoreSql::removeMessages(const QMailMessageKey &key, QMailStore::MessageRemovalOption option, - QMailMessageIdList *deletedMessageIds, QMailThreadIdList* deletedThreadIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *deletedMessageIds, QMailThreadIdList* deletedThreadIds, + QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) { return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptRemoveMessages, this, cref(key), option, - deletedMessageIds, deletedThreadIds, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds, + deletedMessageIds, deletedThreadIds, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds, std::placeholders::_1, std::placeholders::_2), QLatin1String("remove messages")); } bool QMailStoreSql::removeThreads(const QMailThreadKey &key, QMailStore::MessageRemovalOption option, - QMailThreadIdList *deletedThreads, QMailMessageIdList *deletedMessageIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) + QMailThreadIdList *deletedThreads, QMailMessageIdList *deletedMessageIds, + QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds) { - AttemptRemoveThreadsOut out(deletedThreads, deletedMessageIds, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds); + AttemptRemoveThreadsOut out(deletedThreads, deletedMessageIds, updatedMessageIds, modifiedFolderIds, + modifiedThreadIds, modifiedAccountIds); return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptRemoveThreads, this, cref(key), option, @@ -4741,7 +4877,9 @@ bool QMailStoreSql::updateThread(QMailThread *t, } bool QMailStoreSql::updateMessages(const QList<QPair<QMailMessageMetaData*, QMailMessage*> > &messages, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, QMailMessageIdList *modifiedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, + QMailMessageIdList *modifiedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds) { QMap<QString, QStringList> contentSyncLater; QMap<QString, QStringList> contentRemoveLater; @@ -4753,7 +4891,8 @@ bool QMailStoreSql::updateMessages(const QList<QPair<QMailMessageMetaData*, QMai foreach (const PairType &pair, messages) { if (!repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptUpdateMessage, this, pair.first, pair.second, - updatedMessageIds, modifiedThreads, modifiedMessageIds, modifiedFolderIds, modifiedAccountIds, &contentRemoveLater, + updatedMessageIds, modifiedThreads, modifiedMessageIds, modifiedFolderIds, + modifiedAccountIds, &contentRemoveLater, std::placeholders::_1, std::placeholders::_2), QLatin1String("update messages"), &t)) { @@ -4816,7 +4955,9 @@ bool QMailStoreSql::updateMessages(const QList<QPair<QMailMessageMetaData*, QMai bool QMailStoreSql::updateMessagesMetaData(const QMailMessageKey &key, const QMailMessageKey::Properties &properties, const QMailMessageMetaData &data, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList *deletedThreads, QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *deletedThreads, + QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds) { return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptUpdateMessagesMetaData, this, cref(key), cref(properties), cref(data), @@ -4827,7 +4968,8 @@ bool QMailStoreSql::updateMessagesMetaData(const QMailMessageKey &key, bool QMailStoreSql::updateMessagesMetaData(const QMailMessageKey &key, quint64 status, bool set, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds) + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, + QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds) { return repeatedly<WriteAccess>(bind(&QMailStoreSql::attemptUpdateMessagesStatus, this, cref(key), status, set, @@ -5069,7 +5211,8 @@ QMailMessageMetaData QMailStoreSql::messageMetaData(const QMailMessageId &id) co { QMailMessageMetaData metaData; // Resolve from overloaded member functions: - AttemptResult (QMailStoreSql::*func)(const QMailMessageId&, QMailMessageMetaData*, ReadLock&) = &QMailStoreSql::attemptMessageMetaData; + AttemptResult (QMailStoreSql::*func)(const QMailMessageId&, QMailMessageMetaData*, ReadLock&) + = &QMailStoreSql::attemptMessageMetaData; repeatedly<ReadAccess>(bind(func, const_cast<QMailStoreSql*>(this), cref(id), &metaData, @@ -5083,7 +5226,8 @@ QMailMessageMetaData QMailStoreSql::messageMetaData(const QString &uid, const QM { QMailMessageMetaData metaData; // Resolve from overloaded member functions: - AttemptResult (QMailStoreSql::*func)(const QString&, const QMailAccountId&, QMailMessageMetaData*, ReadLock&) = &QMailStoreSql::attemptMessageMetaData; + AttemptResult (QMailStoreSql::*func)(const QString&, const QMailAccountId&, QMailMessageMetaData*, ReadLock&) + = &QMailStoreSql::attemptMessageMetaData; repeatedly<ReadAccess>(bind(func, const_cast<QMailStoreSql*>(this), cref(uid), cref(accountId), &metaData, @@ -5093,7 +5237,9 @@ QMailMessageMetaData QMailStoreSql::messageMetaData(const QString &uid, const QM return metaData; } -QMailMessageMetaDataList QMailStoreSql::messagesMetaData(const QMailMessageKey &key, const QMailMessageKey::Properties &properties, QMailStore::ReturnOption option) const +QMailMessageMetaDataList QMailStoreSql::messagesMetaData(const QMailMessageKey &key, + const QMailMessageKey::Properties &properties, + QMailStore::ReturnOption option) const { QList<QMailMessageMetaData> metaData; repeatedly<ReadAccess>(bind(&QMailStoreSql::attemptMessagesMetaData, const_cast<QMailStoreSql*>(this), @@ -5538,7 +5684,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptAddAccount(QMailAccount *acco } QMailStoreSql::AttemptResult QMailStoreSql::attemptSetAccountStandardFolders(const QMailAccountId &id, - const QMap<QMailFolder::StandardFolder, QMailFolderId> &folders, + const QMap<QMailFolder::StandardFolder, + QMailFolderId> &folders, Transaction &t, bool commitOnSuccess) { // Update any standard folders configured @@ -5732,7 +5879,8 @@ struct ReferenceStorer } }; -QMailStoreSql::AttemptResult QMailStoreSql::attemptAddThread(QMailThread *thread, QMailThreadIdList *addedThreadIds, Transaction &t, bool commitOnSuccess) +QMailStoreSql::AttemptResult QMailStoreSql::attemptAddThread(QMailThread *thread, QMailThreadIdList *addedThreadIds, + Transaction &t, bool commitOnSuccess) { // TODO: check preconditions QString senders = QMailAddress::toStringList(thread->senders()).join(QLatin1String(",")); @@ -5775,7 +5923,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptAddThread(QMailThread *thread } -QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessage *message, const QString &identifier, const QStringList &references, AttemptAddMessageOut *out, +QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessage *message, const QString &identifier, + const QStringList &references, AttemptAddMessageOut *out, Transaction &t, bool commitOnSuccess) { if (!message->parentAccountId().isValid()) { @@ -5845,7 +5994,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessage *mess return result; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessageMetaData *metaData, const QString &identifier, const QStringList &references, AttemptAddMessageOut *out, +QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessageMetaData *metaData, const QString &identifier, + const QStringList &references, AttemptAddMessageOut *out, Transaction &t, bool commitOnSuccess) { if (!metaData->parentFolderId().isValid()) { @@ -5898,7 +6048,7 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessageMetaDa } if (metaData->parentThreadId().isValid()) { - //if it is a Trash or Draft message, then we shouldn't update any thread value + // if it is a Trash or Draft message, then we shouldn't update any thread value QMailAccount acc(metaData->parentAccountId()); QMailFolderId trashFolderId = acc.standardFolder(QMailFolder::TrashFolder); QMailFolderId draftFolderId = acc.standardFolder(QMailFolder::DraftsFolder); @@ -6119,7 +6269,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptRemoveAccounts(const QMailAcc { QStringList expiredContent; - if (deleteAccounts(key, *out->deletedAccountIds, *out->deletedFolderIds, *out->deletedThreadIds, *out->deletedMessageIds, expiredContent, *out->updatedMessageIds, *out->modifiedFolderIds, *out->modifiedThreadIds, *out->modifiedAccountIds)) { + if (deleteAccounts(key, *out->deletedAccountIds, *out->deletedFolderIds, *out->deletedThreadIds, + *out->deletedMessageIds, expiredContent, *out->updatedMessageIds, *out->modifiedFolderIds, + *out->modifiedThreadIds, *out->modifiedAccountIds)) { if (commitOnSuccess && t.commit()) { //remove deleted objects from caches removeExpiredData(expiredContent); @@ -6137,7 +6289,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptRemoveFolders(const QMailFold { QStringList expiredContent; - if (deleteFolders(key, option, *out->deletedFolderIds, *out->deletedMessageIds, *out->deletedThreadIds, expiredContent, *out->updatedMessageIds, *out->modifiedFolderIds, *out->modifiedThreadIds, *out->modifiedAccountIds)) { + if (deleteFolders(key, option, *out->deletedFolderIds, *out->deletedMessageIds, *out->deletedThreadIds, + expiredContent, *out->updatedMessageIds, *out->modifiedFolderIds, *out->modifiedThreadIds, + *out->modifiedAccountIds)) { if (commitOnSuccess && t.commit()) { //remove deleted objects from caches removeExpiredData(expiredContent); @@ -6155,7 +6309,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptRemoveThreads(const QMailThre { QStringList expiredContent; - if (deleteThreads(key, option, *out->deletedThreadIds, *out->deletedMessageIds, expiredContent, *out->updatedMessageIds, *out->modifiedFolderIds, *out->modifiedThreadIds, *out->modifiedAccountIds)) { + if (deleteThreads(key, option, *out->deletedThreadIds, *out->deletedMessageIds, expiredContent, + *out->updatedMessageIds, *out->modifiedFolderIds, *out->modifiedThreadIds, + *out->modifiedAccountIds)) { if (commitOnSuccess && t.commit()) { //remove deleted objects from caches removeExpiredData(expiredContent); @@ -6169,12 +6325,18 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptRemoveThreads(const QMailThre QMailStoreSql::AttemptResult QMailStoreSql::attemptRemoveMessages(const QMailMessageKey &key, QMailStore::MessageRemovalOption option, - QMailMessageIdList *deletedMessageIds, QMailThreadIdList* deletedThreadIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds, + QMailMessageIdList *deletedMessageIds, + QMailThreadIdList* deletedThreadIds, + QMailMessageIdList *updatedMessageIds, + QMailFolderIdList *modifiedFolderIds, + QMailThreadIdList *modifiedThreadIds, + QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess) { QStringList expiredContent; - if (deleteMessages(key, option, *deletedMessageIds, *deletedThreadIds, expiredContent, *updatedMessageIds, *modifiedFolderIds, *modifiedThreadIds, *modifiedAccountIds)) { + if (deleteMessages(key, option, *deletedMessageIds, *deletedThreadIds, expiredContent, *updatedMessageIds, + *modifiedFolderIds, *modifiedThreadIds, *modifiedAccountIds)) { if (commitOnSuccess && t.commit()) { //remove deleted objects from caches removeExpiredData(expiredContent); @@ -6528,7 +6690,12 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateFolder(QMailFolder *fol QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessage(QMailMessageMetaData *metaData, QMailMessage *message, - QMailMessageIdList *all_updatedMessageIds, QMailThreadIdList *all_modifiedThreads, QMailMessageIdList *all_modifiedMessageIds, QMailFolderIdList *all_modifiedFolderIds, QMailAccountIdList *all_modifiedAccountIds, QMap<QString, QStringList> *deleteLaterContent, + QMailMessageIdList *all_updatedMessageIds, + QMailThreadIdList *all_modifiedThreads, + QMailMessageIdList *all_modifiedMessageIds, + QMailFolderIdList *all_modifiedFolderIds, + QMailAccountIdList *all_modifiedAccountIds, + QMap<QString, QStringList> *deleteLaterContent, Transaction &t, bool commitOnSuccess) { if (!metaData->id().isValid()) @@ -6656,7 +6823,6 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessage(QMailMessageMet return Failure; } } else { - QString oldContentIdentifier(message->contentIdentifier()); QMailStore::ErrorCode code = contentManager->update(message, QMailContentManager::NoDurability); if (code == QMailStore::NoError) { @@ -6887,7 +7053,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessage(QMailMessageMet } } AttemptResult res = updateThreadsValues(QMailThreadIdList(), QMailThreadIdList() << metaData->parentThreadId(), - ThreadUpdateData(0, messageUnreadStatusChanged ? ((metaData->status() & QMailMessage::Read) ? -1 : 1) : 0, + ThreadUpdateData(0, + messageUnreadStatusChanged + ? ((metaData->status() & QMailMessage::Read) ? -1 : 1) : 0, updateSubject ? metaData->subject() : QString(), updatePreview ? metaData->preview() : QString(), senders, QMailTimeStamp(), QMailTimeStamp(), @@ -7042,8 +7210,14 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessage(QMailMessageMet return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessagesMetaData(const QMailMessageKey &key, const QMailMessageKey::Properties &props, const QMailMessageMetaData &data, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList* deletedThreadIds, QMailThreadIdList* modifiedThreadIds, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, +QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessagesMetaData(const QMailMessageKey &key, + const QMailMessageKey::Properties &props, + const QMailMessageMetaData &data, + QMailMessageIdList *updatedMessageIds, + QMailThreadIdList* deletedThreadIds, + QMailThreadIdList* modifiedThreadIds, + QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess) { //do some checks first @@ -7161,7 +7335,10 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessagesMetaData(const } QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessagesStatus(const QMailMessageKey &key, quint64 status, bool set, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList* modifiedThreadIds, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, + QMailMessageIdList *updatedMessageIds, + QMailThreadIdList* modifiedThreadIds, + QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess) { @@ -7218,7 +7395,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessagesStatus(const QM QMailThread thread(threadId); const bool threadStatusChanged = thread.status() != (thread.status() | status); if (unreadCount != 0 || threadStatusChanged) { - AttemptResult res = updateThreadsValues(QMailThreadIdList(), QMailThreadIdList() << threadId, ThreadUpdateData(0, unreadCount, set ? status : 0 - status)); + AttemptResult res = updateThreadsValues(QMailThreadIdList(), QMailThreadIdList() << threadId, + ThreadUpdateData(0, unreadCount, set ? status : 0 - status)); if (res != Success) return res; APPEND_UNIQUE(modifiedThreadIds, threadId); @@ -7396,7 +7574,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptSizeOfMessages(const QMailMes return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryAccounts(const QMailAccountKey &key, const QMailAccountSortKey &sortKey, uint limit, uint offset, +QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryAccounts(const QMailAccountKey &key, + const QMailAccountSortKey &sortKey, + uint limit, uint offset, QMailAccountIdList *ids, ReadLock &) { @@ -7413,7 +7593,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryAccounts(const QMailAcco return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryThreads(const QMailThreadKey &key, const QMailThreadSortKey &sortKey, uint limit, uint offset, +QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryThreads(const QMailThreadKey &key, + const QMailThreadSortKey &sortKey, + uint limit, uint offset, QMailThreadIdList *ids, ReadLock &) { @@ -7431,7 +7613,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryThreads(const QMailThrea return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryFolders(const QMailFolderKey &key, const QMailFolderSortKey &sortKey, uint limit, uint offset, +QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryFolders(const QMailFolderKey &key, + const QMailFolderSortKey &sortKey, + uint limit, uint offset, QMailFolderIdList *ids, ReadLock &) { @@ -7449,7 +7633,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryFolders(const QMailFolde return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryMessages(const QMailMessageKey &key, const QMailMessageSortKey &sortKey, uint limit, uint offset, +QMailStoreSql::AttemptResult QMailStoreSql::attemptQueryMessages(const QMailMessageKey &key, + const QMailMessageSortKey &sortKey, + uint limit, uint offset, QMailMessageIdList *ids, ReadLock &) { @@ -7755,7 +7941,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptMessageMetaData(const QString return Failure; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptMessagesMetaData(const QMailMessageKey& key, const QMailMessageKey::Properties &properties, QMailStore::ReturnOption option, +QMailStoreSql::AttemptResult QMailStoreSql::attemptMessagesMetaData(const QMailMessageKey& key, + const QMailMessageKey::Properties &properties, + QMailStore::ReturnOption option, QList<QMailMessageMetaData> *result, ReadLock &) { @@ -7847,7 +8035,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptMessagesMetaData(const QMailM return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptMessageRemovalRecords(const QMailAccountId &accountId, const QMailFolderId &folderId, +QMailStoreSql::AttemptResult QMailStoreSql::attemptMessageRemovalRecords(const QMailAccountId &accountId, + const QMailFolderId &folderId, QList<QMailMessageRemovalRecord> *result, ReadLock &) { @@ -7951,7 +8140,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptStatusBit(const QString &name return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::attemptRegisterStatusBit(const QString &name, const QString &context, int maximum, bool check, quint64 *result, +QMailStoreSql::AttemptResult QMailStoreSql::attemptRegisterStatusBit(const QString &name, const QString &context, + int maximum, bool check, quint64 *result, Transaction &t, bool commitOnSuccess) { if (check) { @@ -8031,7 +8221,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptMessageId(const QString &uid, return Failure; } -QMailStoreSql::AttemptResult QMailStoreSql::affectedByMessageIds(const QMailMessageIdList &messages, QMailFolderIdList *folderIds, QMailAccountIdList *accountIds) const +QMailStoreSql::AttemptResult QMailStoreSql::affectedByMessageIds(const QMailMessageIdList &messages, + QMailFolderIdList *folderIds, QMailAccountIdList *accountIds) const { AttemptResult result; @@ -8050,7 +8241,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::affectedByMessageIds(const QMailMess return affectedByFolderIds(messageFolderIds, folderIds, accountIds); } -QMailStoreSql::AttemptResult QMailStoreSql::affectedByFolderIds(const QMailFolderIdList &folders, QMailFolderIdList *all_folderIds, QMailAccountIdList *all_accountIds) const +QMailStoreSql::AttemptResult QMailStoreSql::affectedByFolderIds(const QMailFolderIdList &folders, QMailFolderIdList *all_folderIds, + QMailAccountIdList *all_accountIds) const { AttemptResult result; @@ -8078,7 +8270,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::affectedByFolderIds(const QMailFolde return result; } -QMailStoreSql::AttemptResult QMailStoreSql::messagePredecessor(QMailMessageMetaData *metaData, const QStringList &references, const QString &baseSubject, bool replyOrForward, +QMailStoreSql::AttemptResult QMailStoreSql::messagePredecessor(QMailMessageMetaData *metaData, + const QStringList &references, + const QString &baseSubject, bool replyOrForward, QStringList *missingReferences, bool *missingAncestor) { QList<quint64> potentialPredecessors; @@ -8232,7 +8426,9 @@ QMailStoreSql::AttemptResult QMailStoreSql::messagePredecessor(QMailMessageMetaD return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::identifyAncestors(const QMailMessageId &predecessorId, const QMailMessageIdList &childIds, QMailMessageIdList *ancestorIds) +QMailStoreSql::AttemptResult QMailStoreSql::identifyAncestors(const QMailMessageId &predecessorId, + const QMailMessageIdList &childIds, + QMailMessageIdList *ancestorIds) { if (!childIds.isEmpty() && predecessorId.isValid()) { QMap<quint64, quint64> predecessor; @@ -8271,7 +8467,11 @@ QMailStoreSql::AttemptResult QMailStoreSql::identifyAncestors(const QMailMessage return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::resolveMissingMessages(const QString &identifier, const QMailMessageId &predecessorId, const QString &baseSubject, const QMailMessageMetaData &message, QMailMessageIdList *updatedMessageIds) +QMailStoreSql::AttemptResult QMailStoreSql::resolveMissingMessages(const QString &identifier, + const QMailMessageId &predecessorId, + const QString &baseSubject, + const QMailMessageMetaData &message, + QMailMessageIdList *updatedMessageIds) { QMap<QMailMessageId, quint64> descendants; @@ -8456,7 +8656,8 @@ QMailStoreSql::AttemptResult QMailStoreSql::resolveMissingMessages(const QString return Success; } -QMailStoreSql::AttemptResult QMailStoreSql::registerSubject(const QString &baseSubject, quint64 messageId, const QMailMessageId &predecessorId, bool missingAncestor) +QMailStoreSql::AttemptResult QMailStoreSql::registerSubject(const QString &baseSubject, quint64 messageId, + const QMailMessageId &predecessorId, bool missingAncestor) { int subjectId = 0; @@ -8953,10 +9154,10 @@ bool QMailStoreSql::deleteThreads(const QMailThreadKey& key, QMailMessageKey messagesKey(QMailMessageKey::parentThreadId(key)); // Delete all the messages contained by the folders we're deleting - if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredMailfiles, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) + if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredMailfiles, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; - { // Perform the thread deletion QString sql(QLatin1String("DELETE FROM mailthreads")); @@ -9015,7 +9216,8 @@ bool QMailStoreSql::deleteFolders(const QMailFolderKey& key, QMailMessageKey messagesKey(QMailMessageKey::parentFolderId(key)); // Delete all the messages contained by the folders we're deleting - if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredContent, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) + if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredContent, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; // Delete any references to these folders in the mailfolderlinks table @@ -9121,14 +9323,16 @@ bool QMailStoreSql::deleteAccounts(const QMailAccountKey& key, QMailMessageKey messagesKey(QMailMessageKey::parentAccountId(ids)); // Delete all the messages contained by the folders we're deleting - if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredContent, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) + if (!deleteMessages(messagesKey, option, deletedMessageIds, deletedThreadIds, expiredContent, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; // Create a key to select folders from the accounts to be deleted QMailFolderKey foldersKey(QMailFolderKey::parentAccountId(ids)); // Delete all the folders contained by the accounts we're deleting - if (!deleteFolders(foldersKey, option, deletedFolderIds, deletedMessageIds, deletedThreadIds, expiredContent, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) + if (!deleteFolders(foldersKey, option, deletedFolderIds, deletedMessageIds, deletedThreadIds, expiredContent, + updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; { @@ -9152,7 +9356,8 @@ bool QMailStoreSql::deleteAccounts(const QMailAccountKey& key, QMailThreadKey threadKey(QMailThreadKey::parentAccountId(ids)); // Delete all threads contained by the account we're deleting - if (!deleteThreads(threadKey, option, deletedThreadIds, deletedMessageIds, expiredContent, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) + if (!deleteThreads(threadKey, option, deletedThreadIds, deletedMessageIds, expiredContent, updatedMessageIds, + modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; if (withAccountTables) { // Remove any custom fields associated with these accounts @@ -9212,7 +9417,10 @@ bool QMailStoreSql::deleteAccounts(const QMailAccountKey& key, return true; } -QMailStoreSql::AttemptResult QMailStoreSql::findPotentialPredecessorsBySubject(QMailMessageMetaData *metaData, const QString& baseSubject, bool *missingAncestor, QList<quint64> &potentialPredecessors) +QMailStoreSql::AttemptResult QMailStoreSql::findPotentialPredecessorsBySubject(QMailMessageMetaData *metaData, + const QString& baseSubject, + bool *missingAncestor, + QList<quint64> &potentialPredecessors) { // This message has a thread ancestor, but we can only estimate which is the best choice *missingAncestor = true; @@ -9270,17 +9478,20 @@ QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const Key& key, c return performQuery(statement, false, QVariantList(), QList<Key>() << key, qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const Key& key, const QString& descriptor) +QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const Key& key, + const QString& descriptor) { return performQuery(statement, false, bindValues, QList<Key>() << key, qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QString& descriptor) +QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QString& descriptor) { return performQuery(statement, false, bindValues, keys, qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor) +QSqlQuery QMailStoreSql::simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QPair<uint, uint> &constraint, const QString& descriptor) { return performQuery(statement, false, bindValues, keys, constraint, descriptor); } @@ -9290,27 +9501,36 @@ QSqlQuery QMailStoreSql::batchQuery(const QString& statement, const QVariantList return performQuery(statement, true, bindValues, QList<Key>(), qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::batchQuery(const QString& statement, const QVariantList& bindValues, const Key& key, const QString& descriptor) +QSqlQuery QMailStoreSql::batchQuery(const QString& statement, const QVariantList& bindValues, const Key& key, + const QString& descriptor) { return performQuery(statement, true, bindValues, QList<Key>() << key, qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::batchQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QString& descriptor) +QSqlQuery QMailStoreSql::batchQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QString& descriptor) { return performQuery(statement, true, bindValues, keys, qMakePair(0u, 0u), descriptor); } -QSqlQuery QMailStoreSql::performQuery(const QString& statement, bool batch, const QVariantList& bindValues, const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor) +QSqlQuery QMailStoreSql::performQuery(const QString& statement, bool batch, const QVariantList& bindValues, + const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor) { QString keyStatements; QVariantList keyValues; bool firstClause(true); foreach (const Key &key, keys) { - if (key.isType<QMailMessageKey>() || key.isType<QMailFolderKey>() || key.isType<QMailAccountKey>() || key.isType<QMailThreadKey>()) { + if (key.isType<QMailMessageKey>() + || key.isType<QMailFolderKey>() + || key.isType<QMailAccountKey>() + || key.isType<QMailThreadKey>()) { keyStatements.append(buildWhereClause(key, false, firstClause)); keyValues << whereClauseValues(key); - } else if (key.isType<QMailMessageSortKey>() || key.isType<QMailFolderSortKey>() || key.isType<QMailAccountSortKey>() || key.isType<QMailThreadSortKey>()) { + } else if (key.isType<QMailMessageSortKey>() + || key.isType<QMailFolderSortKey>() + || key.isType<QMailAccountSortKey>() + || key.isType<QMailThreadSortKey>()) { keyStatements.append(buildOrderClause(key)); } else if (key.isType<QString>()) { keyStatements.append(key.key<QString>()); diff --git a/src/libraries/qmfclient/qmailstoresql_p.h b/src/libraries/qmfclient/qmailstoresql_p.h index 462878ac..30fd4946 100644 --- a/src/libraries/qmfclient/qmailstoresql_p.h +++ b/src/libraries/qmfclient/qmailstoresql_p.h @@ -368,7 +368,8 @@ private: bool execute(QSqlQuery& q, bool batch = false); int queryError() const; - QSqlQuery performQuery(const QString& statement, bool batch, const QVariantList& bindValues, const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor); + QSqlQuery performQuery(const QString& statement, bool batch, const QVariantList& bindValues, + const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor); bool executeFile(QFile &file); @@ -376,13 +377,18 @@ private: QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const QString& descriptor); QSqlQuery simpleQuery(const QString& statement, const Key& key, const QString& descriptor); - QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const Key& key, const QString& descriptor); - QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QString& descriptor); - QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QPair<uint, uint> &constraint, const QString& descriptor); + QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const Key& key, + const QString& descriptor); + QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QString& descriptor); + QSqlQuery simpleQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QPair<uint, uint> &constraint, const QString& descriptor); QSqlQuery batchQuery(const QString& statement, const QVariantList& bindValues, const QString& descriptor); - QSqlQuery batchQuery(const QString& statement, const QVariantList& bindValues, const Key& key, const QString& descriptor); - QSqlQuery batchQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, const QString& descriptor); + QSqlQuery batchQuery(const QString& statement, const QVariantList& bindValues, const Key& key, + const QString& descriptor); + QSqlQuery batchQuery(const QString& statement, const QVariantList& bindValues, const QList<Key>& keys, + const QString& descriptor); bool idValueExists(quint64 id, const QString& table); bool idExists(const QMailAccountId& id); @@ -443,7 +449,8 @@ private: void removeExpiredData(const QStringList& contentUris); - AttemptResult findPotentialPredecessorsBySubject(QMailMessageMetaData *metaData, const QString& baseSubject, bool* missingAncestor, QList<quint64>& potentialPredecessors); + AttemptResult findPotentialPredecessorsBySubject(QMailMessageMetaData *metaData, const QString& baseSubject, + bool* missingAncestor, QList<quint64>& potentialPredecessors); bool obsoleteContent(const QString& identifier); @@ -472,7 +479,6 @@ private: AttemptResult attemptAddThread(QMailThread *thread, QMailThreadIdList *addedThreadIds, Transaction &t, bool commitOnSuccess); - // hack to get around tr1's bind arg limit struct AttemptAddMessageOut { AttemptAddMessageOut( QMailMessageIdList * addedMessages @@ -500,14 +506,14 @@ private: QMailAccountIdList *modifiedAccountIds; }; - - AttemptResult attemptAddMessage(QMailMessage *message, const QString &identifier, const QStringList &references, AttemptAddMessageOut *out, + AttemptResult attemptAddMessage(QMailMessage *message, const QString &identifier, const QStringList &references, + AttemptAddMessageOut *out, Transaction &t, bool commitOnSuccess); - AttemptResult attemptAddMessage(QMailMessageMetaData *metaData, const QString &identifier, const QStringList &references, AttemptAddMessageOut *out, + AttemptResult attemptAddMessage(QMailMessageMetaData *metaData, const QString &identifier, const QStringList &references, + AttemptAddMessageOut *out, Transaction &t, bool commitOnSuccess); - struct AttemptRemoveAccountOut { AttemptRemoveAccountOut( QMailAccountIdList *deletedAccounts , QMailFolderIdList *deletedFolders @@ -570,12 +576,10 @@ private: QMailAccountIdList *modifiedAccountIds; }; - AttemptResult attemptRemoveFolders(const QMailFolderKey &key, QMailStore::MessageRemovalOption option, AttemptRemoveFoldersOut *out, Transaction &t, bool commitOnSuccess); - // hack to get around bind max arg limitation struct AttemptRemoveThreadsOut { AttemptRemoveThreadsOut( QMailThreadIdList *deletedThreads @@ -605,7 +609,9 @@ private: Transaction &t, bool commitOnSuccess); AttemptResult attemptRemoveMessages(const QMailMessageKey &key, QMailStore::MessageRemovalOption option, - QMailMessageIdList *deletedMessages, QMailThreadIdList* deletedThreadIds, QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds, + QMailMessageIdList *deletedMessages, QMailThreadIdList* deletedThreadIds, + QMailMessageIdList *updatedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailThreadIdList *modifiedThreadIds, QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess); AttemptResult attemptUpdateAccount(QMailAccount *account, QMailAccountConfiguration *config, @@ -625,15 +631,22 @@ private: Transaction &t, bool commitOnSuccess); AttemptResult attemptUpdateMessage(QMailMessageMetaData *metaData, QMailMessage *mail, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, QMailMessageIdList *modifiedMessageIds, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, QMap<QString, QStringList> *deleteLaterContent, + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, + QMailMessageIdList *modifiedMessageIds, QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds, + QMap<QString, QStringList> *deleteLaterContent, Transaction &t, bool commitOnSuccess); - AttemptResult attemptUpdateMessagesMetaData(const QMailMessageKey &key, const QMailMessageKey::Properties &props, const QMailMessageMetaData &data, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList* deletedThreadIds, QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, + AttemptResult attemptUpdateMessagesMetaData(const QMailMessageKey &key, const QMailMessageKey::Properties &props, + const QMailMessageMetaData &data, + QMailMessageIdList *updatedMessageIds, QMailThreadIdList* deletedThreadIds, + QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, + QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess); AttemptResult attemptUpdateMessagesStatus(const QMailMessageKey &key, quint64 status, bool set, - QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, + QMailMessageIdList *updatedMessageIds, QMailThreadIdList *modifiedThreads, + QMailFolderIdList *modifiedFolderIds, QMailAccountIdList *modifiedAccountIds, Transaction &t, bool commitOnSuccess); AttemptResult attemptPurgeMessageRemovalRecords(const QMailAccountId &accountId, const QStringList &serverUids, @@ -747,31 +760,43 @@ private: quint64 *result, ReadLock &); - AttemptResult affectedByMessageIds(const QMailMessageIdList &messages, QMailFolderIdList *folderIds, QMailAccountIdList *accountIds) const; + AttemptResult affectedByMessageIds(const QMailMessageIdList &messages, QMailFolderIdList *folderIds, + QMailAccountIdList *accountIds) const; - AttemptResult affectedByFolderIds(const QMailFolderIdList &folders, QMailFolderIdList *folderIds, QMailAccountIdList *accountIds) const; + AttemptResult affectedByFolderIds(const QMailFolderIdList &folders, QMailFolderIdList *folderIds, + QMailAccountIdList *accountIds) const; - AttemptResult messagePredecessor(QMailMessageMetaData *metaData, const QStringList &references, const QString &baseSubject, bool sameSubject, QStringList *missingReferences, bool *missingAncestor); + AttemptResult messagePredecessor(QMailMessageMetaData *metaData, const QStringList &references, + const QString &baseSubject, bool sameSubject, QStringList *missingReferences, + bool *missingAncestor); - AttemptResult identifyAncestors(const QMailMessageId &predecessorId, const QMailMessageIdList &childIds, QMailMessageIdList *ancestorIds); + AttemptResult identifyAncestors(const QMailMessageId &predecessorId, const QMailMessageIdList &childIds, + QMailMessageIdList *ancestorIds); - AttemptResult resolveMissingMessages(const QString &identifier, const QMailMessageId &predecessorId, const QString &baseSubject, const QMailMessageMetaData &message, QMailMessageIdList *updatedMessageIds); + AttemptResult resolveMissingMessages(const QString &identifier, const QMailMessageId &predecessorId, + const QString &baseSubject, const QMailMessageMetaData &message, + QMailMessageIdList *updatedMessageIds); - AttemptResult registerSubject(const QString &baseSubject, quint64 messageId, const QMailMessageId &predecessorId, bool missingAncestor); + AttemptResult registerSubject(const QString &baseSubject, quint64 messageId, const QMailMessageId &predecessorId, + bool missingAncestor); QMailAccount extractAccount(const QSqlRecord& r); QMailThread extractThread(const QSqlRecord &r); QMailFolder extractFolder(const QSqlRecord& r); - QMailMessageMetaData extractMessageMetaData(const QSqlRecord& r, QMailMessageKey::Properties recordProperties, const QMailMessageKey::Properties& properties = allMessageProperties()); - QMailMessageMetaData extractMessageMetaData(const QSqlRecord& r, const QMap<QString, QString> &customFields, const QMailMessageKey::Properties& properties = allMessageProperties()); - QMailMessage extractMessage(const QSqlRecord& r, const QMap<QString, QString> &customFields, const QMailMessageKey::Properties& properties = allMessageProperties()); + QMailMessageMetaData extractMessageMetaData(const QSqlRecord& r, QMailMessageKey::Properties recordProperties, + const QMailMessageKey::Properties& properties = allMessageProperties()); + QMailMessageMetaData extractMessageMetaData(const QSqlRecord& r, const QMap<QString, QString> &customFields, + const QMailMessageKey::Properties& properties = allMessageProperties()); + QMailMessage extractMessage(const QSqlRecord& r, const QMap<QString, QString> &customFields, + const QMailMessageKey::Properties& properties = allMessageProperties()); QMailMessageRemovalRecord extractMessageRemovalRecord(const QSqlRecord& r); static QString parseSql(QTextStream& ts); static QVariantList messageValues(const QMailMessageKey::Properties& properties, const QMailMessageMetaData& data); static QVariantList threadValues(const QMailThreadKey::Properties& properties, const QMailThread& thread); - static void updateMessageValues(const QMailMessageKey::Properties& properties, const QVariantList& values, const QMap<QString, QString>& customFields, QMailMessageMetaData& metaData); + static void updateMessageValues(const QMailMessageKey::Properties& properties, const QVariantList& values, + const QMap<QString, QString>& customFields, QMailMessageMetaData& metaData); AttemptResult updateThreadsValues(const QMailThreadIdList& threadsToDelete, const QMailThreadIdList& modifiedThreadsIds = QMailThreadIdList(), const ThreadUpdateData& updateData = ThreadUpdateData()); @@ -780,7 +805,8 @@ private: static const QString &messagesBodyPath(); static QString messageFilePath(const QString &fileName); - static void extractMessageMetaData(const QSqlRecord& r, QMailMessageKey::Properties recordProperties, const QMailMessageKey::Properties& properties, QMailMessageMetaData* metaData); + static void extractMessageMetaData(const QSqlRecord& r, QMailMessageKey::Properties recordProperties, + const QMailMessageKey::Properties& properties, QMailMessageMetaData* metaData); private: QSqlDatabase *database() const; diff --git a/src/libraries/qmfmessageserver/qmailmessageservice.cpp b/src/libraries/qmfmessageserver/qmailmessageservice.cpp index 440cb06e..681a5f79 100644 --- a/src/libraries/qmfmessageserver/qmailmessageservice.cpp +++ b/src/libraries/qmfmessageserver/qmailmessageservice.cpp @@ -1094,7 +1094,9 @@ void QMailMessageSource::deleteMessages() return; } - emit d->_service->statusChanged(QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, tr("Unable to delete messages"), QMailAccountId(), QMailFolderId(), QMailMessageId())); + emit d->_service->statusChanged(QMailServiceAction::Status( + QMailServiceAction::Status::ErrFrameworkFault, tr("Unable to delete messages"), + QMailAccountId(), QMailFolderId(), QMailMessageId())); emit d->_service->activityChanged(QMailServiceAction::Failed); emit d->_service->actionCompleted(false); } @@ -1135,7 +1137,10 @@ void QMailMessageSource::copyMessages() if (!QMailStore::instance()->addMessage(&message)) { qCWarning(lcMailStore) << "Unable to copy messages to folder:" << d->_destinationId << "for account:" << message.parentAccountId(); - emit d->_service->statusChanged(QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, tr("Unable to copy messages for account"), message.parentAccountId(), d->_destinationId, QMailMessageId())); + emit d->_service->statusChanged( + QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, + tr("Unable to copy messages for account"), + message.parentAccountId(), d->_destinationId, QMailMessageId())); successful = false; break; } else { @@ -1169,7 +1174,10 @@ void QMailMessageSource::moveMessages() return; } - emit d->_service->statusChanged(QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, tr("Unable to move messages to folder"), QMailAccountId(), QMailFolderId(), QMailMessageId())); + emit d->_service->statusChanged( + QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, + tr("Unable to move messages to folder"), + QMailAccountId(), QMailFolderId(), QMailMessageId())); emit d->_service->activityChanged(QMailServiceAction::Failed); emit d->_service->actionCompleted(false); } @@ -1186,7 +1194,9 @@ void QMailMessageSource::flagMessages() return; } - emit d->_service->statusChanged(QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, tr("Unable to flag messages"), QMailAccountId(), QMailFolderId(), QMailMessageId())); + emit d->_service->statusChanged( + QMailServiceAction::Status(QMailServiceAction::Status::ErrFrameworkFault, + tr("Unable to flag messages"), QMailAccountId(), QMailFolderId(), QMailMessageId())); emit d->_service->activityChanged(QMailServiceAction::Failed); emit d->_service->actionCompleted(false); } @@ -1468,7 +1478,9 @@ QMailMessageSink &QMailMessageService::sink() const If possible, a standardized error message is determined from \a code, and prepended to the error message. */ -void QMailMessageService::updateStatus(QMailServiceAction::Status::ErrorCode code, const QString &text, const QMailAccountId &accountId, const QMailFolderId &folderId, const QMailMessageId &messageId, quint64 action) +void QMailMessageService::updateStatus(QMailServiceAction::Status::ErrorCode code, const QString &text, + const QMailAccountId &accountId, const QMailFolderId &folderId, + const QMailMessageId &messageId, quint64 action) { if (code == QMailServiceAction::Status::ErrNoError) { if (action) { @@ -1496,7 +1508,8 @@ void QMailMessageService::updateStatus(QMailServiceAction::Status::ErrorCode cod If possible, a standardized error message is determined from \a code, and prepended to the error message. */ -void QMailMessageService::updateStatus(int code, const QString &text, const QMailAccountId &accountId, const QMailFolderId &folderId, const QMailMessageId &messageId, quint64 action) +void QMailMessageService::updateStatus(int code, const QString &text, const QMailAccountId &accountId, + const QMailFolderId &folderId, const QMailMessageId &messageId, quint64 action) { if (code == QMailServiceAction::Status::ErrNoError) { if (action) { @@ -1547,7 +1560,8 @@ bool QMailMessageSource::retrieveFolderList(const QMailAccountId &accountId, con The request has the identifier \a action. */ -bool QMailMessageSource::retrieveMessageList(const QMailAccountId &accountId, const QMailFolderId &folderId, uint minimum, const QMailMessageSortKey &sort, quint64 action) +bool QMailMessageSource::retrieveMessageList(const QMailAccountId &accountId, const QMailFolderId &folderId, + uint minimum, const QMailMessageSortKey &sort, quint64 action) { Q_UNUSED(accountId) Q_UNUSED(folderId) @@ -1566,7 +1580,8 @@ bool QMailMessageSource::retrieveMessageList(const QMailAccountId &accountId, co The request has the identifier \a action. */ -bool QMailMessageSource::retrieveMessageLists(const QMailAccountId &accountId, const QMailFolderIdList &folderIds, uint minimum, const QMailMessageSortKey &sort, quint64 action) +bool QMailMessageSource::retrieveMessageLists(const QMailAccountId &accountId, const QMailFolderIdList &folderIds, + uint minimum, const QMailMessageSortKey &sort, quint64 action) { Q_UNUSED(accountId) Q_UNUSED(folderIds) diff --git a/src/plugins/messageservices/imap/imapprotocol.cpp b/src/plugins/messageservices/imap/imapprotocol.cpp index b22a8a82..7d59b316 100644 --- a/src/plugins/messageservices/imap/imapprotocol.cpp +++ b/src/plugins/messageservices/imap/imapprotocol.cpp @@ -303,45 +303,173 @@ class ImapState; class ImapContext { public: - ImapContext(ImapProtocol *protocol) { mProtocol = protocol; } - virtual ~ImapContext() {} + ImapContext(ImapProtocol *protocol) + { + mProtocol = protocol; + } + + virtual ~ImapContext() + { + } + + void continuation(ImapCommand c, const QString &s) + { + mProtocol->continuation(c, s); + } + + void operationCompleted(ImapCommand c, OperationStatus s) + { + mProtocol->operationCompleted(c, s); + } - void continuation(ImapCommand c, const QString &s) { mProtocol->continuation(c, s); } - void operationCompleted(ImapCommand c, OperationStatus s) { mProtocol->operationCompleted(c, s); } + virtual QString sendCommand(const QString &cmd) + { + return mProtocol->sendCommand(cmd); + } - virtual QString sendCommand(const QString &cmd) { return mProtocol->sendCommand(cmd); } - virtual QString sendCommandLiteral(const QString &cmd, uint length) { return mProtocol->sendCommandLiteral(cmd, length); } - virtual void sendData(const QString &data, bool maskDebug = false) { mProtocol->sendData(data, maskDebug); } - virtual void sendDataLiteral(const QString &data, uint length) { mProtocol->sendDataLiteral(data, length); } + virtual QString sendCommandLiteral(const QString &cmd, uint length) + { + return mProtocol->sendCommandLiteral(cmd, length); + } - ImapProtocol *protocol() { return mProtocol; } - const ImapMailboxProperties &mailbox() { return mProtocol->mailbox(); } + virtual void sendData(const QString &data, bool maskDebug = false) + { + mProtocol->sendData(data, maskDebug); + } - LongStream &buffer() { return mProtocol->_stream; } - void switchToEncrypted() { mProtocol->_transport->switchToEncrypted(); mProtocol->clearResponse(); } - bool literalResponseCompleted() { return (mProtocol->literalDataRemaining() == 0); } + virtual void sendDataLiteral(const QString &data, uint length) + { + mProtocol->sendDataLiteral(data, length); + } + + ImapProtocol *protocol() + { + return mProtocol; + } + + const ImapMailboxProperties &mailbox() + { + return mProtocol->mailbox(); + } + + LongStream &buffer() + { + return mProtocol->_stream; + } + + void switchToEncrypted() + { + mProtocol->_transport->switchToEncrypted(); + mProtocol->clearResponse(); + } + + bool literalResponseCompleted() + { + return (mProtocol->literalDataRemaining() == 0); + } // Update the protocol's mailbox properties - void setMailbox(const QMailFolder &mailbox) { mProtocol->_mailbox = ImapMailboxProperties(mailbox); } - void setExists(quint32 n) { mProtocol->_mailbox.exists = n; emit mProtocol->exists(n); } - quint32 exists() { return mProtocol->_mailbox.exists; } - void setRecent(quint32 n) { mProtocol->_mailbox.recent = n; emit mProtocol->recent(n); } - void setUnseen(quint32 n) { mProtocol->_mailbox.unseen = n; } - void setUidValidity(const QString &validity) { mProtocol->_mailbox.uidValidity = validity; emit mProtocol->uidValidity(validity); } - void setUidNext(quint32 n) { mProtocol->_mailbox.uidNext = n; } - void setFlags(const QString &flags) { mProtocol->_mailbox.flags = flags; emit mProtocol->flags(flags); } - void setUidList(const QStringList &uidList) { mProtocol->_mailbox.uidList = uidList; } - void setSearchCount(uint count) { mProtocol->_mailbox.searchCount = count; } - void setMsnList(const QList<uint> &msnList) { mProtocol->_mailbox.msnList = msnList; } - void setHighestModSeq(const QString &seq) { mProtocol->_mailbox.highestModSeq = seq; mProtocol->_mailbox.noModSeq = false; emit mProtocol->highestModSeq(seq); } - void setNoModSeq() { mProtocol->_mailbox.noModSeq = true; emit mProtocol->noModSeq(); } - void setPermanentFlags(const QStringList &flags) { mProtocol->_mailbox.permanentFlags = flags; } - void setVanished(const QString &vanished) { mProtocol->_mailbox.vanished = vanished; } - void setChanges(const QList<FlagChange> &changes) { mProtocol->_mailbox.flagChanges = changes; } - - void createMail(const QString& uid, const QDateTime &timeStamp, int size, uint flags, const QString &file, const QStringList& structure) { mProtocol->createMail(uid, timeStamp, size, flags, file, structure); } - void createPart(const QString& uid, const QString §ion, const QString &file, int size) { mProtocol->createPart(uid, section, file, size); } - void createPartHeader(const QString& uid, const QString §ion, const QString &file, int size) { mProtocol->createPartHeader(uid, section, file, size); } + void setMailbox(const QMailFolder &mailbox) + { + mProtocol->_mailbox = ImapMailboxProperties(mailbox); + } + + void setExists(quint32 n) + { + mProtocol->_mailbox.exists = n; + emit mProtocol->exists(n); + } + + quint32 exists() + { + return mProtocol->_mailbox.exists; + } + + void setRecent(quint32 n) + { + mProtocol->_mailbox.recent = n; + emit mProtocol->recent(n); + } + + void setUnseen(quint32 n) + { + mProtocol->_mailbox.unseen = n; + } + + void setUidValidity(const QString &validity) + { + mProtocol->_mailbox.uidValidity = validity; + emit mProtocol->uidValidity(validity); + } + + void setUidNext(quint32 n) + { + mProtocol->_mailbox.uidNext = n; + } + + void setFlags(const QString &flags) + { + mProtocol->_mailbox.flags = flags; + emit mProtocol->flags(flags); + } + + void setUidList(const QStringList &uidList) + { + mProtocol->_mailbox.uidList = uidList; + } + + void setSearchCount(uint count) + { + mProtocol->_mailbox.searchCount = count; + } + + void setMsnList(const QList<uint> &msnList) + { + mProtocol->_mailbox.msnList = msnList; + } + + void setHighestModSeq(const QString &seq) + { + mProtocol->_mailbox.highestModSeq = seq; + mProtocol->_mailbox.noModSeq = false; + emit mProtocol->highestModSeq(seq); + } + + void setNoModSeq() + { + mProtocol->_mailbox.noModSeq = true; + emit mProtocol->noModSeq(); + } + + void setPermanentFlags(const QStringList &flags) + { + mProtocol->_mailbox.permanentFlags = flags; + } + + void setVanished(const QString &vanished) { + mProtocol->_mailbox.vanished = vanished; + } + + void setChanges(const QList<FlagChange> &changes) + { + mProtocol->_mailbox.flagChanges = changes; + } + + void createMail(const QString& uid, const QDateTime &timeStamp, int size, uint flags, const QString &file, + const QStringList& structure) + { + mProtocol->createMail(uid, timeStamp, size, flags, file, structure); + } + + void createPart(const QString& uid, const QString §ion, const QString &file, int size) + { + mProtocol->createPart(uid, section, file, size); + } + + void createPartHeader(const QString& uid, const QString §ion, const QString &file, int size) + { + mProtocol->createPartHeader(uid, section, file, size); + } private: ImapProtocol *mProtocol; @@ -469,8 +597,16 @@ class UnconnectedState : public ImapState Q_OBJECT public: - UnconnectedState() : ImapState(IMAP_Unconnected, "Unconnected") { setStatus(OpOk); } - void init() override { ImapState::init(); setStatus(OpOk); } + UnconnectedState() + : ImapState(IMAP_Unconnected, "Unconnected") + { + setStatus(OpOk); + } + + void init() override + { + ImapState::init(); setStatus(OpOk); + } }; @@ -479,7 +615,10 @@ class InitState : public ImapState Q_OBJECT public: - InitState() : ImapState(IMAP_Init, "Init") {} + InitState() + : ImapState(IMAP_Init, "Init") + { + } void untaggedResponse(ImapContext *c, const QString &line) override; }; @@ -499,7 +638,10 @@ class CapabilityState : public ImapState Q_OBJECT public: - CapabilityState() : ImapState(IMAP_Capability, "Capability") {} + CapabilityState() + : ImapState(IMAP_Capability, "Capability") + { + } QString transmit(ImapContext *c) override; void untaggedResponse(ImapContext *c, const QString &line) override; @@ -527,7 +669,10 @@ class StartTlsState : public ImapState Q_OBJECT public: - StartTlsState() : ImapState(IMAP_StartTLS, "StartTLS") {} + StartTlsState() + : ImapState(IMAP_StartTLS, "StartTLS") + { + } QString transmit(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; @@ -550,9 +695,14 @@ class LoginState : public ImapState Q_OBJECT public: - LoginState() : ImapState(IMAP_Login, "Login") { LoginState::init(); } + LoginState() + : ImapState(IMAP_Login, "Login") + { + LoginState::init(); + } - void setConfiguration(const QMailAccountConfiguration &config, const QStringList &capabilities, const QMailCredentialsInterface *credentials); + void setConfiguration(const QMailAccountConfiguration &config, const QStringList &capabilities, + const QMailCredentialsInterface *credentials); void init() override; QString transmit(ImapContext *c) override; @@ -565,7 +715,8 @@ private: const QMailCredentialsInterface *_credentials; }; -void LoginState::setConfiguration(const QMailAccountConfiguration &config, const QStringList &capabilities, const QMailCredentialsInterface *credentials) +void LoginState::setConfiguration(const QMailAccountConfiguration &config, const QStringList &capabilities, + const QMailCredentialsInterface *credentials) { _config = config; _credentials = credentials; @@ -654,7 +805,10 @@ class LogoutState : public ImapState Q_OBJECT public: - LogoutState() : ImapState(IMAP_Logout, "Logout") {} + LogoutState() + : ImapState(IMAP_Logout, "Logout") + { + } QString transmit(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; @@ -771,7 +925,10 @@ class DeleteState : public ImapState Q_OBJECT public: - DeleteState() : ImapState(IMAP_Delete, "Delete") {} + DeleteState() + : ImapState(IMAP_Delete, "Delete") + { + } void setMailbox(QMailFolder mailbox); @@ -781,6 +938,7 @@ public: void leave(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; QString error(const QString &line) override; + signals: void folderDeleted(const QMailFolder &name, bool success); @@ -829,7 +987,10 @@ class RenameState : public ImapState Q_OBJECT public: - RenameState() : ImapState(IMAP_Rename, "Rename") {} + RenameState() + : ImapState(IMAP_Rename, "Rename") + { + } void setNewMailboxName(const QMailFolder &mailbox, const QString &name); @@ -839,6 +1000,7 @@ public: void leave(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; QString error(const QString &line) override; + signals: void folderRenamed(const QMailFolder &folder, const QString &newPath, bool success); @@ -916,7 +1078,10 @@ class MoveState : public ImapState Q_OBJECT public: - MoveState() : ImapState(IMAP_Move, "Move") {} + MoveState() + : ImapState(IMAP_Move, "Move") + { + } void setNewMailboxParent(const QMailFolder &mailbox, const QMailFolderId &newParentId); @@ -926,6 +1091,7 @@ public: void leave(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; QString error(const QString &line) override; + signals: void folderMoved(const QMailFolder &folder, const QString &newPath, const QMailFolderId &newParentId, bool success); @@ -998,7 +1164,11 @@ class ListState : public ImapState Q_OBJECT public: - ListState() : ImapState(IMAP_List, "List") { ListState::init(); } + ListState() + : ImapState(IMAP_List, "List") + { + ListState::init(); + } void setParameters(const QString &reference, const QString &mailbox, bool xlist = false); void setDiscoverDelimiter(); @@ -1147,7 +1317,10 @@ class GenUrlAuthState : public ImapState Q_OBJECT public: - GenUrlAuthState() : ImapState(IMAP_GenUrlAuth, "GenUrlAuth") {} + GenUrlAuthState() + : ImapState(IMAP_GenUrlAuth, "GenUrlAuth") + { + } void setUrl(const QString &url, const QString &mechanism); @@ -1204,7 +1377,10 @@ class AppendState : public ImapState Q_OBJECT public: - AppendState() : ImapState(IMAP_Append, "Append") {} + AppendState() + : ImapState(IMAP_Append, "Append") + { + } void setParameters(const QMailFolder &folder, const QMailMessageId &messageId); @@ -1296,7 +1472,6 @@ QString AppendState::transmit(ImapContext *c) cmdString += "\""; cmd = cmdString.toLatin1(); - uint length = 0; if (c->protocol()->capabilities().contains("CATENATE")) { @@ -1377,7 +1552,10 @@ class SelectedState : public ImapState Q_OBJECT public: - SelectedState(ImapCommand c, const QString &name) : ImapState(c, name) {} + SelectedState(ImapCommand c, const QString &name) + : ImapState(c, name) + { + } void untaggedResponse(ImapContext *c, const QString &line) override; }; @@ -1453,7 +1631,11 @@ class SelectState : public SelectedState Q_OBJECT public: - SelectState() : SelectedState(IMAP_Select, "Select") { SelectState::init(); } + SelectState() + : SelectedState(IMAP_Select, "Select") + { + SelectState::init(); + } void setMailbox(const QMailFolder &mailbox); @@ -1509,7 +1691,11 @@ class QResyncState : public SelectState Q_OBJECT public: - QResyncState() : SelectState(IMAP_QResync, "QResync") { init(); } + QResyncState() + : SelectState(IMAP_QResync, "QResync") + { + init(); + } QString transmit(ImapContext *c) override; void untaggedResponse(ImapContext *c, const QString &line) override; @@ -1590,7 +1776,11 @@ class FetchFlagsState : public SelectedState Q_OBJECT public: - FetchFlagsState() : SelectedState(IMAP_FetchFlags, "FetchFlags") { FetchFlagsState::init(); } + FetchFlagsState() + : SelectedState(IMAP_FetchFlags, "FetchFlags") + { + FetchFlagsState::init(); + } void setProperties(const QString &range, const QString &prefix); @@ -1691,14 +1881,20 @@ void ExamineState::enter(ImapContext *c) class SearchMessageState : public SelectedState { Q_OBJECT + public: - SearchMessageState() : SelectedState(IMAP_Search_Message, "Search_Message"), _utf8(false) { } + SearchMessageState() + : SelectedState(IMAP_Search_Message, "Search_Message"), _utf8(false) + { + } + bool permitsPipelining() const override { return true; } void setParameters(const QMailMessageKey &key, const QString &body, const QMailMessageSortKey &sort, bool count); QString transmit(ImapContext *c) override; void leave(ImapContext *c) override; bool continuationResponse(ImapContext *c, const QString &line) override; void untaggedResponse(ImapContext *c, const QString &line) override; + protected: bool isPrintable(const QString &s) const; QStringList convertValue(const QVariant &value, const QMailMessageKey::Property &property, const QMailKey::Comparator &comparer); @@ -1790,7 +1986,6 @@ bool SearchMessageState::isPrintable(const QString &s) const QStringList SearchMessageState::convertValue(const QVariant &value, const QMailMessageKey::Property &property, const QMailKey::Comparator &comparer) { - switch (property) { case QMailMessageKey::Id: break; @@ -1901,6 +2096,7 @@ QStringList SearchMessageState::convertValue(const QVariant &value, const QMailM default: qCWarning(lcIMAP) << "Property " << property << " still not handled for search."; } + return QStringList(); } @@ -2040,7 +2236,11 @@ class SearchState : public SelectedState Q_OBJECT public: - SearchState() : SelectedState(IMAP_Search, "Search") { SearchState::init(); } + SearchState() + : SelectedState(IMAP_Search, "Search") + { + SearchState::init(); + } void setParameters(MessageFlags flags, const QString &range); @@ -2122,7 +2322,11 @@ class UidSearchState : public SelectedState Q_OBJECT public: - UidSearchState() : SelectedState(IMAP_UIDSearch, "UIDSearch") { UidSearchState::init(); } + UidSearchState() + : SelectedState(IMAP_UIDSearch, "UIDSearch") + { + UidSearchState::init(); + } void setParameters(MessageFlags flags, const QString &range); @@ -2205,7 +2409,11 @@ class UidFetchState : public SelectedState Q_OBJECT public: - UidFetchState() : SelectedState(IMAP_UIDFetch, "UIDFetch") { UidFetchState::init(); } + UidFetchState() + : SelectedState(IMAP_UIDFetch, "UIDFetch") + { + UidFetchState::init(); + } void setUidList(const QString &uidList, FetchItemFlags flags); void setSection(const QString &uid, const QString §ion, int start, int end, FetchItemFlags flags); @@ -2544,7 +2752,11 @@ class UidStoreState : public SelectedState Q_OBJECT public: - UidStoreState() : SelectedState(IMAP_UIDStore, "UIDStore") { UidStoreState::init(); } + UidStoreState() + : SelectedState(IMAP_UIDStore, "UIDStore") + { + UidStoreState::init(); + } void setParameters(MessageFlags flags, bool set, const QString &range); @@ -2606,7 +2818,11 @@ class UidCopyState : public SelectedState Q_OBJECT public: - UidCopyState() : SelectedState(IMAP_UIDCopy, "UIDCopy") { UidCopyState::init(); } + UidCopyState() + : SelectedState(IMAP_UIDCopy, "UIDCopy") + { + UidCopyState::init(); + } void setParameters(const QString &range, const QMailFolder &destination); @@ -2690,7 +2906,10 @@ class ExpungeState : public SelectedState Q_OBJECT public: - ExpungeState() : SelectedState(IMAP_Expunge, "Expunge") {} + ExpungeState() + : SelectedState(IMAP_Expunge, "Expunge") + { + } bool permitsPipelining() const override { return true; } QString transmit(ImapContext *c) override; @@ -2734,7 +2953,10 @@ class EnableState : public ImapState Q_OBJECT public: - EnableState() : ImapState(IMAP_Enable, "Enable") {} + EnableState() + : ImapState(IMAP_Enable, "Enable") + { + } void setExtensions(const QString &extensions); @@ -2807,7 +3029,10 @@ class IdleState : public SelectedState Q_OBJECT public: - IdleState() : SelectedState(IMAP_Idle, "Idle") {} + IdleState() + : SelectedState(IMAP_Idle, "Idle") + { + } void done(ImapContext *c); @@ -2856,7 +3081,10 @@ class CompressState : public ImapState Q_OBJECT public: - CompressState() : ImapState(IMAP_Compress, "Compress") {} + CompressState() + : ImapState(IMAP_Compress, "Compress") + { + } QString transmit(ImapContext *c) override; void taggedResponse(ImapContext *c, const QString &line) override; |
