[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [libkpeople/dave] src: Convert PersonData to use SharedPtr
From:       David Edmundson <kde () davidedmundson ! co ! uk>
Date:       2013-06-30 22:37:56
Message-ID: E1UtQFo-000446-Gn () scm ! kde ! org
[Download RAW message or body]

Git commit a322fc7a29f8b0a1a7a390a1e2fd6b7e3cf151e4 by David Edmundson.
Committed on 30/06/2013 at 21:23.
Pushed by davidedmundson into branch 'dave'.

Convert PersonData to use SharedPtr

M  +3    -1    src/abstractpersonplugin.cpp
M  +2    -2    src/abstractpersonplugin.h
M  +6    -6    src/autotests/tests/persondatatests.cpp
M  +1    -1    src/examples/personwidget.cpp
M  +2    -5    src/personactionsmodel.cpp
M  +6    -6    src/persondata.cpp
M  +7    -3    src/persondata.h
M  +1    -1    src/personpluginmanager.cpp
M  +3    -2    src/personpluginmanager.h
M  +1    -1    src/plugins/core/emailplugin.cpp
M  +1    -1    src/plugins/core/emailplugin.h

http://commits.kde.org/libkpeople/a322fc7a29f8b0a1a7a390a1e2fd6b7e3cf151e4

diff --git a/src/abstractpersonplugin.cpp b/src/abstractpersonplugin.cpp
index 3a41f3b..084e30c 100644
--- a/src/abstractpersonplugin.cpp
+++ b/src/abstractpersonplugin.cpp
@@ -29,7 +29,9 @@ AbstractPersonPlugin::AbstractPersonPlugin(QObject *parent) : \
QObject (parent)  
 }
 
-QList< QAction* > AbstractPersonPlugin::actionsForPerson(PersonData*const \
personData, QObject* parent) +QList< QAction* > \
AbstractPersonPlugin::actionsForPerson(const PersonDataPtr &personData, QObject* \
parent)  {
+    Q_UNUSED(personData);
+    Q_UNUSED(parent);
     return QList<QAction*>();
 }
diff --git a/src/abstractpersonplugin.h b/src/abstractpersonplugin.h
index 60508b6..15c968c 100644
--- a/src/abstractpersonplugin.h
+++ b/src/abstractpersonplugin.h
@@ -25,10 +25,10 @@ class PersonData;
 #include <QAction>
 
 #include "kpeople_export.h"
+#include "persondata.h"
 
 namespace KPeople
 {
-class PersonData;
 
 class KPEOPLE_EXPORT AbstractPersonPlugin : public QObject
 {
@@ -41,7 +41,7 @@ public:
      * @personData information on a single contact
      * @parent parent object for newly created actions
      */
-    virtual QList<QAction*> actionsForPerson(KPeople::PersonData * const personData, \
QObject *parent); +    virtual QList<QAction*> actionsForPerson(const \
KPeople::PersonDataPtr &personData, QObject *parent);  };
 
 }
