diff options
-rw-r--r-- | ui/qt5/commitpage.cc | 2 | ||||
-rw-r--r-- | ui/qt5/horizonwizard.cc | 4 | ||||
-rw-r--r-- | ui/qt5/inputpage.cc | 12 | ||||
-rw-r--r-- | util/keymaps.hh | 42 |
4 files changed, 44 insertions, 16 deletions
diff --git a/ui/qt5/commitpage.cc b/ui/qt5/commitpage.cc index 7856a4a..6d9883b 100644 --- a/ui/qt5/commitpage.cc +++ b/ui/qt5/commitpage.cc @@ -105,7 +105,7 @@ void CommitPage::initializePage() { "<p><b>Root Passphrase</b>: <i>[saved]</i></p>\n" "<br>") .arg(diskString) - .arg(QString::fromStdString(*iterator)) + .arg(QString::fromStdString(iterator->second)) .arg(netString) .arg(zoneString) .arg(softString) diff --git a/ui/qt5/horizonwizard.cc b/ui/qt5/horizonwizard.cc index b3e53fd..d410370 100644 --- a/ui/qt5/horizonwizard.cc +++ b/ui/qt5/horizonwizard.cc @@ -727,8 +727,8 @@ QString HorizonWizard::toHScript() { lines << "rootshell /bin/zsh"; auto iterator = valid_keymaps.begin(); - std::advance(iterator, field("keymap").toInt()); - lines << ("keymap " + QString::fromStdString(*iterator)); + std::advance(iterator, field("keymap").toUInt()); + lines << ("keymap " + QString::fromStdString(iterator->first)); #ifdef NON_LIBRE_FIRMWARE if(this->firmware) { diff --git a/ui/qt5/inputpage.cc b/ui/qt5/inputpage.cc index 11d9993..5e1958e 100644 --- a/ui/qt5/inputpage.cc +++ b/ui/qt5/inputpage.cc @@ -41,7 +41,8 @@ InputPage::InputPage(QWidget *parent) : HorizonWizardPage(parent) { layoutList->setWhatsThis(tr("This is a list of keyboard layouts. Select one to choose the layout of the keyboard you will be using on your Adélie Linux computer.")); for(auto &map : valid_keymaps) { QIcon myIcon = QIcon::fromTheme("input-keyboard"); - new QListWidgetItem(myIcon, map.c_str(), layoutList); + auto widgetItem = new QListWidgetItem(myIcon, map.second.c_str(), layoutList); + widgetItem->setData(Qt::ToolTipRole, QVariant(QString::fromStdString(map.first))); } registerField("keymap*", layoutList); @@ -81,8 +82,13 @@ void InputPage::initializePage() { if(dpy != nullptr) { XkbRF_VarDefsRec vardefs{}; XkbRF_GetNamesProp(dpy, nullptr, &vardefs); - QList<QListWidgetItem *> items = layoutList->findItems(vardefs.layout, Qt::MatchExactly); - if(!items.empty()) layoutList->setCurrentItem(items.at(0)); + QList<QListWidgetItem *> items = layoutList->items(); + for(int idx = 0; idx < items.size(); ++idx) { + if(items.at(idx)->data(Qt::ToolTipRole).toString == vardefs.layout) { + layoutList->setCurrentItem(items.at(idx)); + break; + } + } free(vardefs.model); free(vardefs.layout); free(vardefs.variant); diff --git a/util/keymaps.hh b/util/keymaps.hh index 91171dd..1ef9bec 100644 --- a/util/keymaps.hh +++ b/util/keymaps.hh @@ -13,18 +13,40 @@ #ifndef HORIZON_KEYMAPS_HH_ #define HORIZON_KEYMAPS_HH_ -#include <set> +#include <map> #include <string> -const std::set<std::string> valid_keymaps = { - "us", "ad", "af", "ara", "al", "am", "at", "az", "by", "be", "bd", "in", - "ba", "br", "bg", "ma", "mm", "ca", "cd", "cn", "hr", "cz", "dk", "nl", - "bt", "ee", "ir", "iq", "fo", "fi", "fr", "gh", "gn", "ge", "de", "gr", - "hu", "is", "il", "it", "jp", "kg", "kh", "kz", "la", "latam", "lt", "lv", - "mao", "me", "mk", "mt", "mn", "no", "pl", "pt", "ro", "ru", "rs", "si", - "sk", "es", "se", "ch", "sy", "tj", "lk", "th", "tr", "ua", "gb", "uz", - "vn", "kr", "ie", "pk", "mv", "za", "epo", "np", "ng", "et", "sn", "brai", - "tm", "ml", "tz", "ke", "bw", "ph" +const std::map<std::string, std::string> valid_keymaps = { + {"us", "English (US)"}, {"af", "Afghani"}, {"ara", "Arabic"}, + {"al", "Albanian"}, {"am", "Armenian"}, {"at", "German (Austria)"}, + {"au", "English (Australian)"}, {"az", "Azerbaijani"}, {"by", "Belarusian"}, + {"be", "Belgian"}, {"bd", "Bangla"}, {"in", "Indian"}, {"ba", "Bosnian"}, + {"br", "Portuguese (Brazil)"}, {"bg", "Bulgarian"}, + {"dz", "Kabylian (azerty layout, no dead keys)"}, {"ma", "Arabic (Morocco)"}, + {"cm", "English (Cameroon)"}, {"mm", "Burmese"}, {"ca", "French (Canada)"}, + {"cd", "French (Democratic Republic of the Congo)"}, {"cn", "Chinese"}, + {"hr", "Croatian"}, {"cz", "Czech"}, {"dk", "Danish"}, {"nl", "Dutch"}, + {"bt", "Dzongkha"}, {"ee", "Estonian"}, {"ir", "Persian"}, {"iq", "Iraqi"}, + {"fo", "Faroese"}, {"fi", "Finnish"}, {"fr", "French"}, {"gh", "English (Ghana)"}, + {"gn", "French (Guinea)"}, {"ge", "Georgian"}, {"de", "German"}, {"gr", "Greek"}, + {"hu", "Hungarian"}, {"is", "Icelandic"}, {"il", "Hebrew"}, {"it", "Italian"}, + {"jp", "Japanese"}, {"kg", "Kyrgyz"}, {"kh", "Khmer (Cambodia)"}, {"kz", "Kazakh"}, + {"la", "Lao"}, {"latam", "Spanish (Latin American)"}, {"lt", "Lithuanian"}, + {"lv", "Latvian"}, {"mao", "Maori"}, {"me", "Montenegrin"}, {"mk", "Macedonian"}, + {"mt", "Maltese"}, {"mn", "Mongolian"}, {"no", "Norwegian"}, {"pl", "Polish"}, + {"pt", "Portuguese"}, {"ro", "Romanian"}, {"ru", "Russian"}, {"rs", "Serbian"}, + {"si", "Slovenian"}, {"sk", "Slovak"}, {"es", "Spanish"}, {"se", "Swedish"}, + {"ch", "German (Switzerland)"}, {"sy", "Arabic (Syria)"}, {"tj", "Tajik"}, + {"lk", "Sinhala (phonetic)"}, {"th", "Thai"}, {"tr", "Turkish"}, {"tw", "Taiwanese"}, + {"ua", "Ukrainian"}, {"gb", "English (UK)"}, {"uz", "Uzbek"}, {"vn", "Vietnamese"}, + {"kr", "Korean"}, {"nec_vndr/jp", "Japanese (PC-98)"}, {"ie", "Irish"}, + {"pk", "Urdu (Pakistan)"}, {"mv", "Dhivehi"}, {"za", "English (South Africa)"}, + {"epo", "Esperanto"}, {"np", "Nepali"}, {"ng", "English (Nigeria)"}, + {"et", "Amharic"}, {"sn", "Wolof"}, {"brai", "Braille"}, {"tm", "Turkmen"}, + {"ml", "Bambara"}, {"tz", "Swahili (Tanzania)"}, {"tg", "French (Togo)"}, + {"ke", "Swahili (Kenya)"}, {"bw", "Tswana"}, {"ph", "Filipino"}, {"md", "Moldavian"}, + {"id", "Indonesian (Arab Melayu, phonetic)"}, {"jv", "Indonesian (Javanese)"}, + {"my", "Malay (Jawi, Arabic Keyboard)"} }; #endif /* !HORIZON_KEYMAPS_HH_ */ |