From dd09ca9ef4bb9780b953d6dd2999dbefe50bd1ff Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 3 Jan 2016 20:31:10 +0100 Subject: Instead of using controllers, directly use the models ...and connect components via properties --- framework/mail/maillistmodel.cpp | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'framework/mail/maillistmodel.cpp') diff --git a/framework/mail/maillistmodel.cpp b/framework/mail/maillistmodel.cpp index 80fb661f..e6a9c218 100644 --- a/framework/mail/maillistmodel.cpp +++ b/framework/mail/maillistmodel.cpp @@ -25,6 +25,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const roles[Important] = "important"; roles[Id] = "id"; roles[MimeMessage] = "mimeMessage"; + roles[DomainObject] = "domainObject"; return roles; } @@ -70,3 +71,50 @@ void MailListModel::runQuery(const Akonadi2::Query &query) setSourceModel(m_model.data()); } +void MailListModel::setParentFolder(const QVariant &parentFolder) +{ + auto folder = parentFolder.value(); + if (!folder) { + qWarning() << "No folder: " << parentFolder; + return; + } + Akonadi2::Query query; + query.syncOnDemand = false; + query.processAll = false; + query.liveQuery = true; + query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "folder"; + query.propertyFilter.insert("folder", folder->identifier()); + query.resources << folder->resourceInstanceIdentifier(); + qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); + runQuery(query); +} + +QVariant MailListModel::parentFolder() const +{ + return QVariant(); +} + +void MailListModel::setMail(const QVariant &variant) +{ + auto mail = variant.value(); + if (!mail) { + qWarning() << "No mail: " << mail; + return; + } + Akonadi2::Query query; + query.syncOnDemand = false; + query.processAll = false; + query.liveQuery = false; + query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "mimeMessage"; + query.ids << mail->identifier(); + query.resources << mail->resourceInstanceIdentifier(); + qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); + runQuery(query); +} + +QVariant MailListModel::mail() const +{ + return QVariant(); +} + + -- cgit v1.2.3