diff --git a/agents/unifiedmailboxagent/autotests/unifiedmailboxmanagertest.cpp b/agents/unifiedmailboxagent/autotests/unifiedmailboxmanagertest.cpp --- a/agents/unifiedmailboxagent/autotests/unifiedmailboxmanagertest.cpp +++ b/agents/unifiedmailboxagent/autotests/unifiedmailboxmanagertest.cpp @@ -20,7 +20,6 @@ #include "../unifiedmailboxmanager.h" #include "../unifiedmailbox.h" #include "../common.h" -#include "../utils.h" #include #include @@ -58,41 +57,41 @@ return ret;} \ } while (false) -stdx::optional collectionForId(qint64 id) +Akonadi::Collection collectionForId(qint64 id) { auto fetch = new Akonadi::CollectionFetchJob(Akonadi::Collection(id), Akonadi::CollectionFetchJob::Base); fetch->fetchScope().fetchAttribute(); - AKVERIFY_RET(fetch->exec(), stdx::nullopt); + AKVERIFY_RET(fetch->exec(), {}); const auto cols = fetch->collections(); - AKCOMPARE_RET(cols.count(), 1, stdx::nullopt); - AKVERIFY_RET(cols.first().isValid(), stdx::nullopt); + AKCOMPARE_RET(cols.count(), 1, {}); return cols.first(); } -stdx::optional collectionForRid(const QString &rid) +Akonadi::Collection collectionForRid(const QString &rid) { auto fetch = new Akonadi::CollectionFetchJob(Akonadi::Collection::root(), Akonadi::CollectionFetchJob::Recursive); fetch->fetchScope().fetchAttribute(); fetch->fetchScope().setAncestorRetrieval(Akonadi::CollectionFetchScope::All); - AKVERIFY_RET(fetch->exec(), stdx::nullopt); + AKVERIFY_RET(fetch->exec(), {}); const auto cols = fetch->collections(); auto colIt = std::find_if(cols.cbegin(), cols.cend(), [&rid](const Akonadi::Collection &col) { return col.remoteId() == rid; }); - AKVERIFY_RET(colIt != cols.cend(), stdx::nullopt); + AKVERIFY_RET(colIt != cols.cend(), {}); return *colIt; } +// A kingdom and a horse for std::optional! std::unique_ptr createUnifiedMailbox(const QString &id, const QString &name, const QStringList &sourceRids) { auto mailbox = std::make_unique(); mailbox->setId(id); mailbox->setName(name); mailbox->setIcon(QStringLiteral("dummy-icon")); for (const auto &srcRid : sourceRids) { const auto srcCol = collectionForRid(srcRid); - AKVERIFY_RET(srcCol, {}); - mailbox->addSourceCollection(srcCol->id()); + AKVERIFY_RET(srcCol.isValid(), {}); + mailbox->addSourceCollection(srcCol.id()); } return mailbox; } @@ -131,20 +130,19 @@ Akonadi::Item::List items; }; -stdx::optional createCollection(const QString &name, const Akonadi::Collection &parent, EntityDeleter &deleter) +Akonadi::Collection createCollection(const QString &name, const Akonadi::Collection &parent, EntityDeleter &deleter) { Akonadi::Collection col; col.setName(name); col.setParentCollection(parent); col.setVirtual(true); auto createCol = new Akonadi::CollectionCreateJob(col); - AKVERIFY_RET(createCol->exec(), stdx::nullopt); + AKVERIFY_RET(createCol->exec(), {}); col = createCol->collection(); if (col.isValid()) { deleter << col; - return col; } - return stdx::nullopt; + return col; } } // namespace @@ -190,9 +188,9 @@ QCOMPARE(sourceCollections.size(), numSources); for (auto source : sourceCollections) { auto col = collectionForId(source); - QVERIFY(col); - QVERIFY(col->hasAttribute()); - QCOMPARE(col->attribute()->collectionType(), id.toLatin1()); + QVERIFY(col.isValid()); + QVERIFY(col.hasAttribute()); + QCOMPARE(col.attribute()->collectionType(), id.toLatin1()); } success = true; }; @@ -310,14 +308,14 @@ boxGroup = boxesGroup.group(sentBox->id()); sentBox->save(boxGroup); - const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + const Akonadi::Collection parentCol = collectionForRid(Common::AgentIdentifier); + QVERIFY(parentCol.isValid()); - const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol.value(), deleter); - QVERIFY(inboxBoxCol); + const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol, deleter); + QVERIFY(inboxBoxCol.isValid()); - const auto sentBoxCol = createCollection(Common::SentBoxId, parentCol.value(), deleter); - QVERIFY(sentBoxCol); + const auto sentBoxCol = createCollection(Common::SentBoxId, parentCol, deleter); + QVERIFY(sentBoxCol.isValid()); // Load from config bool loadingDone = false; @@ -329,13 +327,13 @@ // Now the boxes should be loaded and we should be able to access them // by IDs of collections that represent them. The collections should also // be set for each box. - auto box = manager.unifiedMailboxFromCollection(inboxBoxCol.value()); + auto box = manager.unifiedMailboxFromCollection(inboxBoxCol); QVERIFY(box != nullptr); - QCOMPARE(box->collectionId().value(), inboxBoxCol->id()); + QCOMPARE(box->collectionId(), inboxBoxCol.id()); - box = manager.unifiedMailboxFromCollection(sentBoxCol.value()); + box = manager.unifiedMailboxFromCollection(sentBoxCol); QVERIFY(box != nullptr); - QCOMPARE(box->collectionId().value(), sentBoxCol->id()); + QCOMPARE(box->collectionId(), sentBoxCol.id()); } void testItemAddedToSourceCollection() @@ -346,10 +344,10 @@ EntityDeleter deleter; const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + QVERIFY(parentCol.isValid()); - const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol.value(), deleter); - QVERIFY(inboxBoxCol); + const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol, deleter); + QVERIFY(inboxBoxCol.isValid()); // Load boxes - config is empty so this will create the default Boxes and // assign the Inboxes from Knuts to it @@ -368,21 +366,21 @@ // Get one of the source collections for Inbox const auto inboxSourceCol = collectionForRid(QStringLiteral("res1_inbox")); - QVERIFY(inboxSourceCol); + QVERIFY(inboxSourceCol.isValid()); // Setup up a monitor to to be notified when an item gets linked into // the unified mailbox collection Akonadi::Monitor monitor; - monitor.setCollectionMonitored(inboxBoxCol.value()); + monitor.setCollectionMonitored(inboxBoxCol); QSignalSpy itemLinkedSignalSpy(&monitor, &Akonadi::Monitor::itemsLinked); QVERIFY(QSignalSpy(&monitor, &Akonadi::Monitor::monitorReady).wait()); // Add a new Item into the source collection Akonadi::Item item; item.setMimeType(QStringLiteral("application/octet-stream")); - item.setParentCollection(inboxSourceCol.value()); + item.setParentCollection(inboxSourceCol); item.setPayload(QByteArray{"Hello world!"}); - auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol.value(), this); + auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol, this); AKVERIFYEXEC(createItem); item = createItem->item(); deleter << item; @@ -394,7 +392,7 @@ QCOMPARE(linkedItems.size(), 1); QCOMPARE(linkedItems.at(0), item); const auto linkedCol = itemLinkedSignalSpy.at(0).at(1).value(); - QCOMPARE(linkedCol, inboxBoxCol.value()); + QCOMPARE(linkedCol, inboxBoxCol); } void testItemMovedFromSourceCollection() @@ -405,10 +403,10 @@ EntityDeleter deleter; const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + QVERIFY(parentCol.isValid()); - const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol.value(), deleter); - QVERIFY(inboxBoxCol); + const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol, deleter); + QVERIFY(inboxBoxCol.isValid()); // Load boxes - config is empty so this will create the default Boxes and // assign the Inboxes from Knuts to it @@ -427,42 +425,42 @@ // Get one of the source collections for Inbox const auto inboxSourceCol = collectionForRid(QStringLiteral("res1_inbox")); - QVERIFY(inboxSourceCol); + QVERIFY(inboxSourceCol.isValid()); // Setup up a monitor to to be notified when an item gets linked into // the unified mailbox collection Akonadi::Monitor monitor; - monitor.setCollectionMonitored(inboxBoxCol.value()); + monitor.setCollectionMonitored(inboxBoxCol); QSignalSpy itemLinkedSignalSpy(&monitor, &Akonadi::Monitor::itemsLinked); QSignalSpy itemUnlinkedSignalSpy(&monitor, &Akonadi::Monitor::itemsUnlinked); QVERIFY(QSignalSpy(&monitor, &Akonadi::Monitor::monitorReady).wait()); // Add a new Item into the source collection Akonadi::Item item; item.setMimeType(QStringLiteral("application/octet-stream")); - item.setParentCollection(inboxSourceCol.value()); + item.setParentCollection(inboxSourceCol); item.setPayload(QByteArray{"Hello world!"}); - auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol.value(), this); + auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol, this); AKVERIFYEXEC(createItem); item = createItem->item(); deleter << item; // Waity for the item to be linked QTRY_COMPARE(itemLinkedSignalSpy.size(), 1); const auto destinationCol = collectionForRid(QStringLiteral("res1_foo")); - QVERIFY(destinationCol); + QVERIFY(destinationCol.isValid()); // Now move the Item to an unmonitored collection - auto move = new Akonadi::ItemMoveJob(item, destinationCol.value(), this); + auto move = new Akonadi::ItemMoveJob(item, destinationCol, this); AKVERIFYEXEC(move); QTRY_COMPARE(itemUnlinkedSignalSpy.size(), 1); const auto unlinkedItems = itemUnlinkedSignalSpy.at(0).at(0).value(); QCOMPARE(unlinkedItems.size(), 1); QCOMPARE(unlinkedItems.first(), item); const auto unlinkedCol = itemUnlinkedSignalSpy.at(0).at(1).value(); - QCOMPARE(unlinkedCol, inboxBoxCol.value()); + QCOMPARE(unlinkedCol, inboxBoxCol); } void testItemMovedBetweenSourceCollections() @@ -473,13 +471,13 @@ EntityDeleter deleter; const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + QVERIFY(parentCol.isValid()); - const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol.value(), deleter); - QVERIFY(inboxBoxCol); + const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol, deleter); + QVERIFY(inboxBoxCol.isValid()); - const auto draftsBoxCol = createCollection(Common::DraftsBoxId, parentCol.value(), deleter); - QVERIFY(draftsBoxCol); + const auto draftsBoxCol = createCollection(Common::DraftsBoxId, parentCol, deleter); + QVERIFY(draftsBoxCol.isValid()); // Load boxes - config is empty so this will create the default Boxes and // assign the Inboxes from Knuts to it @@ -498,25 +496,25 @@ // Get one of the source collections for Inbox and Drafts const auto inboxSourceCol = collectionForRid(QStringLiteral("res1_inbox")); - QVERIFY(inboxSourceCol); + QVERIFY(inboxSourceCol.isValid()); const auto draftsSourceCol = collectionForRid(QStringLiteral("res1_drafts")); - QVERIFY(draftsSourceCol); + QVERIFY(draftsSourceCol.isValid()); // Setup up a monitor to to be notified when an item gets linked into // the unified mailbox collection Akonadi::Monitor monitor; - monitor.setCollectionMonitored(inboxBoxCol.value()); - monitor.setCollectionMonitored(draftsBoxCol.value()); + monitor.setCollectionMonitored(inboxBoxCol); + monitor.setCollectionMonitored(draftsBoxCol); QSignalSpy itemLinkedSignalSpy(&monitor, &Akonadi::Monitor::itemsLinked); QSignalSpy itemUnlinkedSignalSpy(&monitor, &Akonadi::Monitor::itemsUnlinked); QVERIFY(QSignalSpy(&monitor, &Akonadi::Monitor::monitorReady).wait()); // Add a new Item into the source Inbox collection Akonadi::Item item; item.setMimeType(QStringLiteral("application/octet-stream")); - item.setParentCollection(inboxSourceCol.value()); + item.setParentCollection(inboxSourceCol); item.setPayload(QByteArray{"Hello world!"}); - auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol.value(), this); + auto createItem = new Akonadi::ItemCreateJob(item, inboxSourceCol, this); AKVERIFYEXEC(createItem); item = createItem->item(); deleter << item; @@ -526,22 +524,22 @@ itemLinkedSignalSpy.clear(); // Now move the Item to another Unified mailbox's source collection - auto move = new Akonadi::ItemMoveJob(item, draftsSourceCol.value(), this); + auto move = new Akonadi::ItemMoveJob(item, draftsSourceCol, this); AKVERIFYEXEC(move); QTRY_COMPARE(itemUnlinkedSignalSpy.size(), 1); const auto unlinkedItems = itemUnlinkedSignalSpy.at(0).at(0).value(); QCOMPARE(unlinkedItems.size(), 1); QCOMPARE(unlinkedItems.first(), item); const auto unlinkedCol = itemUnlinkedSignalSpy.at(0).at(1).value(); - QCOMPARE(unlinkedCol, inboxBoxCol.value()); + QCOMPARE(unlinkedCol, inboxBoxCol); QTRY_COMPARE(itemLinkedSignalSpy.size(), 1); const auto linkedItems = itemLinkedSignalSpy.at(0).at(0).value(); QCOMPARE(linkedItems.size(), 1); QCOMPARE(linkedItems.first(), item); const auto linkedCol = itemLinkedSignalSpy.at(0).at(1).value(); - QCOMPARE(linkedCol, draftsBoxCol.value()); + QCOMPARE(linkedCol, draftsBoxCol); } void testSourceCollectionRemoved() @@ -554,10 +552,10 @@ EntityDeleter deleter; const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + QVERIFY(parentCol.isValid()); - const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol.value(), deleter); - QVERIFY(inboxBoxCol); + const auto inboxBoxCol = createCollection(Common::InboxBoxId, parentCol, deleter); + QVERIFY(inboxBoxCol.isValid()); // Load boxes - config is empty so this will create the default Boxes and // assign the Inboxes from Knuts to it @@ -575,35 +573,35 @@ QTRY_VERIFY_WITH_TIMEOUT(loadingDone, milliseconds(10s).count()); auto inboxSourceCol = collectionForRid(QStringLiteral("res1_inbox")); - QVERIFY(inboxSourceCol); - auto delJob = new Akonadi::CollectionDeleteJob(inboxSourceCol.value(), this); + QVERIFY(inboxSourceCol.isValid()); + auto delJob = new Akonadi::CollectionDeleteJob(inboxSourceCol, this); AKVERIFYEXEC(delJob); // Wait for the change recorder to be notified QVERIFY(crRemovedSpy.wait()); crRemovedSpy.clear(); // and then wait a little bit more to give the Manager time to process the event QTest::qWait(0); - auto inboxBox = manager.unifiedMailboxFromCollection(inboxBoxCol.value()); + auto inboxBox = manager.unifiedMailboxFromCollection(inboxBoxCol); QVERIFY(inboxBox); - QVERIFY(!inboxBox->sourceCollections().contains(inboxSourceCol->id())); - QVERIFY(!changeRecorder.collectionsMonitored().contains(inboxSourceCol.value())); - QVERIFY(!manager.unifiedMailboxForSource(inboxSourceCol->id())); + QVERIFY(!inboxBox->sourceCollections().contains(inboxSourceCol.id())); + QVERIFY(!changeRecorder.collectionsMonitored().contains(inboxSourceCol)); + QVERIFY(!manager.unifiedMailboxForSource(inboxSourceCol.id())); // Lets removed the other source collection now, that should remove the unified box completely inboxSourceCol = collectionForRid(QStringLiteral("res2_inbox")); - QVERIFY(inboxSourceCol); - delJob = new Akonadi::CollectionDeleteJob(inboxSourceCol.value(), this); + QVERIFY(inboxSourceCol.isValid()); + delJob = new Akonadi::CollectionDeleteJob(inboxSourceCol, this); AKVERIFYEXEC(delJob); // Wait for the change recorder once again QVERIFY(crRemovedSpy.wait()); QTest::qWait(0); - QVERIFY(!manager.unifiedMailboxFromCollection(inboxBoxCol.value())); - QVERIFY(!changeRecorder.collectionsMonitored().contains(inboxSourceCol.value())); - QVERIFY(!manager.unifiedMailboxForSource(inboxSourceCol->id())); + QVERIFY(!manager.unifiedMailboxFromCollection(inboxBoxCol)); + QVERIFY(!changeRecorder.collectionsMonitored().contains(inboxSourceCol)); + QVERIFY(!manager.unifiedMailboxForSource(inboxSourceCol.id())); } void testSpecialSourceCollectionCreated() @@ -622,10 +620,10 @@ EntityDeleter deleter; const auto parentCol = collectionForRid(Common::AgentIdentifier); - QVERIFY(parentCol); + QVERIFY(parentCol.isValid()); - const auto sentBoxCol = createCollection(Common::SentBoxId, parentCol.value(), deleter); - QVERIFY(sentBoxCol); + const auto sentBoxCol = createCollection(Common::SentBoxId, parentCol, deleter); + QVERIFY(sentBoxCol.isValid()); // Load boxes - config is empty so this will create the default Boxes and // assign the Inboxes from Knuts to it @@ -643,40 +641,40 @@ QTRY_VERIFY_WITH_TIMEOUT(loadingDone, milliseconds(10s).count()); auto sentSourceCol = collectionForRid(QStringLiteral("res1_sent")); - QVERIFY(sentSourceCol); - sentSourceCol->removeAttribute(); - auto modify = new Akonadi::CollectionModifyJob(sentSourceCol.value(), this); + QVERIFY(sentSourceCol.isValid()); + sentSourceCol.removeAttribute(); + auto modify = new Akonadi::CollectionModifyJob(sentSourceCol, this); AKVERIFYEXEC(modify); // Wait for the change recorder to be notified QVERIFY(crChangedSpy.wait()); crChangedSpy.clear(); // and then wait a little bit more to give the Manager time to process the event QTest::qWait(0); - auto sourceBox = manager.unifiedMailboxFromCollection(sentBoxCol.value()); + auto sourceBox = manager.unifiedMailboxFromCollection(sentBoxCol); QVERIFY(sourceBox); - QVERIFY(!sourceBox->sourceCollections().contains(sentSourceCol->id())); - QVERIFY(!changeRecorder.collectionsMonitored().contains(sentSourceCol.value())); - QVERIFY(!manager.unifiedMailboxForSource(sentSourceCol->id())); + QVERIFY(!sourceBox->sourceCollections().contains(sentSourceCol.id())); + QVERIFY(!changeRecorder.collectionsMonitored().contains(sentSourceCol)); + QVERIFY(!manager.unifiedMailboxForSource(sentSourceCol.id())); // Lets demote the other source collection now, that should remove the unified box completely sentSourceCol = collectionForRid(QStringLiteral("res2_sent")); - QVERIFY(sentSourceCol); - sentSourceCol->attribute()->setCollectionType("drafts"); - modify = new Akonadi::CollectionModifyJob(sentSourceCol.value(), this); + QVERIFY(sentSourceCol.isValid()); + sentSourceCol.attribute()->setCollectionType("drafts"); + modify = new Akonadi::CollectionModifyJob(sentSourceCol, this); AKVERIFYEXEC(modify); // Wait for the change recorder once again QVERIFY(crChangedSpy.wait()); QTest::qWait(0); // There's no more Sent unified box - QVERIFY(!manager.unifiedMailboxFromCollection(sentBoxCol.value())); + QVERIFY(!manager.unifiedMailboxFromCollection(sentBoxCol)); // The collection is still monitored: it belongs to the Drafts special box now! - QVERIFY(changeRecorder.collectionsMonitored().contains(sentSourceCol.value())); - QVERIFY(manager.unifiedMailboxForSource(sentSourceCol->id())); + QVERIFY(changeRecorder.collectionsMonitored().contains(sentSourceCol)); + QVERIFY(manager.unifiedMailboxForSource(sentSourceCol.id())); } }; diff --git a/agents/unifiedmailboxagent/unifiedmailbox.h b/agents/unifiedmailboxagent/unifiedmailbox.h --- a/agents/unifiedmailboxagent/unifiedmailbox.h +++ b/agents/unifiedmailboxagent/unifiedmailbox.h @@ -24,8 +24,6 @@ #include #include -#include "utils.h" - class KConfigGroup; class UnifiedMailboxManager; @@ -48,7 +46,7 @@ bool isSpecial() const; - stdx::optional collectionId() const; + qint64 collectionId() const; void setCollectionId(qint64 id); QString id() const; @@ -68,7 +66,7 @@ private: void attachManager(UnifiedMailboxManager *manager); - stdx::optional mCollectionId; + qint64 mCollectionId = -1; QString mId; QString mName; QString mIcon; diff --git a/agents/unifiedmailboxagent/unifiedmailbox.cpp b/agents/unifiedmailboxagent/unifiedmailbox.cpp --- a/agents/unifiedmailboxagent/unifiedmailbox.cpp +++ b/agents/unifiedmailboxagent/unifiedmailbox.cpp @@ -41,15 +41,11 @@ void UnifiedMailbox::save(KConfigGroup &group) const { - group.writeEntry("name", mName); - group.writeEntry("icon", mIcon); - group.writeEntry("sources", setToList(mSources)); + group.writeEntry("name", name()); + group.writeEntry("icon", icon()); + group.writeEntry("sources", setToList(sourceCollections())); // just for caching, we will do collection discovery on next start anyway - if (mCollectionId) { - group.writeEntry("collectionId", *mCollectionId); - } else { - group.deleteEntry("collectionId"); - } + group.writeEntry("collectionId", collectionId()); } bool UnifiedMailbox::isSpecial() const @@ -64,7 +60,7 @@ mCollectionId = id; } -stdx::optional UnifiedMailbox::collectionId() const +qint64 UnifiedMailbox::collectionId() const { return mCollectionId; } diff --git a/agents/unifiedmailboxagent/unifiedmailboxagent.cpp b/agents/unifiedmailboxagent/unifiedmailboxagent.cpp --- a/agents/unifiedmailboxagent/unifiedmailboxagent.cpp +++ b/agents/unifiedmailboxagent/unifiedmailboxagent.cpp @@ -65,13 +65,13 @@ connect(&mBoxManager, &UnifiedMailboxManager::updateBox, this, [this](const UnifiedMailbox *box) { - if (!box->collectionId()) { + if (box->collectionId() <= -1) { qCWarning(UNIFIEDMAILBOXAGENT_LOG) << "MailboxManager wants us to update Box but does not have its CollectionId!?"; return; } // Schedule collection sync for the box - synchronizeCollection(box->collectionId().value()); + synchronizeCollection(box->collectionId()); }); auto &ifs = changeRecorder()->itemFetchScope(); diff --git a/agents/unifiedmailboxagent/unifiedmailboxmanager.cpp b/agents/unifiedmailboxagent/unifiedmailboxmanager.cpp --- a/agents/unifiedmailboxagent/unifiedmailboxmanager.cpp +++ b/agents/unifiedmailboxagent/unifiedmailboxmanager.cpp @@ -97,12 +97,12 @@ return; } - if (!box->collectionId()) { + if (box->collectionId() <= -1) { qCWarning(UNIFIEDMAILBOXAGENT_LOG) << "Missing box->collection mapping for unified mailbox" << box->id(); return; } - new Akonadi::LinkJob(Akonadi::Collection{box->collectionId().value()}, {item}, this); + new Akonadi::LinkJob(Akonadi::Collection{box->collectionId()}, {item}, this); }); connect(&mMonitor, &Akonadi::Monitor::itemsRemoved, this, [this](const Akonadi::Item::List &items) { @@ -120,25 +120,25 @@ qCWarning(UNIFIEDMAILBOXAGENT_LOG) << "Received Remove notification for Items belonging to" << parentId << "which we don't monitor"; return; } - if (!box->collectionId()) { + if (box->collectionId() <= -1) { qCWarning(UNIFIEDMAILBOXAGENT_LOG) << "Missing box->collection mapping for unified mailbox" << box->id(); return; } - new Akonadi::UnlinkJob(Akonadi::Collection{box->collectionId().value()}, items, this); + new Akonadi::UnlinkJob(Akonadi::Collection{box->collectionId()}, items, this); }); connect(&mMonitor, &Akonadi::Monitor::itemsMoved, this, [this](const Akonadi::Item::List &items, const Akonadi::Collection &srcCollection, const Akonadi::Collection &dstCollection) { ReplayNextOnExit replayNext(mMonitor); if (const auto srcBox = unifiedMailboxForSource(srcCollection.id())) { // Move source collection was our source, unlink the Item from a box - new Akonadi::UnlinkJob(Akonadi::Collection{srcBox->collectionId().value()}, items, this); + new Akonadi::UnlinkJob(Akonadi::Collection{srcBox->collectionId()}, items, this); } if (const auto dstBox = unifiedMailboxForSource(dstCollection.id())) { // Move destination collection is our source, link the Item into a box - new Akonadi::LinkJob(Akonadi::Collection{dstBox->collectionId().value()}, items, this); + new Akonadi::LinkJob(Akonadi::Collection{dstBox->collectionId()}, items, this); } }); diff --git a/agents/unifiedmailboxagent/utils.h b/agents/unifiedmailboxagent/utils.h --- a/agents/unifiedmailboxagent/utils.h +++ b/agents/unifiedmailboxagent/utils.h @@ -24,13 +24,6 @@ #include #include -#include -namespace stdx { -// Injects content of std::experimental namespace into "exp" namespace. -// C++ is magical. -using namespace std::experimental; -} - template inline QList setToList(QSet &&set) {