[keyboard] Use the translations if they were loaded

This commit is contained in:
Adriaan de Groot 2020-11-01 14:19:06 +01:00
parent f088efdf84
commit 6863db0dc1

View File

@ -23,12 +23,11 @@ static QTranslator* s_kbtranslator = nullptr;
void void
retranslateKeyboardModels() retranslateKeyboardModels()
{ {
cqDeleter< QTranslator > d{ s_kbtranslator };
if ( !s_kbtranslator ) if ( !s_kbtranslator )
{ {
s_kbtranslator = new QTranslator; s_kbtranslator = new QTranslator;
} }
d.preserve = CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator ); (void) CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator );
} }
@ -59,10 +58,13 @@ XKBListModel::data( const QModelIndex& index, int role ) const
switch ( role ) switch ( role )
{ {
case LabelRole: case LabelRole:
if ( s_kbtranslator && m_contextname ) if ( s_kbtranslator && !s_kbtranslator->isEmpty() && m_contextname )
{ {
auto s = s_kbtranslator->translate( m_contextname, item.label.toUtf8().data() ); auto s = s_kbtranslator->translate( m_contextname, item.label.toUtf8().data() );
cDebug() << "Translated" << item.label << "to" << s; if ( !s.isEmpty() )
{
return s;
}
} }
return item.label; return item.label;
case KeyRole: case KeyRole: