From 03901667838207dccede34cea863f7db7632418c Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 17 Jul 2022 16:01:46 +0200 Subject: [PATCH] using built in QskHintAnimators --- src/controls/QskPushButton.cpp | 47 +++------------------------------- 1 file changed, 4 insertions(+), 43 deletions(-) diff --git a/src/controls/QskPushButton.cpp b/src/controls/QskPushButton.cpp index f336364e..25faf320 100644 --- a/src/controls/QskPushButton.cpp +++ b/src/controls/QskPushButton.cpp @@ -5,7 +5,6 @@ #include "QskPushButton.h" #include "QskAnimationHint.h" -#include "QskAnimator.h" #include "QskAspect.h" #include "QskBoxShapeMetrics.h" #include "QskGraphic.h" @@ -22,37 +21,6 @@ QSK_SUBCONTROL( QskPushButton, Ripple ) QSK_SUBCONTROL( QskPushButton, Text ) QSK_SUBCONTROL( QskPushButton, Graphic ) -namespace -{ - class ClickAnimator : public QskAnimator - { - public: - ClickAnimator() - : QskAnimator() - { - } - - void setButton( QskPushButton* button ) - { - m_button = button; - } - - protected: - void advance( qreal value ) override - { - m_button->setMetric( QskPushButton::Ripple | QskAspect::Size, value ); - } - - void done() override - { - m_button->setMetric( QskPushButton::Ripple | QskAspect::Size, 0.0 ); - } - - private: - QskPushButton* m_button; - }; -} - class QskPushButton::PrivateData { public: @@ -83,9 +51,6 @@ class QskPushButton::PrivateData QSizeF graphicSourceSize; - ClickAnimator clickAnimator; - qreal rippleSize = 0.0; - bool isCheckable : 1; bool isGraphicSourceDirty : 1; }; @@ -314,17 +279,13 @@ void QskPushButton::mousePressEvent( QMouseEvent* event ) { Inherited::mousePressEvent( event ); - const auto hint = animationHint( Ripple | QskAspect::Color ); + using A = QskAspect; + const auto hint = animationHint( Ripple | A::Color ); if( hint.isValid() ) { - setSkinHint( Ripple | QskAspect::Metric | QskAspect::Position, event->pos() ); - - m_data->clickAnimator.setWindow( window() ); - m_data->clickAnimator.setButton( this ); - m_data->clickAnimator.setDuration( hint.duration ); - m_data->clickAnimator.setEasingCurve( hint.type ); - m_data->clickAnimator.start(); + setSkinHint( Ripple | A::Metric | A::Position, event->pos() ); + startTransition( Ripple | A::Metric | A::Size, hint, 0.0, 1.0 ); } }