summary refs log tree commit diff
path: root/src/UserInfoWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/UserInfoWidget.cpp')
-rw-r--r--src/UserInfoWidget.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/UserInfoWidget.cpp b/src/UserInfoWidget.cpp

index e11aa6aa..38677f25 100644 --- a/src/UserInfoWidget.cpp +++ b/src/UserInfoWidget.cpp
@@ -16,7 +16,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <QInputDialog> #include <QLabel> +#include <QMenu> #include <QPainter> #include <QStyle> #include <QStyleOption> @@ -24,6 +26,7 @@ #include <iostream> +#include "ChatPage.h" #include "Config.h" #include "MainWindow.h" #include "Splitter.h" @@ -105,6 +108,27 @@ UserInfoWidget::UserInfoWidget(QWidget *parent) connect(logoutButton_, &QPushButton::clicked, this, []() { MainWindow::instance()->openLogoutDialog(); }); + + menu = new QMenu(this); + + auto setStatusAction = menu->addAction(tr("Set custom status message")); + connect(setStatusAction, &QAction::triggered, this, [this]() { + bool ok = false; + QString text = QInputDialog::getText(this, + tr("Custom status message"), + tr("Status:"), + QLineEdit::Normal, + ChatPage::instance()->status(), + &ok); + if (ok && !text.isEmpty()) + ChatPage::instance()->setStatus(text); + }); +} + +void +UserInfoWidget::contextMenuEvent(QContextMenuEvent *event) +{ + menu->popup(event->globalPos()); } void