overlapping states fixed ( where possible )
This commit is contained in:
parent
1a3058fad8
commit
f3dd88c11c
@ -588,6 +588,11 @@ QSK_EXPORT void qskDebugAspect( QDebug, const QMetaObject*, QskAspect );
|
|||||||
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
|
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
|
||||||
|
|
||||||
#define QSK_SYSTEM_STATE( type, name, value ) \
|
#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 = \
|
const QskAspect::State type::name = \
|
||||||
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
|
QskAspect::registerState( &type::staticMetaObject, value, #type "::" #name );
|
||||||
|
|
||||||
|
@ -10,24 +10,25 @@
|
|||||||
|
|
||||||
#include <qbasictimer.h>
|
#include <qbasictimer.h>
|
||||||
|
|
||||||
|
// Flat/Checkable are no states - we need to get rid of them. TODO ...
|
||||||
QSK_SYSTEM_STATE( QskAbstractButton, Flat, QskAspect::FirstSystemState << 1 )
|
QSK_SYSTEM_STATE( QskAbstractButton, Flat, QskAspect::FirstSystemState << 1 )
|
||||||
#if 1
|
#if 1
|
||||||
// Wrong: we are overlapping with the user states, TODO ...
|
// Wrong: we are overlapping with the user states, TODO ...
|
||||||
QSK_SYSTEM_STATE( QskAbstractButton, Checked, QskAspect::LastSystemState >> 4 )
|
QSK_STATE( QskAbstractButton, Checked, QskAspect::LastUserState )
|
||||||
#endif
|
#endif
|
||||||
QSK_SYSTEM_STATE( QskAbstractButton, Pressed, QskAspect::LastSystemState >> 3 )
|
QSK_SYSTEM_STATE( QskAbstractButton, Pressed, QskAspect::LastSystemState >> 3 )
|
||||||
QSK_SYSTEM_STATE( QskAbstractButton, Checkable, QskAspect::LastSystemState >> 2 )
|
QSK_SYSTEM_STATE( QskAbstractButton, Checkable, QskAspect::LastSystemState >> 2 )
|
||||||
|
|
||||||
static QskAbstractButton* qskCheckedSibling( const QskAbstractButton* button )
|
static QskAbstractButton* qskCheckedSibling( const QskAbstractButton* button )
|
||||||
{
|
{
|
||||||
QQuickItem* parentItem = button->parentItem();
|
const auto parentItem = button->parentItem();
|
||||||
if ( parentItem == nullptr )
|
if ( parentItem == nullptr )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
const auto siblings = parentItem->childItems();
|
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() )
|
if ( btn != button && btn->exclusive() && btn->isChecked() )
|
||||||
return btn;
|
return btn;
|
||||||
|
@ -16,8 +16,8 @@ QSK_SUBCONTROL( QskSlider, Scale )
|
|||||||
QSK_SUBCONTROL( QskSlider, Handle )
|
QSK_SUBCONTROL( QskSlider, Handle )
|
||||||
|
|
||||||
QSK_SYSTEM_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 2 )
|
QSK_SYSTEM_STATE( QskSlider, Pressed, QskAspect::FirstSystemState << 2 )
|
||||||
QSK_SYSTEM_STATE( QskSlider, Minimum, QskAspect::FirstSystemState << 3 )
|
QSK_SYSTEM_STATE( QskSlider, Minimum, QskAspect::LastUserState << 1 )
|
||||||
QSK_SYSTEM_STATE( QskSlider, Maximum, QskAspect::FirstSystemState << 4 )
|
QSK_SYSTEM_STATE( QskSlider, Maximum, QskAspect::LastUserState << 2 )
|
||||||
|
|
||||||
class QskSlider::PrivateData
|
class QskSlider::PrivateData
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user