QskCheckBox improvements
This commit is contained in:
parent
752a97524b
commit
6ef1f8a45d
@ -182,20 +182,23 @@ void Editor::setupControl()
|
|||||||
|
|
||||||
void Editor::setupCheckBox()
|
void Editor::setupCheckBox()
|
||||||
{
|
{
|
||||||
|
using A = QskAspect;
|
||||||
using Q = QskCheckBox;
|
using Q = QskCheckBox;
|
||||||
|
|
||||||
const qreal radius = qskDpiScaled( 18 );
|
const qreal size = qskDpiScaled( 18 );
|
||||||
|
|
||||||
setMargin( QskCheckBox::Tick, QMarginsF( 3, 5, 3, 3 ) );
|
setStrutSize( Q::Panel, size, size );
|
||||||
setStrutSize( Q::Box, radius, radius );
|
setPadding( Q::Panel, 3 );
|
||||||
|
|
||||||
setBoxShape( Q::Box, 2 );
|
setBoxShape( Q::Panel, 2 );
|
||||||
|
|
||||||
setColor( Q::Box, m_pal.baseColor);
|
setGradient( Q::Panel, m_pal.baseColor);
|
||||||
setColor( Q::Box | Q::Checked, m_pal.accentColor );
|
setGradient( Q::Panel | Q::Checked, m_pal.accentColor );
|
||||||
setGradient( Q::Box | Q::Checked | Q::Disabled, QskRgb::Grey );
|
setGradient( Q::Panel | Q::Checked | Q::Disabled, QskRgb::Grey );
|
||||||
|
|
||||||
setColor( Q::Tick, m_pal.contrastColor );
|
setColor( Q::Indicator, m_pal.contrastColor );
|
||||||
|
|
||||||
|
setAnimation( Q::Panel | A::Color, qskDuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::setupBox()
|
void Editor::setupBox()
|
||||||
|
@ -297,19 +297,24 @@ void Editor::setupBox()
|
|||||||
|
|
||||||
void Editor::setupCheckBox()
|
void Editor::setupCheckBox()
|
||||||
{
|
{
|
||||||
|
using A = QskAspect;
|
||||||
using Q = QskCheckBox;
|
using Q = QskCheckBox;
|
||||||
|
|
||||||
const qreal size = qskDpiScaled( 26 );
|
const qreal size = qskDpiScaled( 26 );
|
||||||
|
|
||||||
setMargin( Q::Tick, QskMargins( qskDpiScaled( 5 ) ) );
|
setStrutSize( Q::Panel, size, size );
|
||||||
|
|
||||||
setStrutSize( Q::Box, QSizeF( size, size ) );
|
setPadding( Q::Panel, qskDpiScaled( 5 ) );
|
||||||
setBoxShape( Q::Box, qskDpiScaled( 3 ) );
|
setBoxShape( Q::Panel, qskDpiScaled( 3 ) );
|
||||||
setBoxBorderMetrics( Q::Box, qskDpiScaled( 1 ) );
|
setBoxBorderMetrics( Q::Panel, qskDpiScaled( 1 ) );
|
||||||
setBoxBorderColors( Q::Box, m_pal.darker125 );
|
|
||||||
setColor( Q::Box, m_pal.lighter135 );
|
setBoxBorderColors( Q::Panel, m_pal.darker125 );
|
||||||
setColor( Q::Box | Q::Checked, m_pal.highlighted );
|
setGradient( Q::Panel, m_pal.lighter135 );
|
||||||
setColor( Q::Tick, m_pal.lighter135 );
|
setGradient( Q::Panel | Q::Checked, m_pal.highlighted );
|
||||||
|
|
||||||
|
setColor( Q::Indicator, m_pal.lighter135 );
|
||||||
|
|
||||||
|
setAnimation( Q::Panel | A::Color, qskDuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::setupPopup()
|
void Editor::setupPopup()
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
#include <qset.h>
|
#include <qset.h>
|
||||||
|
|
||||||
QSK_SUBCONTROL( QskCheckBox, Box )
|
QSK_SUBCONTROL( QskCheckBox, Panel )
|
||||||
QSK_SUBCONTROL( QskCheckBox, Tick )
|
QSK_SUBCONTROL( QskCheckBox, Indicator )
|
||||||
|
|
||||||
QSK_SYSTEM_STATE( QskCheckBox, PartiallyChecked, QskAspect::LastUserState << 2 )
|
QSK_SYSTEM_STATE( QskCheckBox, PartiallyChecked, QskAspect::LastUserState << 2 )
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ class QskCheckBox::PrivateData
|
|||||||
|
|
||||||
int groupItemsChecked = 0;
|
int groupItemsChecked = 0;
|
||||||
|
|
||||||
int checkState : 2;
|
Qt::CheckState checkState : 2;
|
||||||
bool checkStateChanging : 1;
|
bool checkStateChanging : 1;
|
||||||
bool toggleChanging : 1;
|
bool toggleChanging : 1;
|
||||||
bool tristate : 1;
|
bool tristate : 1;
|
||||||
@ -57,7 +57,7 @@ bool QskCheckBox::isCheckable() const
|
|||||||
|
|
||||||
Qt::CheckState QskCheckBox::checkState() const
|
Qt::CheckState QskCheckBox::checkState() const
|
||||||
{
|
{
|
||||||
return static_cast< Qt::CheckState >( m_data->checkState );
|
return m_data->checkState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskCheckBox::setCheckStateInternal( Qt::CheckState checkState )
|
void QskCheckBox::setCheckStateInternal( Qt::CheckState checkState )
|
||||||
@ -162,8 +162,7 @@ void QskCheckBox::addToGroup( QskCheckBox* groupItem )
|
|||||||
connect( groupItem, &QskAbstractButton::toggled,
|
connect( groupItem, &QskAbstractButton::toggled,
|
||||||
this, [ this, groupItem ]( bool toggled )
|
this, [ this, groupItem ]( bool toggled )
|
||||||
{
|
{
|
||||||
auto& groupItemsChecked = m_data->groupItemsChecked;
|
m_data->groupItemsChecked += toggled ? 1 : -1;
|
||||||
groupItemsChecked += toggled ? 1 : -1;
|
|
||||||
updated();
|
updated();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class QSK_EXPORT QskCheckBox : public QskAbstractButton
|
|||||||
using Inherited = QskAbstractButton;
|
using Inherited = QskAbstractButton;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QSK_SUBCONTROLS( Box, Tick )
|
QSK_SUBCONTROLS( Panel, Indicator )
|
||||||
QSK_STATES( PartiallyChecked )
|
QSK_STATES( PartiallyChecked )
|
||||||
|
|
||||||
QskCheckBox( QQuickItem* parent = nullptr );
|
QskCheckBox( QQuickItem* parent = nullptr );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user