From 9d13cd1edf8608fea7e1b7f43e732ac1d30f7447 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 28 Nov 2024 15:47:20 +0100 Subject: [PATCH] subcontrol renamed from Knob to Handle --- examples/iotdashboard/LightDisplay.cpp | 31 +++++++------------ examples/iotdashboard/LightDisplay.h | 13 +++++--- examples/iotdashboard/LightDisplaySkinlet.cpp | 6 ++-- examples/iotdashboard/Skin.cpp | 10 +++--- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/examples/iotdashboard/LightDisplay.cpp b/examples/iotdashboard/LightDisplay.cpp index 8ef43ea3..1eb762e0 100644 --- a/examples/iotdashboard/LightDisplay.cpp +++ b/examples/iotdashboard/LightDisplay.cpp @@ -18,7 +18,7 @@ QSK_SUBCONTROL( LightDisplay, Tickmarks ) QSK_SUBCONTROL( LightDisplay, ValueText ) QSK_SUBCONTROL( LightDisplay, LeftLabel ) QSK_SUBCONTROL( LightDisplay, RightLabel ) -QSK_SUBCONTROL( LightDisplay, Knob ) +QSK_SUBCONTROL( LightDisplay, Handle ) QSK_STATE( LightDisplay, Pressed, ( QskAspect::FirstUserState << 1 ) ) @@ -53,16 +53,14 @@ bool LightDisplay::isPressed() const void LightDisplay::mousePressEvent( QMouseEvent* event ) { - QRectF handleRect = subControlRect( LightDisplay::Knob ); - + const auto handleRect = subControlRect( LightDisplay::Handle ); if ( handleRect.contains( event->pos() ) ) { setSkinStateFlag( Pressed ); + return; } - else - { - QskBoundedValueInput::mousePressEvent( event ); - } + + Inherited::mousePressEvent( event ); } void LightDisplay::mouseMoveEvent( QMouseEvent* event ) @@ -73,19 +71,17 @@ void LightDisplay::mouseMoveEvent( QMouseEvent* event ) const auto mousePos = qskMousePosition( event ); const auto rect = subControlRect( ColdAndWarmArc ); - bool arcContainsMousePos = arcContainsPoint( rect, mousePos ); - - if( !arcContainsMousePos ) + if( !arcContainsPoint( rect, mousePos ) ) { setSkinStateFlag( Pressed, false ); return; } const auto metrics = arcMetricsHint( ColdAndWarmArc ); - qreal angle = angleFromPoint( rect, mousePos ); const int tolerance = 20; + auto angle = angleFromPoint( rect, mousePos ); if( !angleInRange( metrics, angle ) ) { // we're slightly outside the range, but don't want to give up @@ -101,7 +97,7 @@ void LightDisplay::mouseMoveEvent( QMouseEvent* event ) } } - qreal ratio = ( metrics.spanAngle() - angle ) / metrics.spanAngle(); + const auto ratio = ( metrics.spanAngle() - angle ) / metrics.spanAngle(); setValueAsRatio( ratio ); } @@ -112,12 +108,11 @@ void LightDisplay::mouseReleaseEvent( QMouseEvent* /*event*/ ) qreal LightDisplay::angleFromPoint( const QRectF& rect, const QPointF& point ) const { - QPointF circlePos( point.x() - rect.center().x(), + const QPointF circlePos( point.x() - rect.center().x(), rect.center().y() - point.y() ); - const qreal atan = qAtan2( circlePos.y(), circlePos.x() ); - const qreal angle = qRadiansToDegrees( atan ); - return angle; + const qreal angle = qAtan2( circlePos.y(), circlePos.x() ); + return qRadiansToDegrees( angle ); } bool LightDisplay::arcContainsPoint( const QRectF& rect, const QPointF& point ) const @@ -148,9 +143,7 @@ bool LightDisplay::arcContainsPoint( const QRectF& rect, const QPointF& point ) const bool pointOnArc = ( polarRadius + tolerance ) > radiusMin && ( polarRadius - tolerance ) < radiusMax; - bool ret = angleWithinRange && pointOnArc; - - return ret; + return angleWithinRange && pointOnArc; } #include "moc_LightDisplay.cpp" diff --git a/examples/iotdashboard/LightDisplay.h b/examples/iotdashboard/LightDisplay.h index 8c7728a5..9b978f11 100644 --- a/examples/iotdashboard/LightDisplay.h +++ b/examples/iotdashboard/LightDisplay.h @@ -12,9 +12,12 @@ class LightDisplay : public QskBoundedValueInput { Q_OBJECT + using Inherited = QskBoundedValueInput; + public: - QSK_SUBCONTROLS( Panel, Groove, ColdAndWarmArc, Tickmarks, ValueText, - LeftLabel, RightLabel, Knob ) // ### rename knob to handle? + QSK_SUBCONTROLS( Panel, Groove, ColdAndWarmArc, Tickmarks, + ValueText, LeftLabel, RightLabel, Handle ) + QSK_STATES( Pressed ) LightDisplay( QQuickItem* parent = nullptr ); @@ -22,9 +25,9 @@ class LightDisplay : public QskBoundedValueInput bool isPressed() const; protected: - void mousePressEvent( QMouseEvent* e ) override; - void mouseMoveEvent( QMouseEvent* e ) override; - void mouseReleaseEvent( QMouseEvent* e ) override; + void mousePressEvent( QMouseEvent* ) override; + void mouseMoveEvent( QMouseEvent* ) override; + void mouseReleaseEvent( QMouseEvent* ) override; private: qreal angleFromPoint( const QRectF&, const QPointF& ) const; diff --git a/examples/iotdashboard/LightDisplaySkinlet.cpp b/examples/iotdashboard/LightDisplaySkinlet.cpp index d045d367..88d527d0 100644 --- a/examples/iotdashboard/LightDisplaySkinlet.cpp +++ b/examples/iotdashboard/LightDisplaySkinlet.cpp @@ -105,12 +105,12 @@ QRectF LightDisplaySkinlet::subControlRect( const QskSkinnable* skinnable, return rect; } - else if( subControl == LightDisplay::Knob ) + else if( subControl == LightDisplay::Handle ) { const auto arcRect = subControlRect( skinnable, contentsRect, LightDisplay::ColdAndWarmArc ); const auto arcMetrics = display->arcMetricsHint( LightDisplay::ColdAndWarmArc ); - const auto knobSize = display->strutSizeHint( LightDisplay::Knob ); + const auto knobSize = display->strutSizeHint( LightDisplay::Handle ); const qreal radius = ( arcRect.width() - arcMetrics.thickness() ) / 2; const qreal angle = display->valueAsRatio() * 180; @@ -183,7 +183,7 @@ QSGNode* LightDisplaySkinlet::updateSubNode( } case KnobRole: { - return updateBoxNode( skinnable, node, LightDisplay::Knob ); + return updateBoxNode( skinnable, node, LightDisplay::Handle ); } } diff --git a/examples/iotdashboard/Skin.cpp b/examples/iotdashboard/Skin.cpp index 09b7b3c3..52396a1e 100644 --- a/examples/iotdashboard/Skin.cpp +++ b/examples/iotdashboard/Skin.cpp @@ -241,9 +241,9 @@ void Skin::initHints() ed.setFontRole( LightDisplay::ValueText, QskFontRole::Headline ); ed.setColor( LightDisplay::ValueText, 0xff929cb2 ); - ed.setStrutSize( LightDisplay::Knob, { 20, 20 } ); - ed.setBoxBorderMetrics( LightDisplay::Knob, 1 ); - ed.setBoxShape( LightDisplay::Knob, 100, Qt::RelativeSize ); + ed.setStrutSize( LightDisplay::Handle, { 20, 20 } ); + ed.setBoxBorderMetrics( LightDisplay::Handle, 1 ); + ed.setBoxShape( LightDisplay::Handle, 100, Qt::RelativeSize ); // palette dependent skin hints: ed.setGradient( MenuBar::Panel, palette.menuBar ); @@ -265,9 +265,9 @@ void Skin::initHints() ed.setShadowColor( UsageDiagramBox::Panel, palette.shadow ); ed.setGradient( LightDisplay::Panel, palette.box ); - ed.setGradient( LightDisplay::Knob, palette.box ); + ed.setGradient( LightDisplay::Handle, palette.box ); ed.setGradient( LightDisplay::ColdAndWarmArc, palette.lightDisplayColdAndWarmArc ); - ed.setBoxBorderColors( LightDisplay::Knob, palette.lightDisplayKnobBorder ); + ed.setBoxBorderColors( LightDisplay::Handle, palette.lightDisplayKnobBorder ); ed.setShadowMetrics( LightDisplay::Groove, { 0, 20 } ); ed.setShadowColor( LightDisplay::Groove, palette.shadow ); ed.setGradient( LightDisplay::Groove, palette.box );