aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppClient.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-06-14 10:56:43 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-06-14 10:56:43 +0000
commit498881bcf60b59b945beed450e31592b1c8e96a3 (patch)
tree686442e532b82827f11247e2b5c0abd81690418a /src/QXmppClient.cpp
parent6f701abe515c0d04d712a69e4883ce92ce6517b5 (diff)
downloadqxmpp-498881bcf60b59b945beed450e31592b1c8e96a3.tar.gz
make logger accessible as a property
Diffstat (limited to 'src/QXmppClient.cpp')
-rw-r--r--src/QXmppClient.cpp61
1 files changed, 35 insertions, 26 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp
index 9e30d548..7f17fa7b 100644
--- a/src/QXmppClient.cpp
+++ b/src/QXmppClient.cpp
@@ -42,36 +42,40 @@
class QXmppClientPrivate
{
public:
- QXmppClientPrivate(QXmppClient *);
+ QXmppClientPrivate(QXmppClient *qq);
+ QXmppPresence clientPresence; ///< Current presence of the client
QList<QXmppClientExtension*> extensions;
QXmppLogger *logger;
- QXmppOutgoingClient* stream; ///< Pointer to QXmppOutgoingClient object a wrapper over
- ///< TCP socket and XMPP protocol
- QXmppPresence clientPresence; ///< Stores the current presence of the connected client
+ QXmppOutgoingClient *stream; ///< Pointer to the XMPP stream
- QXmppReconnectionManager *reconnectionManager; ///< Pointer to the reconnection manager
- QXmppRosterManager *rosterManager; ///< Pointer to the roster manager
- QXmppVCardManager *vCardManager; ///< Pointer to the vCard manager
- QXmppVersionManager *versionManager; ///< Pointer to the version manager
+ QXmppReconnectionManager *reconnectionManager; ///< Pointer to the reconnection manager
+ QXmppRosterManager *rosterManager; ///< Pointer to the roster manager
+ QXmppVCardManager *vCardManager; ///< Pointer to the vCard manager
+ QXmppVersionManager *versionManager; ///< Pointer to the version manager
void addProperCapability(QXmppPresence& presence);
- QXmppClient *client;
+private:
+ QXmppClient *q;
};
-QXmppClientPrivate::QXmppClientPrivate(QXmppClient *parentClient)
- : stream(0),
- clientPresence(QXmppPresence::Available),
- reconnectionManager(0), client(parentClient)
+QXmppClientPrivate::QXmppClientPrivate(QXmppClient *qq)
+ : clientPresence(QXmppPresence::Available),
+ logger(0),
+ stream(0),
+ reconnectionManager(0),
+ rosterManager(0),
+ vCardManager(0),
+ versionManager(0),
+ q(qq)
{
}
void QXmppClientPrivate::addProperCapability(QXmppPresence& presence)
{
- QXmppDiscoveryManager* ext = client->findExtension<QXmppDiscoveryManager>();
- if(ext)
- {
+ QXmppDiscoveryManager* ext = q->findExtension<QXmppDiscoveryManager>();
+ if(ext) {
presence.setCapabilityHash("sha-1");
presence.setCapabilityNode(ext->clientCapabilitiesNode());
presence.setCapabilityVer(ext->capabilities().verificationString());
@@ -166,7 +170,6 @@ QXmppClient::QXmppClient(QObject *parent)
Q_ASSERT(check);
// logging
- d->logger = 0;
setLogger(QXmppLogger::getLogger());
// create managers
@@ -553,7 +556,7 @@ void QXmppClient::_q_streamDisconnected()
/// Returns the QXmppLogger associated with the current QXmppClient.
-QXmppLogger *QXmppClient::logger()
+QXmppLogger *QXmppClient::logger() const
{
return d->logger;
}
@@ -562,13 +565,19 @@ QXmppLogger *QXmppClient::logger()
void QXmppClient::setLogger(QXmppLogger *logger)
{
- if (d->logger)
- QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
- d->logger = logger;
- if (d->logger)
- connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
-}
+ if (logger != d->logger) {
+ if (d->logger) {
+ disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
+ }
+ d->logger = logger;
+ if (d->logger) {
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
+ }
+
+ emit loggerChanged(d->logger);
+ }
+}