mouse handling completed
This commit is contained in:
parent
55d6aa6d5e
commit
a4b2bcde16
@ -60,6 +60,11 @@ class QskSpinBox::PrivateData
|
||||
{
|
||||
}
|
||||
|
||||
inline bool isActivatedByMouse() const
|
||||
{
|
||||
return this->repeatTimer.isActive() && ( this->key == Qt::Key_unknown );
|
||||
}
|
||||
|
||||
inline void setAutoRepeat( QskSpinBox* spinBox, qreal offset )
|
||||
{
|
||||
this->autoRepeatIncrement = offset;
|
||||
@ -294,6 +299,32 @@ void QskSpinBox::mousePressEvent( QMouseEvent* event )
|
||||
|
||||
void QskSpinBox::mouseReleaseEvent( QMouseEvent* )
|
||||
{
|
||||
if ( m_data->isActivatedByMouse() )
|
||||
m_data->setAutoRepeat( this, 0.0 );
|
||||
}
|
||||
|
||||
void QskSpinBox::mouseMoveEvent( QMouseEvent* event )
|
||||
{
|
||||
if ( m_data->isActivatedByMouse() )
|
||||
{
|
||||
const auto subcontrol = buttonAt( this, qskMousePosition( event ) );
|
||||
|
||||
if ( m_data->autoRepeatIncrement >= 0.0 )
|
||||
{
|
||||
if ( subcontrol != QskSpinBox::UpPanel )
|
||||
m_data->setAutoRepeat( this, 0.0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( subcontrol != QskSpinBox::DownPanel )
|
||||
m_data->setAutoRepeat( this, 0.0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QskSpinBox::mouseUngrabEvent()
|
||||
{
|
||||
if ( m_data->isActivatedByMouse() )
|
||||
m_data->setAutoRepeat( this, 0.0 );
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,9 @@ class QSK_EXPORT QskSpinBox : public QskBoundedValueInput
|
||||
void timerEvent( QTimerEvent* ) override;
|
||||
|
||||
void mouseReleaseEvent( QMouseEvent* ) override;
|
||||
void mouseMoveEvent( QMouseEvent* ) override;
|
||||
void mousePressEvent( QMouseEvent* ) override;
|
||||
void mouseUngrabEvent() override;
|
||||
|
||||
void keyPressEvent( QKeyEvent* ) override;
|
||||
void keyReleaseEvent( QKeyEvent* ) override;
|
||||
|
Loading…
x
Reference in New Issue
Block a user