From 8593f78a2c33238d6b0afb55dc96cf2c94e31df8 Mon Sep 17 00:00:00 2001 From: Michael Gregorius Date: Sat, 23 Sep 2023 10:48:08 +0200 Subject: [PATCH] Show current value on mouse over Integrate the changes of commit fcdf4c05684 into `FloatModelEditorBase`. This commit lets users show the current value of a float model when the mouse is moved over the control. --- include/FloatModelEditorBase.h | 4 ++++ src/gui/widgets/FloatModelEditorBase.cpp | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/FloatModelEditorBase.h b/include/FloatModelEditorBase.h index 840179b3d..99078bbcc 100644 --- a/include/FloatModelEditorBase.h +++ b/include/FloatModelEditorBase.h @@ -87,6 +87,9 @@ protected: void paintEvent( QPaintEvent * _me ) override; void wheelEvent( QWheelEvent * _me ) override; + void enterEvent(QEvent *event) override; + void leaveEvent(QEvent *event) override; + virtual float getValue( const QPoint & _p ); private slots: @@ -99,6 +102,7 @@ private: void doConnections() override; + void showTextFloat(int msecBeforeDisplay, int msecDisplayTime); void setPosition( const QPoint & _p ); inline float pageSize() const diff --git a/src/gui/widgets/FloatModelEditorBase.cpp b/src/gui/widgets/FloatModelEditorBase.cpp index 34b972903..5b58d2b9b 100644 --- a/src/gui/widgets/FloatModelEditorBase.cpp +++ b/src/gui/widgets/FloatModelEditorBase.cpp @@ -77,6 +77,12 @@ void FloatModelEditorBase::initUi( const QString & _name ) } +void FloatModelEditorBase::showTextFloat(int msecBeforeDisplay, int msecDisplayTime) +{ + s_textFloat->setText(displayValue()); + s_textFloat->moveGlobal(this, QPoint(width() + 2, 0)); + s_textFloat->showWithDelay(msecBeforeDisplay, msecDisplayTime); +} float FloatModelEditorBase::getValue( const QPoint & _p ) @@ -176,6 +182,8 @@ void FloatModelEditorBase::mousePressEvent( QMouseEvent * _me ) emit sliderPressed(); + showTextFloat(0, 0); + s_textFloat->setText( displayValue() ); s_textFloat->moveGlobal( this, QPoint( width() + 2, 0 ) ); @@ -209,6 +217,7 @@ void FloatModelEditorBase::mouseMoveEvent( QMouseEvent * _me ) m_lastMousePos = _me->pos(); } s_textFloat->setText( displayValue() ); + s_textFloat->show(); } @@ -235,6 +244,16 @@ void FloatModelEditorBase::mouseReleaseEvent( QMouseEvent* event ) } +void FloatModelEditorBase::enterEvent(QEvent *event) +{ + showTextFloat(700, 2000); +} + +void FloatModelEditorBase::leaveEvent(QEvent *event) +{ + s_textFloat->hide(); +} + void FloatModelEditorBase::focusOutEvent( QFocusEvent * _fe )