[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;
 };
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.