creating of default skins by accident fixed ( needs only to be done, when
the application has no other skins already defined )
This commit is contained in:
parent
2b0a39494f
commit
e5a0571cb0
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
|
#include <QGlobalStatic>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
@ -41,18 +42,21 @@ namespace
|
|||||||
return skin;
|
return skin;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef QHash< QString, QPointer< QskSkinFactory > > FactoryTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QHash< QString, QPointer< QskSkinFactory > >& qskFactoryTable()
|
Q_GLOBAL_STATIC( FactoryTable, qskFactoryTable )
|
||||||
|
|
||||||
|
static FactoryTable& qskGetFactoryTable()
|
||||||
{
|
{
|
||||||
static QHash< QString, QPointer< QskSkinFactory > > table;
|
if ( qskFactoryTable->isEmpty() )
|
||||||
if ( table.isEmpty() )
|
|
||||||
{
|
{
|
||||||
static SkinFactory dummySkinFactory ( nullptr );
|
static SkinFactory dummySkinFactory ( nullptr );
|
||||||
table.insert( factoryId.toLower(), &dummySkinFactory );
|
qskFactoryTable->insert( factoryId.toLower(), &dummySkinFactory );
|
||||||
}
|
}
|
||||||
|
|
||||||
return table;
|
return *qskFactoryTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
QskSkinFactory::QskSkinFactory( QObject* parent ):
|
QskSkinFactory::QskSkinFactory( QObject* parent ):
|
||||||
@ -65,19 +69,19 @@ QskSkinFactory::~QskSkinFactory() = default;
|
|||||||
|
|
||||||
void Qsk::registerSkinFactory( const QString& id, QskSkinFactory* factory )
|
void Qsk::registerSkinFactory( const QString& id, QskSkinFactory* factory )
|
||||||
{
|
{
|
||||||
qskFactoryTable().insert( id.toLower(), factory );
|
qskFactoryTable->insert( id.toLower(), factory );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskSkinFactory* Qsk::skinFactory( const QString& id )
|
QskSkinFactory* Qsk::skinFactory( const QString& id )
|
||||||
{
|
{
|
||||||
return qskFactoryTable().value( id.toLower() ).data();
|
return qskGetFactoryTable().value( id.toLower() ).data();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList Qsk::skinNames()
|
QStringList Qsk::skinNames()
|
||||||
{
|
{
|
||||||
QStringList names;
|
QStringList names;
|
||||||
|
|
||||||
for ( auto factory : qskFactoryTable() )
|
for ( auto factory : qskGetFactoryTable() )
|
||||||
{
|
{
|
||||||
if ( factory )
|
if ( factory )
|
||||||
names += factory->skinNames();
|
names += factory->skinNames();
|
||||||
@ -90,7 +94,7 @@ QskSkin* Qsk::createSkin( const QString& skinName )
|
|||||||
{
|
{
|
||||||
if ( !skinName.isEmpty() )
|
if ( !skinName.isEmpty() )
|
||||||
{
|
{
|
||||||
for ( auto factory : qskFactoryTable() )
|
for ( auto factory : qskGetFactoryTable() )
|
||||||
{
|
{
|
||||||
QskSkin* skin = factory->createSkin( skinName );
|
QskSkin* skin = factory->createSkin( skinName );
|
||||||
if ( skin )
|
if ( skin )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user