QskSkin::skinlet using the metaObject

This commit is contained in:
Uwe Rathmann 2020-12-23 09:41:29 +01:00
parent 73b5934839
commit e176f474a8
3 changed files with 6 additions and 6 deletions

View File

@ -525,10 +525,9 @@ QskAspect::State QskSkin::stateMask() const
return m_data->stateMask; return m_data->stateMask;
} }
QskSkinlet* QskSkin::skinlet( const QskSkinnable* skinnable ) QskSkinlet* QskSkin::skinlet( const QMetaObject* metaObject )
{ {
for ( auto metaObject = skinnable->metaObject(); while ( metaObject )
metaObject != nullptr; metaObject = metaObject->superClass() )
{ {
auto it = m_data->skinletMap.find( metaObject ); auto it = m_data->skinletMap.find( metaObject );
if ( it != m_data->skinletMap.cend() ) if ( it != m_data->skinletMap.cend() )
@ -540,6 +539,8 @@ QskSkinlet* QskSkin::skinlet( const QskSkinnable* skinnable )
return entry.skinlet; return entry.skinlet;
} }
metaObject = metaObject->superClass();
} }
static QskSkinlet defaultSkinlet; static QskSkinlet defaultSkinlet;

View File

@ -16,7 +16,6 @@
#include <unordered_map> #include <unordered_map>
class QskControl; class QskControl;
class QskSkinnable;
class QskSkinlet; class QskSkinlet;
class QskColorFilter; class QskColorFilter;
@ -143,7 +142,7 @@ class QSK_EXPORT QskSkin : public QObject
void setStateMask( QskAspect::State ); void setStateMask( QskAspect::State );
QskAspect::State stateMask() const; QskAspect::State stateMask() const;
QskSkinlet* skinlet( const QskSkinnable* ); QskSkinlet* skinlet( const QMetaObject* );
const QskSkinHintTable& hintTable() const; const QskSkinHintTable& hintTable() const;

View File

@ -231,7 +231,7 @@ const QskSkinlet* QskSkinnable::effectiveSkinlet() const
{ {
if ( m_data->skinlet == nullptr ) if ( m_data->skinlet == nullptr )
{ {
m_data->skinlet = qskSetup->skin()->skinlet( this ); m_data->skinlet = qskSetup->skin()->skinlet( metaObject() );
m_data->hasLocalSkinlet = false; m_data->hasLocalSkinlet = false;
} }