From fda7c88e8ee976fb712ca85cd4bf5e08f3d6d2d6 Mon Sep 17 00:00:00 2001
From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com>
Date: Fri, 13 Mar 2015 10:02:47 -0400
Subject: [PATCH] build: Fix compilation with Qt 5.3

Regressed in 3d72371a5b

Refs #68352
---
 src/fallbackpersoncollection.cpp | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/src/fallbackpersoncollection.cpp b/src/fallbackpersoncollection.cpp
index a6dd9f62..4e7404e6 100644
--- a/src/fallbackpersoncollection.cpp
+++ b/src/fallbackpersoncollection.cpp
@@ -53,16 +53,22 @@ private:
    virtual QVector<Person*> items() const override;
 };
 
-class FallbackPersonCollectionPrivate
+class FallbackPersonCollectionPrivate : public QObject
 {
+   Q_OBJECT
 public:
-   FallbackPersonCollectionPrivate(CollectionMediator<Person>* mediator, const QString& path);
+   FallbackPersonCollectionPrivate(FallbackPersonCollection* parent, CollectionMediator<Person>* mediator, const QString& path);
    CollectionMediator<Person>*  m_pMediator;
    QString                      m_Path     ;
    QString                      m_Name     ;
+
+   FallbackPersonCollection* q_ptr;
+
+public Q_SLOTS:
+   void loadAsync();
 };
 
-FallbackPersonCollectionPrivate::FallbackPersonCollectionPrivate(CollectionMediator<Person>* mediator, const QString& path) : m_pMediator(mediator), m_Path(path)
+FallbackPersonCollectionPrivate::FallbackPersonCollectionPrivate(FallbackPersonCollection* parent, CollectionMediator<Person>* mediator, const QString& path) : q_ptr(parent), m_pMediator(mediator), m_Path(path)
 {
    m_Name = path.split('/').last();
    if (m_Name.size())
@@ -72,7 +78,7 @@ FallbackPersonCollectionPrivate::FallbackPersonCollectionPrivate(CollectionMedia
 }
 
 FallbackPersonCollection::FallbackPersonCollection(CollectionMediator<Person>* mediator, const QString& path, FallbackPersonCollection* parent) :
-CollectionInterface(new FallbackPersonBackendEditor(mediator,path),parent),d_ptr(new FallbackPersonCollectionPrivate(mediator,path))
+CollectionInterface(new FallbackPersonBackendEditor(mediator,path),parent),d_ptr(new FallbackPersonCollectionPrivate(this,mediator,path))
 {
 }
 
@@ -149,12 +155,7 @@ bool FallbackPersonCollection::load()
    }
 
    //Add all sub directories as new backends
-   QTimer::singleShot(0,[this]() {
-      QDir d(d_ptr->m_Path);
-      for (const QString& dir : d.entryList(QDir::AllDirs)) {
-         PersonModel::instance()->addCollection<FallbackPersonCollection,QString,FallbackPersonCollection*>(d_ptr->m_Path+'/'+dir,this);
-      }
-   });
+   QTimer::singleShot(0,d_ptr,&FallbackPersonCollectionPrivate::loadAsync);
 
    return true;
 }
@@ -187,3 +188,14 @@ QByteArray FallbackPersonCollection::id() const
 {
    return "fpc2";
 }
+
+
+void FallbackPersonCollectionPrivate::loadAsync()
+{
+   QDir d(m_Path);
+   for (const QString& dir : d.entryList(QDir::AllDirs)) {
+      PersonModel::instance()->addCollection<FallbackPersonCollection,QString,FallbackPersonCollection*>(m_Path+'/'+dir,q_ptr);
+   }
+}
+
+#include "fallbackpersoncollection.moc"
-- 
GitLab