telepathy-qt: BaseConnection: Added selfID-related stuff.
Alexandr Akulich
kaffeine at kemper.freedesktop.org
Wed May 6 01:10:28 PDT 2015
Module: telepathy-qt
Branch: master
Commit: dd1978748d4969c93997f1aa6d295a6849c411cd
URL: http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=dd1978748d4969c93997f1aa6d295a6849c411cd
Author: Alexandr Akulich <akulichalexander at gmail.com>
Date: Tue Apr 21 12:59:27 2015 +0500
BaseConnection: Added selfID-related stuff.
Added selfID(), setSelfID(), setSelfContact() methods.
Implemented selfContactChanged() signal.
The selfID property added in 0.27.2.
---
TelepathyQt/base-connection-internal.h | 4 +++
TelepathyQt/base-connection.cpp | 51 ++++++++++++++++++++++++++++----
TelepathyQt/base-connection.h | 5 ++++
3 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/TelepathyQt/base-connection-internal.h b/TelepathyQt/base-connection-internal.h
index 7b395e8..8e4c02c 100644
--- a/TelepathyQt/base-connection-internal.h
+++ b/TelepathyQt/base-connection-internal.h
@@ -35,6 +35,7 @@ class TP_QT_NO_EXPORT BaseConnection::Adaptee : public QObject
Q_OBJECT
Q_PROPERTY(QStringList interfaces READ interfaces)
Q_PROPERTY(uint selfHandle READ selfHandle)
+ Q_PROPERTY(QString selfID READ selfID)
Q_PROPERTY(uint status READ status)
Q_PROPERTY(bool hasImmortalHandles READ hasImmortalHandles)
@@ -44,6 +45,7 @@ public:
QStringList interfaces() const;
uint selfHandle() const;
+ QString selfID() const;
uint status() const;
bool hasImmortalHandles() const;
@@ -80,6 +82,8 @@ private Q_SLOTS:
Q_SIGNALS:
void selfHandleChanged(uint selfHandle);
void newChannel(const QDBusObjectPath &objectPath, const QString &channelType, uint handleType, uint handle, bool suppressHandler);
+
+ void selfContactChanged(uint selfHandle, const QString &selfID);
void connectionError(const QString &error, const QVariantMap &details);
void statusChanged(uint status, uint reason);
diff --git a/TelepathyQt/base-connection.cpp b/TelepathyQt/base-connection.cpp
index 9455215..373b4d6 100644
--- a/TelepathyQt/base-connection.cpp
+++ b/TelepathyQt/base-connection.cpp
@@ -59,6 +59,7 @@ struct TP_QT_NO_EXPORT BaseConnection::Private {
QHash<QString, AbstractConnectionInterfacePtr> interfaces;
QSet<BaseChannelPtr> channels;
uint selfHandle;
+ QString selfID;
uint status;
CreateChannelCallback createChannelCB;
ConnectCallback connectCB;
@@ -90,7 +91,12 @@ QStringList BaseConnection::Adaptee::interfaces() const
uint BaseConnection::Adaptee::selfHandle() const
{
- return mConnection->mPriv->selfHandle;
+ return mConnection->selfHandle();
+}
+
+QString BaseConnection::Adaptee::selfID() const
+{
+ return mConnection->selfID();
}
uint BaseConnection::Adaptee::status() const
@@ -140,9 +146,9 @@ void BaseConnection::Adaptee::getProtocol(const Service::ConnectionAdaptor::GetP
context->setFinished(mConnection->protocolName());
}
-void BaseConnection::Adaptee::getSelfHandle(const Tp::Service::ConnectionAdaptor::GetSelfHandleContextPtr &context)
+void BaseConnection::Adaptee::getSelfHandle(const Service::ConnectionAdaptor::GetSelfHandleContextPtr &context)
{
- context->setFinished(mConnection->mPriv->selfHandle);
+ context->setFinished(mConnection->selfHandle());
}
void BaseConnection::Adaptee::getStatus(const Tp::Service::ConnectionAdaptor::GetStatusContextPtr &context)
@@ -303,10 +309,43 @@ uint BaseConnection::selfHandle() const
void BaseConnection::setSelfHandle(uint selfHandle)
{
- bool changed = (selfHandle != mPriv->selfHandle);
+ if (selfHandle == mPriv->selfHandle) {
+ return;
+ }
+
mPriv->selfHandle = selfHandle;
- if (changed)
- QMetaObject::invokeMethod(mPriv->adaptee, "selfHandleChanged", Q_ARG(uint, selfHandle));
+ QMetaObject::invokeMethod(mPriv->adaptee, "selfHandleChanged", Q_ARG(uint, mPriv->selfHandle)); //Can simply use emit in Qt5
+ QMetaObject::invokeMethod(mPriv->adaptee, "selfContactChanged", Q_ARG(uint, mPriv->selfHandle), Q_ARG(QString, mPriv->selfID)); //Can simply use emit in Qt5
+}
+
+QString BaseConnection::selfID() const
+{
+ return mPriv->selfID;
+}
+
+void BaseConnection::setSelfID(const QString &selfID)
+{
+ if (selfID == mPriv->selfID) {
+ return;
+ }
+
+ mPriv->selfID = selfID;
+ QMetaObject::invokeMethod(mPriv->adaptee, "selfContactChanged", Q_ARG(uint, mPriv->selfHandle), Q_ARG(QString, mPriv->selfID)); //Can simply use emit in Qt5
+}
+
+void BaseConnection::setSelfContact(uint selfHandle, const QString &selfID)
+{
+ if ((selfHandle == mPriv->selfHandle) && (selfID == mPriv->selfID)) {
+ return;
+ }
+
+ if (selfHandle != mPriv->selfHandle) {
+ QMetaObject::invokeMethod(mPriv->adaptee, "selfHandleChanged", Q_ARG(uint, mPriv->selfHandle)); //Can simply use emit in Qt5
+ mPriv->selfHandle = selfHandle;
+ }
+
+ mPriv->selfID = selfID;
+ QMetaObject::invokeMethod(mPriv->adaptee, "selfContactChanged", Q_ARG(uint, mPriv->selfHandle), Q_ARG(QString, mPriv->selfID)); //Can simply use emit in Qt5
}
uint BaseConnection::status() const
diff --git a/TelepathyQt/base-connection.h b/TelepathyQt/base-connection.h
index b3958c4..ee3cfb1 100644
--- a/TelepathyQt/base-connection.h
+++ b/TelepathyQt/base-connection.h
@@ -73,6 +73,11 @@ public:
uint selfHandle() const;
void setSelfHandle(uint selfHandle);
+ QString selfID() const;
+ void setSelfID(const QString &selfID);
+
+ void setSelfContact(uint selfHandle, const QString &selfID);
+
uint status() const;
void setStatus(uint newStatus, uint reason);
More information about the telepathy-commits
mailing list