diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp index fe00b71d..375a67e5 100644 --- a/skins/material3/QskMaterial3Skin.cpp +++ b/skins/material3/QskMaterial3Skin.cpp @@ -130,8 +130,6 @@ namespace void setup(); private: - QskGraphic symbol( int type ) const { return m_skin->symbol( type ); } - void setupBox(); void setupCheckBox(); void setupComboBox(); @@ -159,6 +157,23 @@ namespace void setupTextInput(); void setupTextLabel(); + QskGraphic symbol( const char* url ) const + { + const auto provider = m_skin->graphicProvider( {} ); + + auto graphic = provider->requestGraphic( url ); + if ( graphic ) + return *graphic; + + return QskGraphic(); + } + + void setStandardSymbol( QskAspect aspect, + QskStandardSymbol::Type symbolType ) + { + setSymbol( aspect, QskStandardSymbol::graphic( symbolType ) ); + } + const QskSkin* m_skin; const QskMaterial3Theme& m_pal; }; @@ -253,11 +268,12 @@ void Editor::setupCheckBox() setGraphicRole( Q::Indicator | Q::Error, QskMaterial3Skin::GraphicRoleOnError ); + const auto checkMark = symbol( "check_small" ); for ( auto state : { QskAspect::NoState, Q::Disabled } ) { const auto aspect = Q::Indicator | Q::Checked | state; - setSymbol( aspect, symbol( QskStandardSymbol::CheckMark ) ); - setSymbol( aspect | Q::Error, symbol( QskStandardSymbol::CheckMark ) ); + setSymbol( aspect, checkMark ); + setSymbol( aspect | Q::Error, checkMark ); } setStrutSize( Q::Ripple, 40_dp, 40_dp ); @@ -346,11 +362,8 @@ void Editor::setupComboBox() setGraphicRole( Q::OpenMenuGraphic, QskMaterial3Skin::GraphicRoleOnSurface38 ); - setSymbol( Q::OpenMenuGraphic, - symbol( QskStandardSymbol::TriangleDown ) ); - - setSymbol( Q::OpenMenuGraphic | Q::PopupOpen, - symbol( QskStandardSymbol::TriangleUp ) ); + setSymbol( Q::OpenMenuGraphic, symbol( "combo-box-arrow-closed" ) ); + setSymbol( Q::OpenMenuGraphic | Q::PopupOpen, symbol( "combo-box-arrow-open" ) ); } void Editor::setupBox() @@ -618,7 +631,7 @@ void Editor::setupSegmentedBar() { // Graphic - setSymbol( Q::Graphic, symbol( QskStandardSymbol::SegmentedBarCheckMark ) ); + setSymbol( Q::Graphic, symbol( "segmented-button-check" ) ); setPadding( Q::Graphic, 0_dp ); setStrutSize( Q::Graphic, 18_dp, 18_dp ); @@ -925,8 +938,8 @@ void Editor::setupSpinBox() setGradient( Q::UpPanel | Q::Increasing, focusColor ); } - setSymbol( Q::UpIndicator, symbol( QskStandardSymbol::TriangleUp ) ); - setSymbol( Q::DownIndicator, symbol( QskStandardSymbol::TriangleDown ) ); + setSymbol( Q::UpIndicator, symbol( "combo-box-arrow-open" ) ); + setSymbol( Q::DownIndicator, symbol( "combo-box-arrow-closed" ) ); for( const auto subControl : { Q::DownIndicator, Q::UpIndicator } ) { @@ -1379,29 +1392,6 @@ QskMaterial3Skin::~QskMaterial3Skin() { } -QskGraphic QskMaterial3Skin::symbol( int symbolType ) const -{ - const auto provider = graphicProvider( {} ); - - switch ( symbolType ) - { - case QskStandardSymbol::CheckMark: - return *( provider->requestGraphic( "check_small" ) ); - - case QskStandardSymbol::SegmentedBarCheckMark: - return *( provider->requestGraphic( "segmented-button-check" ) ); - - case QskStandardSymbol::TriangleDown: - return *( provider->requestGraphic( "combo-box-arrow-closed" ) ); - - case QskStandardSymbol::TriangleUp: - return *( provider->requestGraphic( "combo-box-arrow-open" ) ); - - default: - return Inherited::symbol( symbolType ); - } -} - void QskMaterial3Skin::setupFonts() { Inherited::setupFonts( QStringLiteral( "Roboto" ) ); diff --git a/skins/material3/QskMaterial3Skin.h b/skins/material3/QskMaterial3Skin.h index 221eb538..9262bc50 100644 --- a/skins/material3/QskMaterial3Skin.h +++ b/skins/material3/QskMaterial3Skin.h @@ -126,8 +126,6 @@ class QSK_MATERIAL3_EXPORT QskMaterial3Skin : public QskSkin QskMaterial3Skin( const QskMaterial3Theme&, QObject* parent = nullptr ); ~QskMaterial3Skin() override; - virtual QskGraphic symbol( int symbolType ) const override; - enum GraphicRole { GraphicRoleOnError, diff --git a/src/controls/QskSkin.cpp b/src/controls/QskSkin.cpp index 47eb8f0d..5bc38b4a 100644 --- a/src/controls/QskSkin.cpp +++ b/src/controls/QskSkin.cpp @@ -326,13 +326,6 @@ const std::unordered_map< int, QskColorFilter >& QskSkin::graphicFilters() const return m_data->graphicFilters; } -QskGraphic QskSkin::symbol( int symbolType ) const -{ - // should this one be somehow related to the platform icons ??? - return QskStandardSymbol::graphic( - static_cast< QskStandardSymbol::Type >( symbolType ) ); -} - void QskSkin::addGraphicProvider( const QString& providerId, QskGraphicProvider* provider ) { diff --git a/src/controls/QskSkin.h b/src/controls/QskSkin.h index 723b0115..fe896bb8 100644 --- a/src/controls/QskSkin.h +++ b/src/controls/QskSkin.h @@ -68,8 +68,6 @@ class QSK_EXPORT QskSkin : public QObject void setupFonts( const QString& family, int weight = -1, bool italic = false ); - virtual QskGraphic symbol( int symbolType ) const; - void addGraphicProvider( const QString& providerId, QskGraphicProvider* ); QskGraphicProvider* graphicProvider( const QString& providerId ) const; bool hasGraphicProvider() const; diff --git a/src/dialogs/QskMessageSubWindow.cpp b/src/dialogs/QskMessageSubWindow.cpp index 38392769..e9a9e236 100644 --- a/src/dialogs/QskMessageSubWindow.cpp +++ b/src/dialogs/QskMessageSubWindow.cpp @@ -7,7 +7,7 @@ #include "QskGraphic.h" #include "QskGraphicLabel.h" #include "QskLinearBox.h" -#include "QskSkin.h" +#include "QskStandardSymbol.h" #include "QskTextLabel.h" #include @@ -130,7 +130,13 @@ void QskMessageSubWindow::setSymbolSource( const QUrl& url ) void QskMessageSubWindow::setSymbolType( int symbolType ) { - setSymbol( effectiveSkin()->symbol( symbolType ) ); +#if 1 + const auto graphic = QskStandardSymbol::graphic( + static_cast< QskStandardSymbol::Type >( symbolType ) ); +#else + const auto graphic = symbolHint( ... ); // TODO +#endif + setSymbol( graphic ); } QUrl QskMessageSubWindow::symbolSource() const diff --git a/src/dialogs/QskMessageWindow.cpp b/src/dialogs/QskMessageWindow.cpp index 13e40c79..b12195b5 100644 --- a/src/dialogs/QskMessageWindow.cpp +++ b/src/dialogs/QskMessageWindow.cpp @@ -7,7 +7,7 @@ #include "QskGraphicLabel.h" #include "QskGraphic.h" #include "QskLinearBox.h" -#include "QskSkin.h" +#include "QskStandardSymbol.h" #include "QskTextLabel.h" #include "QskTextOptions.h" @@ -135,8 +135,14 @@ void QskMessageWindow::setSymbolSource( const QUrl& url ) void QskMessageWindow::setSymbolType( int symbolType ) { - const auto skin = m_data->symbolLabel->effectiveSkin(); - setSymbol( skin->symbol( symbolType ) ); +#if 1 + const auto graphic = QskStandardSymbol::graphic( + static_cast< QskStandardSymbol::Type >( symbolType ) ); +#else + const auto graphic = symbolHint( ... ); // TODO +#endif + + setSymbol( graphic ); } QUrl QskMessageWindow::symbolSource() const