overlapping states fixed ( where possible )

This commit is contained in:
Uwe Rathmann 2020-12-26 14:34:26 +01:00
parent 1a3058fad8
commit f3dd88c11c
3 changed files with 12 additions and 6 deletions

View File

@ -588,6 +588,11 @@ QSK_EXPORT void qskDebugAspect( QDebug, const QMetaObject*, QskAspect );
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
#define QSK_SYSTEM_STATE( type, name, value ) \
static_assert( \
( value >= QskAspect::FirstSystemState && value < QskAspect::FirstUserState ) || \
( value > QskAspect::LastUserState && value <= QskAspect::LastSystemState ), \
"Invalid system state" \
); \
const QskAspect::State type::name = \
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );

View File

@ -10,24 +10,25 @@
#include <qbasictimer.h>
// Flat/Checkable are no states - we need to get rid of them. TODO ...
QSK_SYSTEM_STATE( QskAbstractButton, Flat, QskAspect::FirstSystemState << 1 )
#if 1
// Wrong: we are overlapping with the user states, TODO ...
QSK_SYSTEM_STATE( QskAbstractButton, Checked, QskAspect::LastSystemState >> 4 )
QSK_STATE( QskAbstractButton, Checked, QskAspect::LastUserState )
#endif
QSK_SYSTEM_STATE( QskAbstractButton, Pressed, QskAspect::LastSystemState >> 3 )
QSK_SYSTEM_STATE( QskAbstractButton, Checkable, QskAspect::LastSystemState >> 2 )
static QskAbstractButton* qskCheckedSibling( const QskAbstractButton* button )
{
QQuickItem* parentItem = button->parentItem();
const auto parentItem = button->parentItem();
if ( parentItem == nullptr )
return nullptr;
const auto siblings = parentItem->childItems();
for ( QQuickItem* sibling : siblings )
for ( auto sibling : siblings )
{
if ( QskAbstractButton* btn = qobject_cast< QskAbstractButton* >( sibling ) )
if ( auto btn = qobject_cast< QskAbstractButton* >( sibling ) )
{
if ( btn != button && btn->exclusive() && btn->isChecked() )
return btn;

View File

@ -16,8 +16,8 @@ QSK_SUBCONTROL( QskSlider, Scale )
QSK_SUBCONTROL( QskSlider, Handle )
QSK_SYSTEM_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 2 )
QSK_SYSTEM_STATE( QskSlider, Minimum, QskAspect::FirstSystemState << 3 )
QSK_SYSTEM_STATE( QskSlider, Maximum, QskAspect::FirstSystemState << 4 )
QSK_SYSTEM_STATE( QskSlider, Minimum, QskAspect::LastUserState << 1 )
QSK_SYSTEM_STATE( QskSlider, Maximum, QskAspect::LastUserState << 2 )
class QskSlider::PrivateData
{