Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > cf746698214707f972e669b661d0ae59 > files > 41

kdepim4-4.14.10-1.3.mga5.src.rpm

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