mucs initial, just display; archive fixes
This commit is contained in:
parent
30c59fbb91
commit
eda96e138d
19 changed files with 626 additions and 43 deletions
|
@ -8,7 +8,10 @@
|
|||
#include <QXmppRosterManager.h>
|
||||
#include <QXmppCarbonManager.h>
|
||||
#include <QXmppMamManager.h>
|
||||
#include <QXmppMucManager.h>
|
||||
#include <QXmppClient.h>
|
||||
#include <QXmppBookmarkManager.h>
|
||||
#include <QXmppBookmarkSet.h>
|
||||
#include "../global.h"
|
||||
#include "contact.h"
|
||||
|
||||
|
@ -18,6 +21,7 @@ namespace Core
|
|||
class Account : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
class MucInfo;
|
||||
public:
|
||||
Account(const QString& p_login, const QString& p_server, const QString& p_password, const QString& p_name, QObject* parent = 0);
|
||||
~Account();
|
||||
|
@ -54,6 +58,9 @@ signals:
|
|||
void availabilityChanged(int);
|
||||
void addGroup(const QString& name);
|
||||
void removeGroup(const QString& name);
|
||||
void addRoom(const QString& jid, const QMap<QString, QVariant>& data);
|
||||
void changeRoom(const QString& jid, const QMap<QString, QVariant>& data);
|
||||
void removeRoom(const QString& jid);
|
||||
void addContact(const QString& jid, const QString& group, const QMap<QString, QVariant>& data);
|
||||
void removeContact(const QString& jid);
|
||||
void removeContact(const QString& jid, const QString& group);
|
||||
|
@ -74,12 +81,15 @@ private:
|
|||
std::map<QString, std::set<QString>> groups;
|
||||
QXmppCarbonManager* cm;
|
||||
QXmppMamManager* am;
|
||||
QXmppMucManager* mm;
|
||||
QXmppBookmarkManager* bm;
|
||||
std::map<QString, Contact*> contacts;
|
||||
unsigned int maxReconnectTimes;
|
||||
unsigned int reconnectTimes;
|
||||
|
||||
std::map<QString, QString> queuedContacts;
|
||||
std::set<QString> outOfRosterContacts;
|
||||
std::map<QString, MucInfo> mucInfo;
|
||||
|
||||
private slots:
|
||||
void onClientConnected();
|
||||
|
@ -101,6 +111,16 @@ private slots:
|
|||
void onMamMessageReceived(const QString& bareJid, const QXmppMessage& message);
|
||||
void onMamResultsReceived(const QString &queryId, const QXmppResultSetReply &resultSetReply, bool complete);
|
||||
|
||||
void onMucRoomAdded(QXmppMucRoom* room);
|
||||
void onMucJoined();
|
||||
void onMucLeft();
|
||||
void onMucNameChanged(const QString& roomName);
|
||||
void onMucNickNameChanged(const QString& nickName);
|
||||
void onMucError(const QXmppStanza::Error& error);
|
||||
void onMucMessage(const QXmppMessage& message);
|
||||
|
||||
void bookmarksReceived(const QXmppBookmarkSet& bookmarks);
|
||||
|
||||
void onContactGroupAdded(const QString& group);
|
||||
void onContactGroupRemoved(const QString& group);
|
||||
void onContactNameChanged(const QString& name);
|
||||
|
@ -119,8 +139,28 @@ private:
|
|||
void initializeMessage(Shared::Message& target, const QXmppMessage& source, bool outgoing = false, bool forwarded = false, bool guessing = false) const;
|
||||
Shared::SubscriptionState castSubscriptionState(QXmppRosterIq::Item::SubscriptionType qs) const;
|
||||
void logMessage(const QXmppMessage& msg, const QString& reason = "Message wasn't handled: ");
|
||||
|
||||
|
||||
class MucInfo {
|
||||
public:
|
||||
MucInfo(bool p_al, bool p_jo, const QString& p_jid, const QString& p_name, const QString& p_nick):
|
||||
autoJoin(p_al),
|
||||
joined(p_jo),
|
||||
jid(p_jid),
|
||||
name(p_name),
|
||||
nick(p_nick),
|
||||
removed(false) {}
|
||||
|
||||
bool autoJoin;
|
||||
bool joined;
|
||||
QString jid;
|
||||
QString name;
|
||||
QString nick;
|
||||
bool removed;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif // CORE_ACCOUNT_H
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue