[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:04:45 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=3a91b52
The following commit has been merged in the master branch:
commit 3a91b527a402e67324042e8e596e7fd00665fb2d
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Wed Dec 28 14:24:18 2011 +0000
Set account manager asynchrously to model creation.
---
KTp/Models/accounts-model.cpp | 44 +++++++++++++++++++++++++++----------------
KTp/Models/accounts-model.h | 4 +++-
2 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/KTp/Models/accounts-model.cpp b/KTp/Models/accounts-model.cpp
index d348f4c..7132261 100644
--- a/KTp/Models/accounts-model.cpp
+++ b/KTp/Models/accounts-model.cpp
@@ -28,10 +28,11 @@
#include "accounts-model-item.h"
#include "contact-model-item.h"
+#include <KDebug>
+
struct AccountsModel::Private
{
- Private(const Tp::AccountManagerPtr &am)
- : mAM(am)
+ Private()
{
}
@@ -47,9 +48,9 @@ TreeNode *AccountsModel::Private::node(const QModelIndex &index) const
return node ? node : mTree;
}
-AccountsModel::AccountsModel(const Tp::AccountManagerPtr &am, QObject *parent)
+AccountsModel::AccountsModel(QObject *parent)
: QAbstractItemModel(parent),
- mPriv(new AccountsModel::Private(am))
+ mPriv(new AccountsModel::Private())
{
mPriv->mTree = new TreeNode;
connect(mPriv->mTree,
@@ -63,18 +64,7 @@ AccountsModel::AccountsModel(const Tp::AccountManagerPtr &am, QObject *parent)
connect(mPriv->mTree,
SIGNAL(childrenRemoved(TreeNode*,int,int)),
SLOT(onItemsRemoved(TreeNode*,int,int)));
-
- Q_FOREACH (Tp::AccountPtr account, mPriv->mAM->allAccounts()) {
- AccountsModelItem *item = new AccountsModelItem(account);
- connect(item, SIGNAL(connectionStatusChanged(QString,int)),
- this, SIGNAL(accountConnectionStatusChanged(QString,int)));
- mPriv->mTree->addChild(item);
- }
-
- connect(mPriv->mAM.data(),
- SIGNAL(newAccount(Tp::AccountPtr)),
- SLOT(onNewAccount(Tp::AccountPtr)));
-
+
QHash<int, QByteArray> roles;
roles[ItemRole] = "item";
roles[IdRole] = "id";
@@ -124,6 +114,25 @@ AccountsModel::~AccountsModel()
delete mPriv;
}
+void AccountsModel::setAccountManager(const Tp::AccountManagerPtr &am)
+{
+ if (! mPriv->mAM.isNull()) {
+ kDebug() << "account manager already set, ignoring";
+ }
+
+ if (!am->isReady()) {
+ kDebug() << "Ready Account Manager expected";
+ }
+ mPriv->mAM = am;
+ Q_FOREACH (Tp::AccountPtr account, mPriv->mAM->allAccounts()) {
+ onNewAccount(account);
+ }
+
+ connect(mPriv->mAM.data(),
+ SIGNAL(newAccount(Tp::AccountPtr)),
+ SLOT(onNewAccount(Tp::AccountPtr)));
+}
+
void AccountsModel::onNewAccount(const Tp::AccountPtr &account)
{
AccountsModelItem *accountNode = new AccountsModelItem(account);
@@ -249,6 +258,9 @@ Tp::AccountPtr AccountsModel::accountForContactItem(ContactModelItem *contactIte
Tp::AccountPtr AccountsModel::accountPtrForPath(const QString& accountPath) const
{
+ if (mPriv->mAM.isNull()) {
+ return Tp::AccountPtr();
+ }
return mPriv->mAM->accountForPath(accountPath);
}
diff --git a/KTp/Models/accounts-model.h b/KTp/Models/accounts-model.h
index 0eb3504..c86d8cf 100644
--- a/KTp/Models/accounts-model.h
+++ b/KTp/Models/accounts-model.h
@@ -95,8 +95,10 @@ public:
CustomRole // a placemark for custom roles in inherited models
};
- explicit AccountsModel(const Tp::AccountManagerPtr &am, QObject *parent = 0);
+ explicit AccountsModel(QObject *parent = 0);
virtual ~AccountsModel();
+
+ void setAccountManager(const Tp::AccountManagerPtr &am);
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list