From b980d5b6503828769def711086333a8a17fe93ad Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Tue, 17 Oct 2023 21:40:56 +0300 Subject: [PATCH] Split menu to two rows and workaround character truncation WE2-822, WE2-821 Signed-off-by: Raul Metsma --- src/ui/dialog.ui | 2 +- src/ui/webeiddialog.cpp | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ui/dialog.ui b/src/ui/dialog.ui index 9f14d41b..19bfd744 100644 --- a/src/ui/dialog.ui +++ b/src/ui/dialog.ui @@ -93,7 +93,7 @@ color: #003168; border: 0px; max-height: 22px; padding-left: 7px; -padding-right: 7px; +padding-right: 6px; font-size: 14px; text-align: left; } diff --git a/src/ui/webeiddialog.cpp b/src/ui/webeiddialog.cpp index f41f010f..0f7d3f8d 100644 --- a/src/ui/webeiddialog.cpp +++ b/src/ui/webeiddialog.cpp @@ -102,9 +102,10 @@ WebEidDialog::WebEidDialog(QWidget* parent) : WebEidUI(parent), ui(new Private) {QStringLiteral("cs"), QStringLiteral("Čeština")}, {QStringLiteral("sk"), QStringLiteral("Slovenština")}}; ui->langButton->setText(tr("EN", "Active language")); - if (auto i = std::find_if( - LANG_LIST.cbegin(), LANG_LIST.cend(), - [&](const auto& elem) { return elem.first == ui->langButton->text().toLower(); }); + if (auto i = std::find_if(LANG_LIST.cbegin(), LANG_LIST.cend(), + [lang = ui->langButton->text().toLower()](const auto& elem) { + return elem.first == lang; + }); i != LANG_LIST.cend()) { ui->langButton->setAccessibleName(i->second); } @@ -115,20 +116,23 @@ WebEidDialog::WebEidDialog(QWidget* parent) : WebEidUI(parent), ui(new Private) } auto* menu = new QWidget(this); menu->setObjectName("langMenu"); - auto* layout = new QVBoxLayout(menu); + auto* layout = new QGridLayout(menu); layout->setContentsMargins(1, 1, 1, 1); layout->setSpacing(1); auto* langGroup = new QButtonGroup(menu); langGroup->setExclusive(true); + int i {}; for (const auto& [lang, title] : LANG_LIST) { auto* action = new QPushButton(menu); action->setText(title); action->setProperty("lang", lang); action->setAutoDefault(false); - layout->addWidget(action); + layout->addWidget(action, i / 2, i % 2); langGroup->addButton(action); action->setCheckable(true); action->setChecked(lang == ui->langButton->text().toLower()); + action->setMinimumSize(action->sizeHint() + QSize(1, 0)); + ++i; } menu->show(); menu->adjustSize();