https://bugs.freedesktop.org/show_bug.cgi?id=65998
Patrick Ohly <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO --- Comment #1 from Patrick Ohly <[email protected]> --- Thanks for the detailed setup log. That answers a lot of questions already. It all looks good. (In reply to comment #0) > [roubach@localhost ~]$ syncevolution --print-items @default todo > [roubach@localhost ~]$ Are you absolutely sure that akonadi:?collection=262 contains items? Do you know how to use gdb or how to recompile SyncEvolution? I have the suspicion that the items are found, but their mime type isn't what is expected. In a recent commit, the "sub mime type" was changed from "text/calendar" to the more specific "application/x-vnd.akonadi.calendar.todo", because that is the type used by Akonadi to describe what kinds of items the collection contains. See commit 05fb1aebc3242c0cf734f18f0582df8cb05e0999 Author: Diane Trout <[email protected]> Date: Thu Apr 25 10:07:25 2013 +0200 KDE: fix Akonadi backend for tasks Because of a too generic mime type in SyncEvolution, task collections were not found. diff --git a/src/backends/akonadi/akonadisyncsource.h b/src/backends/akonadi/akonadisyncsource.h index 5c11ff9..6e88188 100644 --- a/src/backends/akonadi/akonadisyncsource.h +++ b/src/backends/akonadi/akonadisyncsource.h @@ -128,7 +128,7 @@ class AkonadiTaskSource : public AkonadiSyncSource { public: AkonadiTaskSource(const SyncSourceParams ¶ms) - : AkonadiSyncSource("text/calendar", params) + : AkonadiSyncSource("application/x-vnd.akonadi.calendar.todo", params) { } Perhaps it uses that type for the collection and "text/calendar" for the items? In that case, the following code will not find the tasks: void AkonadiSyncSource::listAllItems(SyncSourceRevisions::RevisionMap_t &revisions) { // copy all local IDs and the corresponding revision std::auto_ptr<ItemFetchJob> fetchJob(DisableAutoDelete(new ItemFetchJob(m_collection))); if (!fetchJob->exec()) { throwError("listing items"); } BOOST_FOREACH (const Item &item, fetchJob->items()) { // Filter out items which don't have the right type (for example, VTODO when // syncing events) if (item.mimeType() == m_subMime.c_str()) { revisions[QByteArray::number(item.id()).constData()] = QByteArray::number(item.revision()).constData(); } } } You can check this theory by single-stepping through that function. Bonus points for the output of "print item.mimeType()". Not sure whether gdb will be able to call the function. In that case, recompile and add LOG_INFO(NULL, "item mime type: %s", item.mimeType()); -- You are receiving this mail because: You are on the CC list for the bug. You are the assignee for the bug.
_______________________________________________ Syncevolution-issues mailing list [email protected] https://lists.syncevolution.org/mailman/listinfo/syncevolution-issues
