diff --git a/examples/gallery/icons.qrc b/examples/gallery/icons.qrc index 001e16e2..7ff1cfba 100644 --- a/examples/gallery/icons.qrc +++ b/examples/gallery/icons.qrc @@ -1,5 +1,5 @@ - + icons/qvg/airport_shuttle.qvg icons/qvg/flight.qvg icons/qvg/local_pizza.qvg diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index 6e35fdbe..264691fc 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -31,12 +31,28 @@ #include #include #include +#include +#include +#include #include #include namespace { + class GraphicProvider : public QskGraphicProvider + { + protected: + const QskGraphic* loadGraphic( const QString& id ) const override + { + const QString path = QStringLiteral( ":gallery/icons/qvg/" ) + + id + QStringLiteral( ".qvg" ); + + const auto graphic = QskGraphicIO::read( path ); + return graphic.isNull() ? nullptr : new QskGraphic( graphic ); + } + }; + class TabView : public QskTabView { public: @@ -234,6 +250,7 @@ int main( int argc, char* argv[] ) QskObjectCounter counter( true ); #endif + Qsk::addGraphicProvider( QString(), new GraphicProvider() ); Qsk::addGraphicProvider( "shapes", new SkinnyShapeProvider() ); // dialogs in faked windows -> QskSubWindow diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp index d6604e25..5a2f086b 100644 --- a/skins/material3/QskMaterial3Skin.cpp +++ b/skins/material3/QskMaterial3Skin.cpp @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -110,15 +109,12 @@ namespace void setupTextInput(); void setupTextLabel(); - QskGraphic symbol( const char* url ) const + QskGraphic symbol( const char* name ) const { - const auto provider = m_skin->graphicProvider( {} ); + const QString path = QStringLiteral( ":m3/icons/qvg/" ) + + name + QStringLiteral( ".qvg" ); - auto graphic = provider->requestGraphic( url ); - if ( graphic ) - return *graphic; - - return QskGraphic(); + return QskGraphicIO::read( path ); } void setStandardSymbol( QskAspect aspect, @@ -1319,24 +1315,9 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness, shapeExtraSmallTop = QskBoxShapeMetrics( 4_dp, 4_dp, 0, 0 ); } -QskMaterial3GraphicProvder::QskMaterial3GraphicProvder( QObject* parent ) - : Inherited( parent ) -{ -} - -const QskGraphic* QskMaterial3GraphicProvder::loadGraphic( const QString& id ) const -{ - const QString name = QString( ":/icons/qvg/%1.qvg" ).arg( id ); - const QskGraphic graphic = QskGraphicIO::read( name ); - - return graphic.isNull() ? nullptr : new QskGraphic( graphic ); -} - QskMaterial3Skin::QskMaterial3Skin( const QskMaterial3Theme& palette, QObject* parent ) : Inherited( parent ) { - addGraphicProvider( {}, new QskMaterial3GraphicProvder() ); - setupFonts(); setupGraphicFilters( palette ); diff --git a/skins/material3/QskMaterial3Skin.h b/skins/material3/QskMaterial3Skin.h index ba0f8e48..44d8aad3 100644 --- a/skins/material3/QskMaterial3Skin.h +++ b/skins/material3/QskMaterial3Skin.h @@ -9,7 +9,6 @@ #include "QskMaterial3Global.h" #include -#include #include #include #include @@ -104,19 +103,6 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme std::array< QskHctColor, NumPaletteTypes > m_palettes; }; -class QSK_MATERIAL3_EXPORT QskMaterial3GraphicProvder : public QskGraphicProvider -{ - Q_OBJECT - - using Inherited = QskGraphicProvider; - - public: - QskMaterial3GraphicProvder( QObject* parent = nullptr ); - - protected: - virtual const QskGraphic* loadGraphic( const QString& id ) const override; -}; - class QSK_MATERIAL3_EXPORT QskMaterial3Skin : public QskSkin { Q_OBJECT diff --git a/skins/material3/icons.qrc b/skins/material3/icons.qrc index 103698e5..ab149d96 100644 --- a/skins/material3/icons.qrc +++ b/skins/material3/icons.qrc @@ -1,5 +1,5 @@ - + icons/qvg/check_small.qvg icons/qvg/combo-box-arrow-closed.qvg icons/qvg/combo-box-arrow-open.qvg