diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-09-27 23:17:33 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-10-05 06:32:10 -0500 |
commit | d56707af8b9c856776b546952a23686b210f22d8 (patch) | |
tree | 760052750a417f7b30ed03b5d582e7719bb15001 /ui | |
parent | 4e77d86d6fc118f0dd1ec83c55c21e05e727d084 (diff) | |
download | horizon-d56707af8b9c856776b546952a23686b210f22d8.tar.gz horizon-d56707af8b9c856776b546952a23686b210f22d8.tar.bz2 horizon-d56707af8b9c856776b546952a23686b210f22d8.tar.xz horizon-d56707af8b9c856776b546952a23686b210f22d8.zip |
Add friendly names for keymaps
This allows users to choose the "friendly name" for their keyboard layout
instead of the internal XKB name.
Closes: #386
Suggested-by: Jesse Smith <distro@distrowatch.com>
Reviewed-by: Zach van Rijn <me@zv.io>
In-memory-of: Sammie the Cat
Diffstat (limited to 'ui')
-rw-r--r-- | ui/qt5/commitpage.cc | 2 | ||||
-rw-r--r-- | ui/qt5/horizonwizard.cc | 4 | ||||
-rw-r--r-- | ui/qt5/inputpage.cc | 12 |
3 files changed, 12 insertions, 6 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); |