basic sending messages
This commit is contained in:
parent
d3f537856f
commit
5575cff1f5
14 changed files with 103 additions and 3 deletions
|
@ -1,5 +1,6 @@
|
|||
#include "contact.h"
|
||||
#include <QDebug>
|
||||
#include "account.h"
|
||||
|
||||
Models::Contact::Contact(const QString& p_jid ,const QMap<QString, QVariant> &data, Item *parentItem):
|
||||
Item(Item::contact, data, parentItem),
|
||||
|
@ -249,3 +250,30 @@ void Models::Contact::dropMessages()
|
|||
itr.value()->dropMessages();
|
||||
}
|
||||
}
|
||||
|
||||
void Models::Contact::getMessages(Models::Contact::Messages& container) const
|
||||
{
|
||||
for (Messages::const_iterator itr = messages.begin(), end = messages.end(); itr != end; ++itr) {
|
||||
const QMap<QString, QString>& msg = *itr;
|
||||
container.push_back(msg);
|
||||
}
|
||||
|
||||
for (QMap<QString, Presence*>::const_iterator itr = presences.begin(), end = presences.end(); itr != end; ++itr) {
|
||||
itr.value()->getMessages(container);
|
||||
}
|
||||
}
|
||||
|
||||
QString Models::Contact::getAccountJid() const
|
||||
{
|
||||
const Item* p = this;
|
||||
do {
|
||||
p = p->parentItemConst();
|
||||
} while (p != 0 && p->type != Item::account);
|
||||
|
||||
if (p == 0) {
|
||||
qDebug() << "An attempt to request account jid of the contact " << jid << " but the parent account wasn't found, returning empty string";
|
||||
return "";
|
||||
}
|
||||
const Account* acc = static_cast<const Account*>(p);
|
||||
return acc->getLogin() + "@" + acc->getServer();
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ class Contact : public Item
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
typedef std::deque<QMap<QString, QString>> Messages;
|
||||
Contact(const QString& p_jid ,const QMap<QString, QVariant> &data, Item *parentItem = 0);
|
||||
~Contact();
|
||||
|
||||
|
@ -32,10 +33,12 @@ public:
|
|||
|
||||
void appendChild(Models::Item * child) override;
|
||||
QString getAccountName() const;
|
||||
QString getAccountJid() const;
|
||||
|
||||
void addMessage(const QMap<QString, QString>& data);
|
||||
unsigned int getMessagesCount() const;
|
||||
void dropMessages();
|
||||
void getMessages(Messages& container) const;
|
||||
|
||||
protected:
|
||||
void _removeChild(int index) override;
|
||||
|
@ -51,7 +54,6 @@ protected:
|
|||
void setJid(const QString p_jid);
|
||||
|
||||
private:
|
||||
typedef std::deque<QMap<QString, QString>> Messages;
|
||||
QString jid;
|
||||
Shared::Availability availability;
|
||||
Shared::SubscriptionState state;
|
||||
|
|
|
@ -149,3 +149,10 @@ QIcon Models::Presence::getStatusIcon() const
|
|||
}
|
||||
}
|
||||
|
||||
void Models::Presence::getMessages(Models::Presence::Messages& container) const
|
||||
{
|
||||
for (Messages::const_iterator itr = messages.begin(), end = messages.end(); itr != end; ++itr) {
|
||||
const QMap<QString, QString>& msg = *itr;
|
||||
container.push_back(msg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ class Presence : public Models::Item
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
typedef std::deque<QMap<QString, QString>> Messages;
|
||||
explicit Presence(const QMap<QString, QVariant> &data, Item *parentItem = 0);
|
||||
~Presence();
|
||||
|
||||
|
@ -51,9 +52,10 @@ public:
|
|||
unsigned int getMessagesCount() const;
|
||||
void dropMessages();
|
||||
void addMessage(const QMap<QString, QString>& data);
|
||||
|
||||
void getMessages(Messages& container) const;
|
||||
|
||||
private:
|
||||
typedef std::deque<QMap<QString, QString>> Messages;
|
||||
Shared::Availability availability;
|
||||
QDateTime lastActivity;
|
||||
QString status;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue