[libcalamaresui] Check for typo's in branding keys

This commit is contained in:
Adriaan de Groot 2022-06-03 11:53:02 +02:00
parent 7356961f52
commit 2c07463ac6

View file

@ -95,6 +95,36 @@ const QStringList Branding::s_uploadServerStrings =
// clang-format on // clang-format on
// *INDENT-ON* // *INDENT-ON*
/** @brief Check that all the entries in the @p style map make sense
*
* This will catch typo's in key names.
*/
static bool
validateStyleEntries( const QMap< QString, QString >& style )
{
using SE = Branding::StyleEntry;
Logger::Once o;
bool valid = true;
const auto meta = QMetaEnum::fromType< SE >();
QSet< QString > validNames;
for ( SE i : { SE::SidebarBackground, SE::SidebarBackgroundCurrent, SE::SidebarText, SE::SidebarTextCurrent } )
{
validNames.insert( meta.valueToKey( i ) );
}
for ( const auto& k : style.keys() )
{
if ( !validNames.contains( k ) )
{
cWarning() << o << "Unknown branding *style* entry" << k;
valid = false;
}
}
return valid;
}
const NamedEnumTable< Branding::WindowDimensionUnit >& const NamedEnumTable< Branding::WindowDimensionUnit >&
Branding::WindowDimension::suffixes() Branding::WindowDimension::suffixes()
@ -289,6 +319,7 @@ Branding::Branding( const QString& brandingFilePath, QObject* parent )
{ {
cDebug() << "Loaded branding component" << m_componentName; cDebug() << "Loaded branding component" << m_componentName;
} }
validateStyleEntries( m_style );
} }
@ -311,7 +342,7 @@ QString
Branding::styleString( Branding::StyleEntry styleEntry ) const Branding::styleString( Branding::StyleEntry styleEntry ) const
{ {
const auto meta = QMetaEnum::fromType< Branding::StyleEntry >(); const auto meta = QMetaEnum::fromType< Branding::StyleEntry >();
return meta.valueToKey(styleEntry); return m_style.value( meta.valueToKey( styleEntry ) );
} }