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;
}
QskSkinlet* QskSkin::skinlet( const QskSkinnable* skinnable )
QskSkinlet* QskSkin::skinlet( const QMetaObject* metaObject )
{
for ( auto metaObject = skinnable->metaObject();
metaObject != nullptr; metaObject = metaObject->superClass() )
while ( metaObject )
{
auto it = m_data->skinletMap.find( metaObject );
if ( it != m_data->skinletMap.cend() )
@ -540,6 +539,8 @@ QskSkinlet* QskSkin::skinlet( const QskSkinnable* skinnable )
return entry.skinlet;
}
metaObject = metaObject->superClass();
}
static QskSkinlet defaultSkinlet;

View File

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

View File

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