diff options
author | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-09-01 18:57:24 +0300 |
---|---|---|
committer | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-09-01 18:57:24 +0300 |
commit | 09f231b3079441b7a3fd5b7581b207e277a713fe (patch) | |
tree | 649be83904f136d4b1e001579b593f38798a9f64 /src/messaging/modestengine_maemo_p.h | |
parent | 7c84d51f857ff3f2ebf2ba6df433ba07624ce3f1 (diff) |
Maemo5 message cache and prefilter functionality and related tests
Diffstat (limited to 'src/messaging/modestengine_maemo_p.h')
-rw-r--r-- | src/messaging/modestengine_maemo_p.h | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/messaging/modestengine_maemo_p.h b/src/messaging/modestengine_maemo_p.h index ecc96c2149..2265216e28 100644 --- a/src/messaging/modestengine_maemo_p.h +++ b/src/messaging/modestengine_maemo_p.h @@ -72,6 +72,7 @@ static const int maxCacheSize = 100000; class QMessageService; class QMessageServicePrivate; class QMessageStorePrivate; +class MessageQueryThread; struct MessageQueryInfo { @@ -90,6 +91,8 @@ struct MessageQueryInfo QString realAccountId; bool isQuery; bool returnWithSingleShot; + bool allMessagesQuery; + MessageQueryThread *queryThread; }; struct ModestUnreadMessageDBusStruct @@ -311,7 +314,7 @@ public: bool retrieveBody(QMessageService& messageService, const QMessageId &id); bool retrieve(QMessageService& messageService, const QMessageId &messageId, const QMessageContentContainerId &id, QMessage *msg = 0); - void clearHeaderCache(); + bool retrieveMessageMimeInformation(QMessage& message); private: QFileInfoList localFolders() const; @@ -391,6 +394,10 @@ private: bool accountExists(const QMessageAccountId& accountId) const; + void mimeInformationFromModestMessageToMessage(const MessagingModestMessage& modestMessage, + QMessage& message) const; + + private slots: void searchMessagesHeadersReceivedSlot(QDBusMessage msg); void searchMessagesHeadersFetchedSlot(QDBusMessage msg); @@ -405,6 +412,7 @@ private slots: void stateChanged(QMessageService::State newState); void returnQueryResultsSlot(); void modestFolderContentsChangedSlot(QDBusMessage msg); + void messageQueryFinishedSlot(void* queryThread, QList<QtMobility::QMessageId> ids); private: //Data GConfClient *m_gconfclient; @@ -417,7 +425,6 @@ private: //Data mutable QHash<QString, QMessageAccount> iAccounts; mutable QMessageAccountId iDefaultEmailAccountId; - mutable int m_queryIds; mutable QList<MessageQueryInfo> m_pendingMessageQueries; QMap<QMessageManager::NotificationFilterId, QMessageFilter> m_filters; @@ -429,12 +436,13 @@ private: //Data mutable QStringList m_latestAddOrRemoveNotifications; mutable QMap<QString, MessagingModestFolder> m_folderCache; - mutable QMap<QString, QMessage> m_messageCache; mutable QMap<int, QMessageServicePrivate*> m_pending_downloads; mutable QMessageFolderIdList m_observed_folders; + mutable bool m_allEmailMessagesInCache; + // Following variables are used for sync queries mutable QMessageService m_service; mutable QEventLoop m_eventLoop; @@ -444,6 +452,24 @@ private: //Data mutable bool m_isFiltered; }; +class MessageQueryThread : public QThread +{ + Q_OBJECT + +public: + MessageQueryThread(const QMessageFilter &filter, const QMessageSortOrder &sortOrder); + ~MessageQueryThread(); + + void run(); + +signals: + void queryFinished(void* queryThread, QList<QtMobility::QMessageId> ids); + +private: + QMessageFilter m_filter; + QMessageSortOrder m_sortOrder; +}; + QTM_END_NAMESPACE // Marshall the MyStructure data into a D-Bus argument @@ -460,6 +486,7 @@ Q_DECLARE_METATYPE(QtMobility::ModestAccountsUnreadMessagesDBusStruct); Q_DECLARE_METATYPE(QtMobility::ModestMessage); Q_DECLARE_METATYPE(QtMobility::MessagingModestMimePart); Q_DECLARE_METATYPE(QtMobility::MessagingModestFolder); +Q_DECLARE_METATYPE(QList<QtMobility::QMessageId>); #endif // MODESTENGINE_MAEMO_H |