subcontrol renamed from Knob to Handle
This commit is contained in:
parent
7a180cfe5e
commit
9d13cd1edf
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 );
|
||||
|
Loading…
x
Reference in New Issue
Block a user