From 6ef1f8a45d0bbe99fd914ad00b1d8b4d3cf3e2bc Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 5 Apr 2022 08:48:16 +0200 Subject: [PATCH] QskCheckBox improvements --- skins/material/QskMaterialSkin.cpp | 19 +++++++++++-------- skins/squiek/QskSquiekSkin.cpp | 21 +++++++++++++-------- src/controls/QskCheckBox.cpp | 11 +++++------ src/controls/QskCheckBox.h | 2 +- 4 files changed, 30 insertions(+), 23 deletions(-) diff --git a/skins/material/QskMaterialSkin.cpp b/skins/material/QskMaterialSkin.cpp index a89cbeec..979dee8f 100644 --- a/skins/material/QskMaterialSkin.cpp +++ b/skins/material/QskMaterialSkin.cpp @@ -182,20 +182,23 @@ void Editor::setupControl() void Editor::setupCheckBox() { + using A = QskAspect; using Q = QskCheckBox; - const qreal radius = qskDpiScaled( 18 ); + const qreal size = qskDpiScaled( 18 ); - setMargin( QskCheckBox::Tick, QMarginsF( 3, 5, 3, 3 ) ); - setStrutSize( Q::Box, radius, radius ); + setStrutSize( Q::Panel, size, size ); + setPadding( Q::Panel, 3 ); - setBoxShape( Q::Box, 2 ); + setBoxShape( Q::Panel, 2 ); - setColor( Q::Box, m_pal.baseColor); - setColor( Q::Box | Q::Checked, m_pal.accentColor ); - setGradient( Q::Box | Q::Checked | Q::Disabled, QskRgb::Grey ); + setGradient( Q::Panel, m_pal.baseColor); + setGradient( Q::Panel | Q::Checked, m_pal.accentColor ); + 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() diff --git a/skins/squiek/QskSquiekSkin.cpp b/skins/squiek/QskSquiekSkin.cpp index a79fc20c..3d250d91 100644 --- a/skins/squiek/QskSquiekSkin.cpp +++ b/skins/squiek/QskSquiekSkin.cpp @@ -297,19 +297,24 @@ void Editor::setupBox() void Editor::setupCheckBox() { + using A = QskAspect; using Q = QskCheckBox; const qreal size = qskDpiScaled( 26 ); - setMargin( Q::Tick, QskMargins( qskDpiScaled( 5 ) ) ); + setStrutSize( Q::Panel, size, size ); - setStrutSize( Q::Box, QSizeF( size, size ) ); - setBoxShape( Q::Box, qskDpiScaled( 3 ) ); - setBoxBorderMetrics( Q::Box, qskDpiScaled( 1 ) ); - setBoxBorderColors( Q::Box, m_pal.darker125 ); - setColor( Q::Box, m_pal.lighter135 ); - setColor( Q::Box | Q::Checked, m_pal.highlighted ); - setColor( Q::Tick, m_pal.lighter135 ); + setPadding( Q::Panel, qskDpiScaled( 5 ) ); + setBoxShape( Q::Panel, qskDpiScaled( 3 ) ); + setBoxBorderMetrics( Q::Panel, qskDpiScaled( 1 ) ); + + setBoxBorderColors( Q::Panel, m_pal.darker125 ); + setGradient( Q::Panel, 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() diff --git a/src/controls/QskCheckBox.cpp b/src/controls/QskCheckBox.cpp index 5a5cdbee..69cdb7bd 100644 --- a/src/controls/QskCheckBox.cpp +++ b/src/controls/QskCheckBox.cpp @@ -8,8 +8,8 @@ #include -QSK_SUBCONTROL( QskCheckBox, Box ) -QSK_SUBCONTROL( QskCheckBox, Tick ) +QSK_SUBCONTROL( QskCheckBox, Panel ) +QSK_SUBCONTROL( QskCheckBox, Indicator ) QSK_SYSTEM_STATE( QskCheckBox, PartiallyChecked, QskAspect::LastUserState << 2 ) @@ -28,7 +28,7 @@ class QskCheckBox::PrivateData int groupItemsChecked = 0; - int checkState : 2; + Qt::CheckState checkState : 2; bool checkStateChanging : 1; bool toggleChanging : 1; bool tristate : 1; @@ -57,7 +57,7 @@ bool QskCheckBox::isCheckable() const Qt::CheckState QskCheckBox::checkState() const { - return static_cast< Qt::CheckState >( m_data->checkState ); + return m_data->checkState; } void QskCheckBox::setCheckStateInternal( Qt::CheckState checkState ) @@ -162,8 +162,7 @@ void QskCheckBox::addToGroup( QskCheckBox* groupItem ) connect( groupItem, &QskAbstractButton::toggled, this, [ this, groupItem ]( bool toggled ) { - auto& groupItemsChecked = m_data->groupItemsChecked; - groupItemsChecked += toggled ? 1 : -1; + m_data->groupItemsChecked += toggled ? 1 : -1; updated(); } ); diff --git a/src/controls/QskCheckBox.h b/src/controls/QskCheckBox.h index b1443c1d..9a2fb36e 100644 --- a/src/controls/QskCheckBox.h +++ b/src/controls/QskCheckBox.h @@ -21,7 +21,7 @@ class QSK_EXPORT QskCheckBox : public QskAbstractButton using Inherited = QskAbstractButton; public: - QSK_SUBCONTROLS( Box, Tick ) + QSK_SUBCONTROLS( Panel, Indicator ) QSK_STATES( PartiallyChecked ) QskCheckBox( QQuickItem* parent = nullptr );