summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2020-07-16 20:19:28 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2020-07-16 20:19:28 +0200
commitaa34576dfd5781ddd9a97522ca15084f8195045f (patch)
tree84d877719b9d855efdb2fced271c49c8b97dbd3a /src
parentFix autolinking breaking on single quotes in href attribute (diff)
downloadnheko-aa34576dfd5781ddd9a97522ca15084f8195045f.tar.xz
Warn before kicking,banning,inviting,etc
Diffstat (limited to 'src')
-rw-r--r--src/ChatPage.cpp56
-rw-r--r--src/dialogs/UserProfile.cpp11
-rw-r--r--src/dialogs/UserProfile.h1
3 files changed, 56 insertions, 12 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp

index 0b290927..36d1fc92 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp
@@ -1152,11 +1152,19 @@ ChatPage::leaveRoom(const QString &room_id) void ChatPage::inviteUser(QString userid, QString reason) { + auto room = current_room_; + + if (QMessageBox::question(this, + tr("Confirm invite"), + tr("Do you really want to invite %1 (%2)?") + .arg(cache::displayName(current_room_, userid)) + .arg(userid)) != QMessageBox::Yes) + return; + http::client()->invite_user( - current_room_.toStdString(), + room.toStdString(), userid.toStdString(), - [this, userid, room = current_room_](const mtx::responses::Empty &, - mtx::http::RequestErr err) { + [this, userid, room](const mtx::responses::Empty &, mtx::http::RequestErr err) { if (err) { emit showNotification( tr("Failed to invite %1 to %2: %3") @@ -1171,11 +1179,19 @@ ChatPage::inviteUser(QString userid, QString reason) void ChatPage::kickUser(QString userid, QString reason) { + auto room = current_room_; + + if (QMessageBox::question(this, + tr("Confirm kick"), + tr("Do you really want to kick %1 (%2)?") + .arg(cache::displayName(current_room_, userid)) + .arg(userid)) != QMessageBox::Yes) + return; + http::client()->kick_user( - current_room_.toStdString(), + room.toStdString(), userid.toStdString(), - [this, userid, room = current_room_](const mtx::responses::Empty &, - mtx::http::RequestErr err) { + [this, userid, room](const mtx::responses::Empty &, mtx::http::RequestErr err) { if (err) { emit showNotification( tr("Failed to kick %1 to %2: %3") @@ -1190,11 +1206,19 @@ ChatPage::kickUser(QString userid, QString reason) void ChatPage::banUser(QString userid, QString reason) { + auto room = current_room_; + + if (QMessageBox::question(this, + tr("Confirm ban"), + tr("Do you really want to ban %1 (%2)?") + .arg(cache::displayName(current_room_, userid)) + .arg(userid)) != QMessageBox::Yes) + return; + http::client()->ban_user( - current_room_.toStdString(), + room.toStdString(), userid.toStdString(), - [this, userid, room = current_room_](const mtx::responses::Empty &, - mtx::http::RequestErr err) { + [this, userid, room](const mtx::responses::Empty &, mtx::http::RequestErr err) { if (err) { emit showNotification( tr("Failed to ban %1 in %2: %3") @@ -1209,11 +1233,19 @@ ChatPage::banUser(QString userid, QString reason) void ChatPage::unbanUser(QString userid, QString reason) { + auto room = current_room_; + + if (QMessageBox::question(this, + tr("Confirm unban"), + tr("Do you really want to unban %1 (%2)?") + .arg(cache::displayName(current_room_, userid)) + .arg(userid)) != QMessageBox::Yes) + return; + http::client()->unban_user( - current_room_.toStdString(), + room.toStdString(), userid.toStdString(), - [this, userid, room = current_room_](const mtx::responses::Empty &, - mtx::http::RequestErr err) { + [this, userid, room](const mtx::responses::Empty &, mtx::http::RequestErr err) { if (err) { emit showNotification( tr("Failed to unban %1 in %2: %3") diff --git a/src/dialogs/UserProfile.cpp b/src/dialogs/UserProfile.cpp
index 3415b127..086dbb40 100644 --- a/src/dialogs/UserProfile.cpp +++ b/src/dialogs/UserProfile.cpp
@@ -1,6 +1,7 @@ #include <QHBoxLayout> #include <QLabel> #include <QListWidget> +#include <QMessageBox> #include <QShortcut> #include <QVBoxLayout> @@ -97,6 +98,14 @@ UserProfile::UserProfile(QWidget *parent) if (utils::localUser() != user_id) req.invite = {user_id.toStdString()}; + if (QMessageBox::question( + this, + tr("Confirm DM"), + tr("Do you really want to invite %1 (%2) to a direct chat?") + .arg(cache::displayName(roomId_, user_id)) + .arg(user_id)) != QMessageBox::Yes) + return; + emit ChatPage::instance()->createRoom(req); }); @@ -199,6 +208,8 @@ UserProfile::init(const QString &userId, const QString &roomId) { resetToDefaults(); + this->roomId_ = roomId; + auto displayName = cache::displayName(roomId, userId); userIdLabel_->setText(userId); diff --git a/src/dialogs/UserProfile.h b/src/dialogs/UserProfile.h
index 81276d2a..8129fdcf 100644 --- a/src/dialogs/UserProfile.h +++ b/src/dialogs/UserProfile.h
@@ -53,6 +53,7 @@ private: void resetToDefaults(); Avatar *avatar_; + QString roomId_; QLabel *userIdLabel_; QLabel *displayNameLabel_;