summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-09-27 23:17:33 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-10-05 06:32:10 -0500
commitd56707af8b9c856776b546952a23686b210f22d8 (patch)
tree760052750a417f7b30ed03b5d582e7719bb15001 /ui
parent4e77d86d6fc118f0dd1ec83c55c21e05e727d084 (diff)
downloadhorizon-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.cc2
-rw-r--r--ui/qt5/horizonwizard.cc4
-rw-r--r--ui/qt5/inputpage.cc12
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);