global graphic provider map moved from QskSetup.cpp to QskGraphicProvider.cpp

This commit is contained in:
Uwe Rathmann 2024-02-02 14:55:41 +01:00
parent 4862b2b467
commit 995736ef83
3 changed files with 14 additions and 28 deletions

View File

@ -4,9 +4,6 @@
*****************************************************************************/
#include "QskSetup.h"
#include "QskGraphicProviderMap.h"
#include "QskSkinManager.h"
#include "QskSkin.h"
QskSetup* QskSetup::s_instance = nullptr;
@ -68,7 +65,6 @@ class QskSetup::PrivateData
{
}
QskGraphicProviderMap graphicProviders;
QskItem::UpdateFlags itemUpdateFlags;
};
@ -136,20 +132,4 @@ bool QskSetup::testItemUpdateFlag( QskItem::UpdateFlag flag )
return m_data->itemUpdateFlags.testFlag( flag );
}
void QskSetup::addGraphicProvider( const QString& providerId, QskGraphicProvider* provider )
{
m_data->graphicProviders.insert( providerId, provider );
}
QskGraphicProvider* QskSetup::graphicProvider( const QString& providerId ) const
{
if ( auto skin = qskSkinManager->skin() )
{
if ( auto provider = skin->graphicProvider( providerId ) )
return provider;
}
return m_data->graphicProviders.provider( providerId );
}
#include "moc_QskSetup.cpp"

View File

@ -13,7 +13,6 @@
#include <memory>
class QQuickItem;
class QskGraphicProvider;
#if defined( qskSetup )
#undef qskSetup
@ -37,9 +36,6 @@ class QSK_EXPORT QskSetup : public QObject
void resetItemUpdateFlag( QskItem::UpdateFlag );
bool testItemUpdateFlag( QskItem::UpdateFlag );
void addGraphicProvider( const QString& providerId, QskGraphicProvider* );
QskGraphicProvider* graphicProvider( const QString& providerId ) const;
static void setup();
static void cleanup();

View File

@ -4,14 +4,18 @@
*****************************************************************************/
#include "QskGraphicProvider.h"
#include "QskGraphicProviderMap.h"
#include "QskGraphic.h"
#include "QskSetup.h"
#include "QskSkinManager.h"
#include "QskSkin.h"
#include <qmutex.h>
#include <qcache.h>
#include <qdebug.h>
#include <qurl.h>
static QskGraphicProviderMap qskGraphicProviders;
class QskGraphicProvider::PrivateData
{
public:
@ -92,12 +96,18 @@ const QskGraphic* QskGraphicProvider::requestGraphic( const QString& id ) const
void Qsk::addGraphicProvider(
const QString& providerId, QskGraphicProvider* provider )
{
qskSetup->addGraphicProvider( providerId, provider );
qskGraphicProviders.insert( providerId, provider );
}
QskGraphicProvider* Qsk::graphicProvider( const QString& providerId )
{
return qskSetup->graphicProvider( providerId );
if ( auto skin = qskSkinManager->skin() )
{
if ( auto provider = skin->graphicProvider( providerId ) )
return provider;
}
return qskGraphicProviders.provider( providerId );
}
QskGraphic Qsk::loadGraphic( const char* source )
@ -122,7 +132,7 @@ QskGraphic Qsk::loadGraphic( const QUrl& url )
const QskGraphic* graphic = nullptr;
if ( const auto provider = qskSetup->graphicProvider( providerId ) )
if ( const auto provider = Qsk::graphicProvider( providerId ) )
graphic = provider->requestGraphic( imageId );
return graphic ? *graphic : nullGraphic;