[network/ruqola] src/widgets/room: emit signal clicked
Laurent Montel <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 46d90d5b354674717aa7065668fe5ab13276aa65 by Laurent Montel.
Committed on 30/07/2026 at 11:47.
Pushed by mlaurent into branch 'master'.
emit signal clicked
M +20 -1 src/widgets/room/newmessageindicator.cpp
M +18 -1 src/widgets/room/newmessageindicator.h
https://invent.kde.org/network/ruqola/-/commit/46d90d5b354674717aa7065668fe5ab13276aa65
diff --git a/src/widgets/room/newmessageindicator.cpp b/src/widgets/room/newmessageindicator.cpp
index b0663e5cff..645b78b2da 100644
--- a/src/widgets/room/newmessageindicator.cpp
+++ b/src/widgets/room/newmessageindicator.cpp
@@ -6,11 +6,13 @@
#include "newmessageindicator.h"
#include "ruqola_newmessageindicator_debug.h"
#include <KLocalizedString>
+#include <QMouseEvent>
#include <QVBoxLayout>
+
using namespace Qt::Literals::StringLiterals;
NewMessageIndicator::NewMessageIndicator(QWidget *parent)
: QWidget{parent}
- , mMessageWidget(new KMessageWidget(this))
+ , mMessageWidget(new NewMessageIndicatorWidget(this))
{
setObjectName(u"NewMessageIndicator"_s);
setFocusPolicy(Qt::NoFocus);
@@ -30,6 +32,7 @@ NewMessageIndicator::NewMessageIndicator(QWidget *parent)
mMessageWidget->setWordWrap(false);
mMessageWidget->setMessageType(KMessageWidget::Information);
+ connect(mMessageWidget, &NewMessageIndicatorWidget::clicked, this, &NewMessageIndicator::moveToBottom);
}
NewMessageIndicator::~NewMessageIndicator() = default;
@@ -40,4 +43,20 @@ void NewMessageIndicator::showNewMessageIndicator(bool visible)
setVisible(visible);
}
+NewMessageIndicatorWidget::NewMessageIndicatorWidget(QWidget *parent)
+ : KMessageWidget(parent)
+{
+ setMouseTracking(true);
+}
+
+NewMessageIndicatorWidget::~NewMessageIndicatorWidget() = default;
+
+void NewMessageIndicatorWidget::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton) {
+ Q_EMIT clicked();
+ }
+ QFrame::mousePressEvent(event);
+}
+
#include "moc_newmessageindicator.cpp"
diff --git a/src/widgets/room/newmessageindicator.h b/src/widgets/room/newmessageindicator.h
index 5b3868630e..af1cdb3470 100644
--- a/src/widgets/room/newmessageindicator.h
+++ b/src/widgets/room/newmessageindicator.h
@@ -9,6 +9,20 @@
#include <KMessageWidget>
#include <QWidget>
+class LIBRUQOLAWIDGETS_TESTS_EXPORT NewMessageIndicatorWidget : public KMessageWidget
+{
+ Q_OBJECT
+public:
+ explicit NewMessageIndicatorWidget(QWidget *parent = nullptr);
+ ~NewMessageIndicatorWidget() override;
+
+protected:
+ void mousePressEvent(QMouseEvent *event) override;
+
+Q_SIGNALS:
+ void clicked();
+};
+
class LIBRUQOLAWIDGETS_TESTS_EXPORT NewMessageIndicator : public QWidget
{
Q_OBJECT
@@ -18,6 +32,9 @@ public:
void showNewMessageIndicator(bool visible);
+Q_SIGNALS:
+ void moveToBottom();
+
private:
- KMessageWidget *const mMessageWidget;
+ NewMessageIndicatorWidget *const mMessageWidget;
};