From 09b5e42734c040312ca1021067048a392d7421bd Mon Sep 17 00:00:00 2001 From: Artem Grinev Date: Sun, 25 Oct 2020 14:29:33 +0300 Subject: [PATCH] [keyboard] Minor additional layout info rework --- src/modules/keyboard/Config.cpp | 34 ++++++++++++++------------------- src/modules/keyboard/Config.h | 4 +--- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 4e59b5fda..47aaf6dbe 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -109,14 +109,13 @@ xkbmap_query_grp_option() return outputLine.mid( index, lastIndex-1 ); } -AdditionalLayoutInfo Config::getAdditionalLayoutInfo( const QString &layout, bool* found ) +AdditionalLayoutInfo Config::getAdditionalLayoutInfo( const QString &layout ) { - QFile layoutTable(":/non-ascii-layouts"); + QFile layoutTable( ":/non-ascii-layouts" ); - if(!layoutTable.open(QIODevice::ReadOnly | QIODevice::Text)) { + if( !layoutTable.open( QIODevice::ReadOnly | QIODevice::Text ) ) { cError() << "Non-ASCII layout table could not be opened"; - *found = false; - return {}; + return AdditionalLayoutInfo(); } QString tableLine; @@ -125,22 +124,19 @@ AdditionalLayoutInfo Config::getAdditionalLayoutInfo( const QString &layout, boo { tableLine = layoutTable.readLine(); } - while( !layoutTable.atEnd() || !tableLine.startsWith(layout) ); + while( !layoutTable.atEnd() || !tableLine.startsWith( layout ) ); - if( !tableLine.startsWith(layout) ){ - *found = false; - return {}; + if( !tableLine.startsWith( layout ) ) + { + return AdditionalLayoutInfo(); } - *found = true; - - QStringList tableEntries = tableLine.split(" ", SplitSkipEmptyParts); + QStringList tableEntries = tableLine.split( " ", SplitSkipEmptyParts ); AdditionalLayoutInfo r; - r.name = tableEntries[0]; r.additionalLayout = tableEntries[1]; - r.additionalVariant = tableEntries[2]; + r.additionalVariant = tableEntries[2] == "-" ? "" : tableEntries[2]; r.vconsoleKeymap = tableEntries[3]; @@ -180,10 +176,9 @@ Config::Config( QObject* parent ) } connect( &m_setxkbmapTimer, &QTimer::timeout, this, [=] { - bool isNotAsciiCapable = false; - AdditionalLayoutInfo info = getAdditionalLayoutInfo( m_selectedLayout, &isNotAsciiCapable ); + AdditionalLayoutInfo info = getAdditionalLayoutInfo( m_selectedLayout); - if(isNotAsciiCapable) + if(!info.additionalLayout.isEmpty()) { m_selectedLayoutsAdditionalLayoutInfo = info; QString switchOption = xkbmap_query_grp_option(); @@ -195,8 +190,7 @@ Config::Config( QObject* parent ) switchOption.isEmpty()?"grp:alt_shift_toggle":QString() ) ); cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant - << "(added " << info.additionalLayout << "-" << info.additionalVariant << " since target layout is not ASCII-capable)"; - + << "(added " << info.additionalLayout << "-" << info.additionalVariant << " since current layout is not ASCII-capable)"; } else @@ -494,7 +488,7 @@ Config::finalize() gs->insert( "keyboardLayout", m_selectedLayout ); gs->insert( "keyboardVariant", m_selectedVariant ); //empty means default variant - if ( !m_selectedLayoutsAdditionalLayoutInfo.name.isEmpty() ) + if ( !m_selectedLayoutsAdditionalLayoutInfo.additionalLayout.isEmpty() ) { gs->insert( "keyboardAdditionalLayout", m_selectedLayoutsAdditionalLayoutInfo.additionalLayout); gs->insert( "keyboardAdditionalLayout", m_selectedLayoutsAdditionalLayoutInfo.additionalVariant); diff --git a/src/modules/keyboard/Config.h b/src/modules/keyboard/Config.h index 34d719d1b..96b3d7dd4 100644 --- a/src/modules/keyboard/Config.h +++ b/src/modules/keyboard/Config.h @@ -21,8 +21,6 @@ #include struct AdditionalLayoutInfo { - QString name; - QString additionalLayout; QString additionalVariant; @@ -50,7 +48,7 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ); - static AdditionalLayoutInfo getAdditionalLayoutInfo( const QString& layout, bool* found ); + static AdditionalLayoutInfo getAdditionalLayoutInfo( const QString& layout ); private: void guessLayout( const QStringList& langParts );