diff --git a/src/autotests/tests/persondatatests.cpp \
b/src/autotests/tests/persondatatests.cpp index 6cf40be..bf0c470 100644
--- a/src/autotests/tests/persondatatests.cpp
+++ b/src/autotests/tests/persondatatests.cpp
@@ -134,7 +134,7 @@ void PersonDataTests::init()
 void PersonDataTests::contactProperties()
 {
     //create a simple contact with name + email
-    QScopedPointer<PersonData> personData(PersonData::loadFromUri(m_contact1Uri));
+    PersonDataPtr personData(PersonData::createFromUri(m_contact1Uri));
     QCOMPARE(personData->isValid(), true);
     QCOMPARE(personData->uri(), m_contact1Uri);
     QCOMPARE(personData->isPerson(), false);
@@ -146,7 +146,7 @@ void PersonDataTests::contactProperties()
 
 void PersonDataTests::personProperties()
 {
-    QScopedPointer<PersonData> personData(PersonData::loadFromUri(m_personAUri));
+    PersonDataPtr personData(PersonData::createFromUri(m_personAUri));
     QCOMPARE(personData->isValid(), true);
     QCOMPARE(personData->isPerson(), true);
     QCOMPARE(personData->contactResources().size(), 2);
@@ -156,20 +156,20 @@ void PersonDataTests::personProperties()
 
 void PersonDataTests::personFromContactID()
 {
-    QScopedPointer<PersonData> \
personData(PersonData::loadFromContactId(QLatin1String("contact2@example.com"))); +   \
PersonDataPtr personData(PersonData::createFromContactId(QLatin1String("contact2@example.com")));
  //This should load PersonA NOT Contact2
     QCOMPARE(personData->uri(), m_personAUri);
 }
 
 void PersonDataTests::contactFromContactID()
 {
-    QScopedPointer<PersonData> \
personData(PersonData::loadFromContactId(QLatin1String("contact1@example.com"))); +   \
PersonDataPtr personData(PersonData::createFromContactId(QLatin1String("contact1@example.com")));
  QCOMPARE(personData->uri(), m_contact1Uri);
 }
 
 void PersonDataTests::miscTests()
 {
-    QScopedPointer<PersonData> \
personData(PersonData::loadFromContactId(QLatin1String("NOTEXIST"))); +    \
PersonDataPtr personData(PersonData::createFromContactId(QLatin1String("NOTEXIST"))); \
personData->uri();  personData->name();
     personData->avatar();
@@ -185,7 +185,7 @@ void PersonDataTests::miscTests()
 
 void PersonDataTests::contactChanged()
 {
-    QScopedPointer<PersonData> personData(PersonData::loadFromUri(m_contact1Uri));
+    PersonDataPtr personData(PersonData::createFromUri(m_contact1Uri));
 
     Nepomuk2::SimpleResourceGraph graph;
 
diff --git a/src/examples/personwidget.cpp b/src/examples/personwidget.cpp
index 595ccf2..fc70a7d 100644
--- a/src/examples/personwidget.cpp
+++ b/src/examples/personwidget.cpp
@@ -35,7 +35,7 @@ int main(int argc, char** argv)
         return 1;
     }
 
-    QScopedPointer<KPeople::PersonData> \
person(KPeople::PersonData::loadFromContactId(app.arguments()[1])); +    \
KPeople::PersonDataPtr \
person(KPeople::PersonData::createFromContactId(app.arguments()[1]));  
     KPeople::PersonDetailsView w;
     w.setPerson(person.data());
diff --git a/src/personactionsmodel.cpp b/src/personactionsmodel.cpp
index 5dcd25c..e0ef14e 100644
--- a/src/personactionsmodel.cpp
+++ b/src/personactionsmodel.cpp
@@ -37,7 +37,7 @@ struct PersonActionsPrivate {
     QList<QAction*> actions;
 
     QPersistentModelIndex index;
-    PersonData *person;
+    PersonDataPtr person;
 };
 }
 
@@ -66,10 +66,7 @@ void PersonActionsModel::setPerson(const QPersistentModelIndex& \
index)  beginResetModel();
     d->actions.clear();
     d->index = index;
-    if (d->person) {
-        d->person->deleteLater();
-    }
-    d->person = PersonData::loadFromUri(index.data(PersonsModel::UriRole).toString(), \
this); +    d->person = \
PersonData::createFromUri(index.data(PersonsModel::UriRole).toString());  
     d->actions.append(PersonPluginManager::actionsForPerson(d->person, this));
 
diff --git a/src/persondata.cpp b/src/persondata.cpp
index e564efa..1dc30a1 100644
--- a/src/persondata.cpp
+++ b/src/persondata.cpp
@@ -64,17 +64,17 @@ public:
 };
 }
 
-PersonData* PersonData::loadFromContactId(const QString& contactId, QObject* parent)
+PersonDataPtr PersonData::createFromUri(const QUrl& uri)
 {
-    PersonData *person = new PersonData(parent);
-    person->loadContact(contactId);
+    PersonDataPtr person(new PersonData);
+    person->loadUri(uri);
     return person;
 }
 
-PersonData* PersonData::loadFromUri(const QUrl& uri, QObject* parent)
+PersonDataPtr PersonData::createFromContactId(const QString& contactId)
 {
-    PersonData *person = new PersonData(parent);
-    person->loadUri(uri);
+    PersonDataPtr person(new PersonData);
+    person->loadContact(contactId);
     return person;
 }
 
