From e0debbd1a9a38ce67d5b478813c865e41c13bf9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <daniel.vratil@kdab.com> Date: Wed, 10 Feb 2016 19:59:31 +0100 Subject: [PATCH 41/74] Fix CalendarSupport::displayName() not resolving ancestors sometimes Use the Collection resolved from ETMCalendar instead of the one passed into the function. The Collections in ETMCalendar will usually have the full ancestor chain avialable. --- calendarsupport/next/incidenceviewer.cpp | 3 ++- calendarsupport/utils.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/calendarsupport/next/incidenceviewer.cpp b/calendarsupport/next/incidenceviewer.cpp index 7ca42afe00..7ae741bfd5 100644 --- a/calendarsupport/next/incidenceviewer.cpp +++ b/calendarsupport/next/incidenceviewer.cpp @@ -27,6 +27,7 @@ #include "incidenceattachmentmodel.h" #include <Akonadi/CollectionFetchJob> +#include <Akonadi/CollectionFetchScope> #include <Akonadi/ItemFetchScope> #include <akonadi/calendar/calendarbase.h> @@ -242,7 +243,7 @@ void IncidenceViewer::itemChanged( const Akonadi::Item &item ) d->mParentCollectionFetchJob = new Akonadi::CollectionFetchJob( d->mCurrentItem.parentCollection(), Akonadi::CollectionFetchJob::Base, this ); - + d->mParentCollectionFetchJob->fetchScope().setAncestorRetrieval(Akonadi::CollectionFetchScope::All); connect( d->mParentCollectionFetchJob, SIGNAL(result(KJob*)), this, SLOT(slotParentCollectionFetched(KJob*)) ); } diff --git a/calendarsupport/utils.cpp b/calendarsupport/utils.cpp index b5688f89e5..4cf8b515a3 100644 --- a/calendarsupport/utils.cpp +++ b/calendarsupport/utils.cpp @@ -514,7 +514,7 @@ QString CalendarSupport::displayName( Akonadi::ETMCalendar *calendar, const Akon QString ownerStr; // folder owner: "fred", "ethel", etc QString nameStr; // folder name: "Public", "Test", etc if ( calendar ) { - Akonadi::Collection p = c.parentCollection(); + Akonadi::Collection p = fullCollection.parentCollection(); while ( p != Akonadi::Collection::root() ) { Akonadi::Collection tCol = calendar->collection( p.id() ); const QString tName = tCol.name(); @@ -592,14 +592,14 @@ QString CalendarSupport::displayName( Akonadi::ETMCalendar *calendar, const Akon if ( resourceName.contains( QLatin1String( "google" ) ) ) { QString ownerStr; // folder owner: "user@gmail.com" if ( calendar ) { - Akonadi::Collection p = c.parentCollection(); + Akonadi::Collection p = fullCollection.parentCollection(); ownerStr = calendar->collection( p.id() ).displayName(); } - const QString nameStr = c.displayName(); // folder name: can be anything + const QString nameStr = fullCollection.displayName(); // folder name: can be anything QString typeStr; - const QString mimeStr = c.contentMimeTypes().join( QLatin1String(",") ); + const QString mimeStr = fullCollection.contentMimeTypes().join( QLatin1String(",") ); if ( mimeStr.contains( QLatin1String(".event") ) ) { typeStr = i18n( "Calendar" ); } else if ( mimeStr.contains( QLatin1String(".todo") ) ) { -- 2.14.1