graphic provider handling fixed. graphic URL namespace clashes fixed

( provider for the gallery icons was loaded by a provider that was only
available with M3 )
This commit is contained in:
Uwe Rathmann 2023-03-09 11:11:36 +01:00
parent 9635c13181
commit 10af58137f
5 changed files with 23 additions and 39 deletions

View File

@ -1,5 +1,5 @@
<RCC> <RCC>
<qresource> <qresource prefix="/gallery">
<file>icons/qvg/airport_shuttle.qvg</file> <file>icons/qvg/airport_shuttle.qvg</file>
<file>icons/qvg/flight.qvg</file> <file>icons/qvg/flight.qvg</file>
<file>icons/qvg/local_pizza.qvg</file> <file>icons/qvg/local_pizza.qvg</file>

View File

@ -31,12 +31,28 @@
#include <QskAnimationHint.h> #include <QskAnimationHint.h>
#include <QskBoxBorderMetrics.h> #include <QskBoxBorderMetrics.h>
#include <QskBoxShapeMetrics.h> #include <QskBoxShapeMetrics.h>
#include <QskGraphicProvider.h>
#include <QskGraphicIO.h>
#include <QskGraphic.h>
#include <QskSetup.h> #include <QskSetup.h>
#include <QGuiApplication> #include <QGuiApplication>
namespace 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 class TabView : public QskTabView
{ {
public: public:
@ -234,6 +250,7 @@ int main( int argc, char* argv[] )
QskObjectCounter counter( true ); QskObjectCounter counter( true );
#endif #endif
Qsk::addGraphicProvider( QString(), new GraphicProvider() );
Qsk::addGraphicProvider( "shapes", new SkinnyShapeProvider() ); Qsk::addGraphicProvider( "shapes", new SkinnyShapeProvider() );
// dialogs in faked windows -> QskSubWindow // dialogs in faked windows -> QskSubWindow

View File

@ -16,7 +16,6 @@
#include <QskFunctions.h> #include <QskFunctions.h>
#include <QskGraphic.h> #include <QskGraphic.h>
#include <QskGraphicIO.h> #include <QskGraphicIO.h>
#include <QskGraphicProvider.h>
#include <QskInputPanelBox.h> #include <QskInputPanelBox.h>
#include <QskListView.h> #include <QskListView.h>
#include <QskMenu.h> #include <QskMenu.h>
@ -110,15 +109,12 @@ namespace
void setupTextInput(); void setupTextInput();
void setupTextLabel(); 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 ); return QskGraphicIO::read( path );
if ( graphic )
return *graphic;
return QskGraphic();
} }
void setStandardSymbol( QskAspect aspect, void setStandardSymbol( QskAspect aspect,
@ -1319,24 +1315,9 @@ QskMaterial3Theme::QskMaterial3Theme( Lightness lightness,
shapeExtraSmallTop = QskBoxShapeMetrics( 4_dp, 4_dp, 0, 0 ); 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 ) QskMaterial3Skin::QskMaterial3Skin( const QskMaterial3Theme& palette, QObject* parent )
: Inherited( parent ) : Inherited( parent )
{ {
addGraphicProvider( {}, new QskMaterial3GraphicProvder() );
setupFonts(); setupFonts();
setupGraphicFilters( palette ); setupGraphicFilters( palette );

View File

@ -9,7 +9,6 @@
#include "QskMaterial3Global.h" #include "QskMaterial3Global.h"
#include <QskBoxShapeMetrics.h> #include <QskBoxShapeMetrics.h>
#include <QskGraphicProvider.h>
#include <QskHctColor.h> #include <QskHctColor.h>
#include <QskSkin.h> #include <QskSkin.h>
#include <QskShadowMetrics.h> #include <QskShadowMetrics.h>
@ -104,19 +103,6 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Theme
std::array< QskHctColor, NumPaletteTypes > m_palettes; 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 class QSK_MATERIAL3_EXPORT QskMaterial3Skin : public QskSkin
{ {
Q_OBJECT Q_OBJECT

View File

@ -1,5 +1,5 @@
<RCC> <RCC>
<qresource> <qresource prefix="/m3">
<file>icons/qvg/check_small.qvg</file> <file>icons/qvg/check_small.qvg</file>
<file>icons/qvg/combo-box-arrow-closed.qvg</file> <file>icons/qvg/combo-box-arrow-closed.qvg</file>
<file>icons/qvg/combo-box-arrow-open.qvg</file> <file>icons/qvg/combo-box-arrow-open.qvg</file>