diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b897ec295..c7ddee1a2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,7 +70,7 @@ jobs: container: ubuntu:${{ matrix.container }} strategy: matrix: - container: ['22.04', '24.04', '25.04', '25.10'] + container: ['22.04', '24.04', '25.10', '26.04'] arch: ['amd64', 'arm64'] env: DEBIAN_FRONTEND: noninteractive @@ -116,7 +116,7 @@ jobs: container: fedora:${{ matrix.container }} strategy: matrix: - container: [42, 43] + container: [42, 43, 44] steps: - name: Download artifact uses: dawidd6/action-download-artifact@v11 diff --git a/client/dialogs/RoleAddressDialog.cpp b/client/dialogs/RoleAddressDialog.cpp index 362e31a2b..0ca901f71 100644 --- a/client/dialogs/RoleAddressDialog.cpp +++ b/client/dialogs/RoleAddressDialog.cpp @@ -37,17 +37,20 @@ RoleAddressDialog::RoleAddressDialog(QWidget *parent) d->buttonLayout->setDirection(QBoxLayout::RightToLeft); #endif setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint); - for(QLineEdit *w: findChildren()) - w->setAttribute(Qt::WA_MacShowFocusRect, false); connect( d->cancel, &QPushButton::clicked, this, &RoleAddressDialog::reject ); connect( d->sign, &QPushButton::clicked, this, &RoleAddressDialog::accept ); + auto *validator = new QRegularExpressionValidator( + QRegularExpression(QStringLiteral("[^\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\uFFFE\\uFFFF]*")), + this); auto list = findChildren(); if(!list.isEmpty()) list.first()->setFocus(); for(QLineEdit *line: list) { + line->setAttribute(Qt::WA_MacShowFocusRect, false); + line->setValidator(validator); Settings::Option s{line->objectName(), {}}; auto *completer = new QCompleter(s, line); completer->setMaxVisibleItems(10); @@ -57,8 +60,9 @@ RoleAddressDialog::RoleAddressDialog(QWidget *parent) line->setCompleter(completer); connect(line, &QLineEdit::editingFinished, this, [line, s = std::move(s)] { QStringList list = s; - list.removeAll(line->text()); - list.insert(0, line->text()); + QString text = line->text(); + list.removeAll(text); + list.insert(0, text); if(list.size() > 10) list.removeLast(); s.clear(); // Uses on Windows MULTI_STRING registry