@@ -119,8 +119,13 @@ void KeyboardLayoutsModel::updateModel()
119119 beginResetModel();
120120 m_layouts.clear();
121121
122+ const QString lang = m_language.section("_", 0, 0);
123+ const QString country = m_language.section("_", 1, 1).toLower();
124+
122125 Q_FOREACH(const KeyboardLayoutInfo & info, m_db) {
123− if (info.language.isEmpty() || info.language == m_language) {
126+ const QString kbdCountry = info.id.section("+", 0, 0);
127+ if (info.language == lang && // filter by language
128+ (kbdCountry.startsWith(country) || kbdCountry.length() > 2)) { // and by known country, also insert anything that doesn't match the country
124129 m_layouts.append(info);
125130 qDebug() << "Inserted layout:" << info.id << ", language:" << info.language;
126131 }