[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