Index: src/akonadi/akonadilivequeryintegrator.h =================================================================== --- src/akonadi/akonadilivequeryintegrator.h +++ src/akonadi/akonadilivequeryintegrator.h @@ -232,7 +232,7 @@ template<> inline bool LiveQueryIntegrator::represents(const Item &input, const Domain::Context::Ptr &output) { - return m_serializer->itemRepresentsContext(output, input); + return m_serializer->representsItem(output, input); } template<> Index: src/akonadi/akonadiserializer.h =================================================================== --- src/akonadi/akonadiserializer.h +++ src/akonadi/akonadiserializer.h @@ -69,7 +69,6 @@ bool isContextChild(Domain::Context::Ptr context, Akonadi::Item item) const override; bool isContext(Akonadi::Item item) override; - bool itemRepresentsContext(const Domain::Context::Ptr &context, Akonadi::Item item) const override; Domain::Context::Ptr createContextFromItem(Akonadi::Item item) override; Akonadi::Item createItemFromContext(Domain::Context::Ptr context) override; void updateContextFromItem(Domain::Context::Ptr context, Akonadi::Item item) override; Index: src/akonadi/akonadiserializer.cpp =================================================================== --- src/akonadi/akonadiserializer.cpp +++ src/akonadi/akonadiserializer.cpp @@ -487,17 +487,6 @@ return !todo->customProperty(s_appName, "Context").isEmpty(); } -bool Serializer::itemRepresentsContext(const Domain::Context::Ptr &context, Item item) const -{ - if (!item.hasPayload()) - return false; - - const auto todo = item.payload(); - const auto contextUid = context->property("todoUid").toString(); - return !todo->customProperty(s_appName, "Context").isEmpty() - && todo->uid() == contextUid; -} - Domain::Context::Ptr Serializer::createContextFromItem(Item item) { if (!isContext(item)) Index: src/akonadi/akonadiserializerinterface.h =================================================================== --- src/akonadi/akonadiserializerinterface.h +++ src/akonadi/akonadiserializerinterface.h @@ -86,7 +86,6 @@ virtual bool isContextChild(Domain::Context::Ptr context, Akonadi::Item item) const = 0; virtual bool isContext(Akonadi::Item item) = 0; - virtual bool itemRepresentsContext(const Domain::Context::Ptr &context, Akonadi::Item item) const = 0; virtual Domain::Context::Ptr createContextFromItem(Akonadi::Item item) = 0; virtual Akonadi::Item createItemFromContext(Domain::Context::Ptr project) = 0; virtual void updateContextFromItem(Domain::Context::Ptr context, Akonadi::Item item) = 0; Index: tests/testlib/akonadifakedata.cpp =================================================================== --- tests/testlib/akonadifakedata.cpp +++ tests/testlib/akonadifakedata.cpp @@ -266,7 +266,7 @@ m_contextItems.remove(uid); m_contexts.remove(uid); - m_monitor->removeItem(contextItem); + m_monitor->removeItem(Akonadi::Item(contextItem.id())); // Akonadi doesn't emit a full item } Akonadi::Item::List AkonadiFakeData::items() const @@ -387,7 +387,8 @@ if (isContext(item)) { removeContext(item); } else { - m_monitor->removeItem(reconstructItemDependencies(i)); + // Akonadi doesn't emit the payload, but the ancestors are there + m_monitor->removeItem(reconstructItemDependencies(Akonadi::Item(i.id()))); } } Index: tests/units/akonadi/akonadiserializertest.cpp =================================================================== --- tests/units/akonadi/akonadiserializertest.cpp +++ tests/units/akonadi/akonadiserializertest.cpp @@ -2000,31 +2000,6 @@ QTest::newRow("no") << "context-123" << "another-context" << false; } - void shouldTestIfItemRepresentsContext() - { - // GIVEN - QFETCH(QString, contextUid); - QFETCH(QString, todoUid); - QFETCH(bool, expectedResult); - - auto context = Domain::Context::Ptr::create(); - context->setProperty("todoUid", contextUid); - - KCalCore::Todo::Ptr todo(new KCalCore::Todo); - todo->setCustomProperty(s_appName, "Context", QStringLiteral("1")); - todo->setUid(todoUid); - Akonadi::Item item; - item.setPayload(todo); - - // WHEN - Akonadi::Serializer serializer; - const bool result = serializer.itemRepresentsContext(context, item); - - // THEN - QCOMPARE(result, expectedResult); - QCOMPARE(serializer.contextUid(item), todoUid); - } - void shouldAddContextToTask_data() { QTest::addColumn("context"); Index: tests/units/testlib/akonadifakedatatest.cpp =================================================================== --- tests/units/testlib/akonadifakedatatest.cpp +++ tests/units/testlib/akonadifakedatatest.cpp @@ -401,7 +401,7 @@ QVERIFY(!serializer.isContextChild(context2, item2)); QCOMPARE(contextSpy.size(), 1); - QCOMPARE(contextSpy.takeFirst().at(0).value(), t2); + QCOMPARE(contextSpy.takeFirst().at(0).value().id(), t2.id()); QCOMPARE(itemSpy.size(), 1); const auto emittedItem2 = itemSpy.first().at(0).value(); @@ -641,7 +641,7 @@ QVERIFY(data.childItems(c1.id()).isEmpty()); QCOMPARE(spy.size(), 1); - QCOMPARE(spy.takeFirst().at(0).value(), i1); + QCOMPARE(spy.takeFirst().at(0).value().id(), i1.id()); } };