basic sending messages

This commit is contained in:
Blue 2019-04-10 23:53:42 +03:00
parent d3f537856f
commit 5575cff1f5
14 changed files with 103 additions and 3 deletions

View file

@ -406,3 +406,12 @@ QString Core::Account::getFullJid() const
return getLogin() + "@" + getServer() + "/" + getResource();
}
void Core::Account::sendMessage(const QMap<QString, QString>& data)
{
if (state == Shared::connected) {
client.sendMessage(data.value("to"), data.value("body"));
} else {
qDebug() << "An attempt to send message with not connected account " << name << ", skipping";
}
}

View file

@ -36,6 +36,7 @@ public:
void setResource(const QString& p_resource);
void setAvailability(Shared::Availability avail);
QString getFullJid() const;
void sendMessage(const QMap<QString, QString>& data);
signals:
void connectionStateChanged(int);

View file

@ -199,3 +199,14 @@ void Core::Squawk::onAccountMessage(const QMap<QString, QString>& data)
Account* acc = static_cast<Account*>(sender());
emit accountMessage(acc->getName(), data);
}
void Core::Squawk::sendMessage(const QString& account, const QMap<QString, QString>& data)
{
AccountsMap::const_iterator itr = amap.find(account);
if (itr == amap.end()) {
qDebug("An attempt to send a message with non existing account, skipping");
return;
}
itr->second->sendMessage(data);
}

View file

@ -44,6 +44,7 @@ public slots:
void connectAccount(const QString& account);
void disconnectAccount(const QString& account);
void changeState(int state);
void sendMessage(const QString& account, const QMap<QString, QString>& data);
private:
typedef std::deque<Account*> Accounts;