Try to load past messages with QXmppArchiveManager

This commit is contained in:
Stojce Slavkovski 2014-04-24 22:44:52 +02:00
parent 620c3119b4
commit 2c35fe433d
4 changed files with 16 additions and 2 deletions

View file

@ -20,11 +20,15 @@ const QString DEFAULT_CHAT_ROOM = "public@public-chat.highfidelity.io";
XmppClient::XmppClient() : XmppClient::XmppClient() :
_xmppClient(), _xmppClient(),
_xmppMUCManager() _xmppMUCManager(),
_archiveManager()
{ {
AccountManager& accountManager = AccountManager::getInstance(); AccountManager& accountManager = AccountManager::getInstance();
connect(&accountManager, SIGNAL(accessTokenChanged()), this, SLOT(connectToServer())); connect(&accountManager, SIGNAL(accessTokenChanged()), this, SLOT(connectToServer()));
connect(&accountManager, SIGNAL(logoutComplete()), this, SLOT(disconnectFromServer())); connect(&accountManager, SIGNAL(logoutComplete()), this, SLOT(disconnectFromServer()));
_archiveManager = new QXmppArchiveManager;
_xmppClient.addExtension(_archiveManager);
} }
XmppClient& XmppClient::getInstance() { XmppClient& XmppClient::getInstance() {

View file

@ -17,6 +17,7 @@
#include <QObject> #include <QObject>
#include <QXmppClient.h> #include <QXmppClient.h>
#include <QXmppMucManager.h> #include <QXmppMucManager.h>
#include "QXmppArchiveManager.h"
/// Generalized threaded processor for handling received inbound packets. /// Generalized threaded processor for handling received inbound packets.
class XmppClient : public QObject { class XmppClient : public QObject {
@ -27,6 +28,7 @@ public:
QXmppClient& getXMPPClient() { return _xmppClient; } QXmppClient& getXMPPClient() { return _xmppClient; }
const QXmppMucRoom* getPublicChatRoom() const { return _publicChatRoom; } const QXmppMucRoom* getPublicChatRoom() const { return _publicChatRoom; }
QXmppArchiveManager* getArchiveManager() const { return _archiveManager; }
private slots: private slots:
void xmppConnected(); void xmppConnected();
@ -43,6 +45,7 @@ private:
QXmppClient _xmppClient; QXmppClient _xmppClient;
QXmppMucManager _xmppMUCManager; QXmppMucManager _xmppMUCManager;
QXmppMucRoom* _publicChatRoom; QXmppMucRoom* _publicChatRoom;
QXmppArchiveManager* _archiveManager;
}; };
#endif // __interface__XmppClient__ #endif // __interface__XmppClient__

View file

@ -74,6 +74,7 @@ ChatWindow::ChatWindow() :
connect(&xmppClient, SIGNAL(connected()), this, SLOT(connected())); connect(&xmppClient, SIGNAL(connected()), this, SLOT(connected()));
} }
connect(&xmppClient, SIGNAL(messageReceived(QXmppMessage)), this, SLOT(messageReceived(QXmppMessage))); connect(&xmppClient, SIGNAL(messageReceived(QXmppMessage)), this, SLOT(messageReceived(QXmppMessage)));
#endif #endif
} }
@ -213,6 +214,7 @@ void ChatWindow::connected() {
#ifdef HAVE_QXMPP #ifdef HAVE_QXMPP
const QXmppMucRoom* publicChatRoom = XmppClient::getInstance().getPublicChatRoom(); const QXmppMucRoom* publicChatRoom = XmppClient::getInstance().getPublicChatRoom();
connect(publicChatRoom, SIGNAL(participantsChanged()), this, SLOT(participantsChanged())); connect(publicChatRoom, SIGNAL(participantsChanged()), this, SLOT(participantsChanged()));
#endif #endif
startTimerForTimeStamps(); startTimerForTimeStamps();
} }

View file

@ -23,6 +23,10 @@
#include <QXmppClient.h> #include <QXmppClient.h>
#include <QXmppMessage.h> #include <QXmppMessage.h>
class QXmppArchiveChat;
class QXmppArchiveManager;
class QXmppResultSetReply;
#endif #endif
namespace Ui { namespace Ui {
@ -70,6 +74,7 @@ private slots:
void error(QXmppClient::Error error); void error(QXmppClient::Error error);
void participantsChanged(); void participantsChanged();
void messageReceived(const QXmppMessage& message); void messageReceived(const QXmppMessage& message);
#endif #endif
}; };