forked from blue/squawk
some more with contect menu
This commit is contained in:
parent
ee59d92cdc
commit
f0f26ae1a1
@ -747,7 +747,7 @@ void Core::Account::subscribeToContact(const QString& jid, const QString& reason
|
||||
QXmppRosterManager& rm = client.rosterManager();
|
||||
rm.subscribe(jid, reason);
|
||||
} else {
|
||||
qDebug() << "An attempt to subscribe an account " << name << " to jid " << jid << " but the account is not in the connected state, skipping";
|
||||
qDebug() << "An attempt to subscribe account " << name << " to contact " << jid << " but the account is not in the connected state, skipping";
|
||||
}
|
||||
}
|
||||
|
||||
@ -757,7 +757,27 @@ void Core::Account::unsubscribeFromContact(const QString& jid, const QString& re
|
||||
QXmppRosterManager& rm = client.rosterManager();
|
||||
rm.unsubscribe(jid, reason);
|
||||
} else {
|
||||
qDebug() << "An attempt to unsubscribe an account " << name << " from jid " << jid << " but the account is not in the connected state, skipping";
|
||||
qDebug() << "An attempt to unsubscribe account " << name << " from contact " << jid << " but the account is not in the connected state, skipping";
|
||||
}
|
||||
}
|
||||
|
||||
void Core::Account::removeContactRequest(const QString& jid)
|
||||
{
|
||||
if (state == Shared::connected) {
|
||||
QXmppRosterManager& rm = client.rosterManager();
|
||||
rm.removeItem(jid);
|
||||
} else {
|
||||
qDebug() << "An attempt to remove contact " << jid << " from account " << name << " but the account is not in the connected state, skipping";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Core::Account::addContactRequest(const QString& jid, const QString& name, const QSet<QString>& groups)
|
||||
{
|
||||
if (state == Shared::connected) {
|
||||
QXmppRosterManager& rm = client.rosterManager();
|
||||
rm.addItem(jid, name, groups);
|
||||
} else {
|
||||
qDebug() << "An attempt to add contact " << jid << " to account " << name << " but the account is not in the connected state, skipping";
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +46,8 @@ public:
|
||||
void setReconnectTimes(unsigned int times);
|
||||
void subscribeToContact(const QString& jid, const QString& reason);
|
||||
void unsubscribeFromContact(const QString& jid, const QString& reason);
|
||||
void removeContactRequest(const QString& jid);
|
||||
void addContactRequest(const QString& jid, const QString& name, const QSet<QString>& groups);
|
||||
|
||||
signals:
|
||||
void connectionStateChanged(int);
|
||||
|
@ -354,3 +354,14 @@ void Core::Squawk::unsubscribeContact(const QString& account, const QString& jid
|
||||
|
||||
itr->second->unsubscribeFromContact(jid, reason);
|
||||
}
|
||||
|
||||
void Core::Squawk::removeContactRequest(const QString& account, const QString& jid)
|
||||
{
|
||||
AccountsMap::const_iterator itr = amap.find(account);
|
||||
if (itr == amap.end()) {
|
||||
qDebug("An attempt to remove contact from non existing account, skipping");
|
||||
return;
|
||||
}
|
||||
|
||||
itr->second->removeContactRequest(jid);
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ public slots:
|
||||
void requestArchive(const QString& account, const QString& jid, int count, const QString& before);
|
||||
void subscribeContact(const QString& account, const QString& jid, const QString& reason);
|
||||
void unsubscribeContact(const QString& account, const QString& jid, const QString& reason);
|
||||
void removeContactRequest(const QString& account, const QString& jid);
|
||||
|
||||
private:
|
||||
typedef std::deque<Account*> Accounts;
|
||||
|
@ -313,8 +313,8 @@ void Squawk::onRosterContextMenu(const QPoint& point)
|
||||
Models::Contact* cnt = static_cast<Models::Contact*>(item);
|
||||
hasMenu = true;
|
||||
|
||||
QAction* remove = contextMenu->addAction(QIcon::fromTheme("mail-message"), "Open dialog");
|
||||
connect(remove, &QAction::triggered, [this, index]() {
|
||||
QAction* dialog = contextMenu->addAction(QIcon::fromTheme("mail-message"), "Open dialog");
|
||||
connect(dialog, &QAction::triggered, [this, index]() {
|
||||
onRosterItemDoubleClicked(index);
|
||||
});
|
||||
|
||||
@ -322,8 +322,8 @@ void Squawk::onRosterContextMenu(const QPoint& point)
|
||||
switch (state) {
|
||||
case Shared::both:
|
||||
case Shared::to: {
|
||||
QAction* remove = contextMenu->addAction(QIcon::fromTheme("news-unsubscribe"), "Unsubscribe");
|
||||
connect(remove, &QAction::triggered, [this, cnt]() {
|
||||
QAction* unsub = contextMenu->addAction(QIcon::fromTheme("news-unsubscribe"), "Unsubscribe");
|
||||
connect(unsub, &QAction::triggered, [this, cnt]() {
|
||||
emit unsubscribeContact(cnt->getAccountName(), cnt->getJid(), "");
|
||||
});
|
||||
}
|
||||
@ -331,13 +331,18 @@ void Squawk::onRosterContextMenu(const QPoint& point)
|
||||
case Shared::from:
|
||||
case Shared::unknown:
|
||||
case Shared::none: {
|
||||
QAction* remove = contextMenu->addAction(QIcon::fromTheme("news-subscribe"), "Subscribe");
|
||||
connect(remove, &QAction::triggered, [this, cnt]() {
|
||||
QAction* sub = contextMenu->addAction(QIcon::fromTheme("news-subscribe"), "Subscribe");
|
||||
connect(sub, &QAction::triggered, [this, cnt]() {
|
||||
emit subscribeContact(cnt->getAccountName(), cnt->getJid(), "");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
QAction* remove = contextMenu->addAction(QIcon::fromTheme("edit-delete"), "Remove");
|
||||
connect(remove, &QAction::triggered, [this, cnt]() {
|
||||
emit removeContactRequest(cnt->getAccountName(), cnt->getJid());
|
||||
});
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -37,6 +37,7 @@ signals:
|
||||
void requestArchive(const QString& account, const QString& jid, int count, const QString& before);
|
||||
void subscribeContact(const QString& account, const QString& jid, const QString& reason);
|
||||
void unsubscribeContact(const QString& account, const QString& jid, const QString& reason);
|
||||
void removeContactRequest(const QString& account, const QString& jid);
|
||||
|
||||
public slots:
|
||||
void newAccount(const QMap<QString, QVariant>& account);
|
||||
|
Loading…
Reference in New Issue
Block a user