diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-12-13 14:15:12 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-12-13 14:15:12 +0000 |
| commit | 165729e2647e9337f18a0c81230ba914698fdf26 (patch) | |
| tree | 3963ebc713858f57885c45449b1604c5f519e822 /src | |
| parent | 10fd5cc901313f59d859eec88e3110c6c0f34766 (diff) | |
| download | qxmpp-165729e2647e9337f18a0c81230ba914698fdf26.tar.gz | |
do not load QXmppMucManager by default
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppClient.cpp | 13 | ||||
| -rw-r--r-- | src/QXmppClient.h | 2 | ||||
| -rw-r--r-- | src/QXmppClientExtension.h | 2 | ||||
| -rw-r--r-- | src/QXmppMucManager.cpp | 8 | ||||
| -rw-r--r-- | src/QXmppMucManager.h | 15 |
5 files changed, 17 insertions, 23 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp index bcc2e88b..8a02f4bb 100644 --- a/src/QXmppClient.cpp +++ b/src/QXmppClient.cpp @@ -30,7 +30,6 @@ #include "QXmppMessage.h" #include "QXmppUtils.h" -#include "QXmppMucManager.h" #include "QXmppReconnectionManager.h" #include "QXmppRosterManager.h" #include "QXmppTransferManager.h" @@ -51,7 +50,6 @@ public: ///< TCP socket and XMPP protocol QXmppPresence clientPresence; ///< Stores the current presence of the connected client - QXmppMucManager *mucManager; ///< Pointer to the multi-user chat manager QXmppReconnectionManager *reconnectionManager; ///< Pointer to the reconnection manager QXmppRosterManager *rosterManager; ///< Pointer to the roster manager QXmppTransferManager *transferManager;///< Pointer to the transfer manager @@ -177,9 +175,6 @@ QXmppClient::QXmppClient(QObject *parent) d->rosterManager = new QXmppRosterManager(this); addExtension(d->rosterManager); - d->mucManager = new QXmppMucManager(this); - addExtension(d->mucManager); - d->transferManager = new QXmppTransferManager(this); addExtension(d->transferManager); @@ -580,14 +575,6 @@ void QXmppClient::slotElementReceived(const QDomElement &element, bool &handled) } } -/// Returns the reference to QXmppMucManager, implementation of XEP-0045. -/// http://xmpp.org/extensions/xep-045.html -/// -QXmppMucManager& QXmppClient::mucManager() -{ - return *d->mucManager; -} - /// Returns the reference to QXmppTransferManager, implementation of: /// /// * XEP-0047: In-Band Bytestreams diff --git a/src/QXmppClient.h b/src/QXmppClient.h index 89921f9e..f6aca92b 100644 --- a/src/QXmppClient.h +++ b/src/QXmppClient.h @@ -42,7 +42,6 @@ class QXmppStream; // managers class QXmppDiscoveryIq; -class QXmppMucManager; class QXmppReconnectionManager; class QXmppRosterManager; class QXmppTransferManager; @@ -133,7 +132,6 @@ public: QAbstractSocket::SocketError socketError(); QXmppStanza::Error::Condition xmppStreamError(); - QXmppMucManager& mucManager(); QXmppRosterManager& rosterManager(); QXmppTransferManager& transferManager(); QXmppVCardManager& vCardManager(); diff --git a/src/QXmppClientExtension.h b/src/QXmppClientExtension.h index 8e82181f..4c6a33d7 100644 --- a/src/QXmppClientExtension.h +++ b/src/QXmppClientExtension.h @@ -65,9 +65,9 @@ public: protected: QXmppClient *client(); + virtual void setClient(QXmppClient *client); private: - void setClient(QXmppClient *client); QXmppClientExtensionPrivate * const d; friend class QXmppClient; diff --git a/src/QXmppMucManager.cpp b/src/QXmppMucManager.cpp index 32dd4078..1e92b8e9 100644 --- a/src/QXmppMucManager.cpp +++ b/src/QXmppMucManager.cpp @@ -30,12 +30,10 @@ #include "QXmppMucManager.h" #include "QXmppUtils.h" -/// Constructs a QXmppMucManager to interact with multi-user chat rooms. -/// -/// \param client - -QXmppMucManager::QXmppMucManager(QXmppClient* client) +void QXmppMucManager::setClient(QXmppClient* client) { + QXmppClientExtension::setClient(client); + bool check = connect(client, SIGNAL(messageReceived(QXmppMessage)), this, SLOT(messageReceived(QXmppMessage))); Q_ASSERT(check); diff --git a/src/QXmppMucManager.h b/src/QXmppMucManager.h index 2f57d168..f50507d5 100644 --- a/src/QXmppMucManager.h +++ b/src/QXmppMucManager.h @@ -38,6 +38,14 @@ class QXmppMucOwnerIq; /// \brief The QXmppMucManager class makes it possible to interact with /// multi-user chat rooms as defined by XEP-0045: Multi-User Chat. /// +/// To make use of this manager, you need to instantiate it and load it into +/// the QXmppClient instance as follows: +/// +/// \code +/// QXmppMucManager *manager = new QXmppMucManager; +/// client->addExtension(manager); +/// \endcode +/// /// \ingroup Managers class QXmppMucManager : public QXmppClientExtension @@ -45,8 +53,6 @@ class QXmppMucManager : public QXmppClientExtension Q_OBJECT public: - QXmppMucManager(QXmppClient* client); - bool joinRoom(const QString &roomJid, const QString &nickName, const QString &password = QString()); bool leaveRoom(const QString &roomJid); @@ -82,6 +88,11 @@ signals: /// \sa roomParticipants() void roomParticipantChanged(const QString &roomJid, const QString &nickName); +protected: + /// \cond + void setClient(QXmppClient* client); + /// \endcond + private slots: void messageReceived(const QXmppMessage &message); void mucAdminIqReceived(const QXmppMucAdminIq &iq); |
