[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
// *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 >&
Branding::WindowDimension::suffixes()
@ -289,6 +319,7 @@ Branding::Branding( const QString& brandingFilePath, QObject* parent )
{
cDebug() << "Loaded branding component" << m_componentName;
}
validateStyleEntries( m_style );
}
@ -310,8 +341,8 @@ Branding::string( Branding::StringEntry stringEntry ) const
QString
Branding::styleString( Branding::StyleEntry styleEntry ) const
{
const auto meta = QMetaEnum::fromType<Branding::StyleEntry>();
return meta.valueToKey(styleEntry);
const auto meta = QMetaEnum::fromType< Branding::StyleEntry >();
return m_style.value( meta.valueToKey( styleEntry ) );
}