diff --git a/src/persondata.h b/src/persondata.h
index 86ea74d..36b81aa 100644
--- a/src/persondata.h
+++ b/src/persondata.h
@@ -34,6 +34,10 @@ namespace KPeople
 {
 struct PersonDataPrivate;
 
+class PersonData;
+
+typedef QSharedPointer<PersonData> PersonDataPtr;
+
 class KPEOPLE_EXPORT PersonData : public QObject
 {
     Q_OBJECT
@@ -47,8 +51,8 @@ class KPEOPLE_EXPORT PersonData : public QObject
     Q_PROPERTY(bool isValid READ isValid)
 
     public:
-        static PersonData* loadFromUri(const QUrl &url, QObject *parent=0);
-        static PersonData* loadFromContactId(const QString &contactId, QObject \
*parent=0); +        static PersonDataPtr createFromUri(const QUrl &url);
+        static PersonDataPtr createFromContactId(const QString &contactId);
 
         virtual ~PersonData();
 
@@ -91,7 +95,7 @@ class KPEOPLE_EXPORT PersonData : public QObject
         void dataChanged();
 
     protected:
-        PersonData(QObject *parent);
+        PersonData(QObject *parent=0);
 
         /** sets new contact uri, all data are refetched */
         void loadUri(const QUrl &uri);
diff --git a/src/personpluginmanager.cpp b/src/personpluginmanager.cpp
index 487f1bb..5886a7f 100644
--- a/src/personpluginmanager.cpp
+++ b/src/personpluginmanager.cpp
@@ -67,7 +67,7 @@ PersonPluginManagerPrivate::~PersonPluginManagerPrivate()
     presencePlugin->deleteLater();
 }
 
-QList<QAction*> PersonPluginManager::actionsForPerson(PersonData *person, QObject \
*parent) +QList<QAction*> PersonPluginManager::actionsForPerson(PersonDataPtr person, \
QObject *parent)  {
     QList<QAction*> actions;
     Q_FOREACH(AbstractPersonPlugin *plugin, s_instance->plugins) {
diff --git a/src/personpluginmanager.h b/src/personpluginmanager.h
index 38f1381..53467c3 100644
--- a/src/personpluginmanager.h
+++ b/src/personpluginmanager.h
@@ -24,17 +24,18 @@
 
 #include "kpeople_export.h"
 
+#include "persondata.h"
+
 class QAction;
 
 namespace KPeople
 {
 class BasePersonsDataSource;
-class PersonData;
 
 class KPEOPLE_EXPORT PersonPluginManager
 {
 public:
-    static QList<QAction*> actionsForPerson(PersonData *person, QObject *parent);
+    static QList<QAction*> actionsForPerson(PersonDataPtr, QObject *parent);
 
     static BasePersonsDataSource* presencePlugin();
 };
diff --git a/src/plugins/core/emailplugin.cpp b/src/plugins/core/emailplugin.cpp
index 83babd4..a7ab28c 100644
--- a/src/plugins/core/emailplugin.cpp
+++ b/src/plugins/core/emailplugin.cpp
@@ -33,7 +33,7 @@ EmailPlugin::EmailPlugin(QObject* parent, const QVariantList \
&args):  
 }
 
-QList< QAction* > EmailPlugin::actionsForPerson(KPeople::PersonData* personData, \
QObject* parent) +QList< QAction* > EmailPlugin::actionsForPerson(const \
KPeople::PersonDataPtr &personData, QObject* parent)  {
     QList<QAction*> actions;
     foreach(const QString &email, personData->emails()) {
diff --git a/src/plugins/core/emailplugin.h b/src/plugins/core/emailplugin.h
index ebffe64..0247213 100644
--- a/src/plugins/core/emailplugin.h
+++ b/src/plugins/core/emailplugin.h
@@ -28,7 +28,7 @@ class EmailPlugin : public KPeople::AbstractPersonPlugin
 public:
     EmailPlugin(QObject* parent, const QVariantList &args);
 
-    virtual QList<QAction*> actionsForPerson(KPeople::PersonData *personData, \
QObject *parent); +    virtual QList<QAction*> actionsForPerson(const \
KPeople::PersonDataPtr &personData, QObject *parent);  
 private Q_SLOTS:
     void onEmailTriggered();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic