From ccd2e15629fac70c3b11ac2047d8699c8a032ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Thu, 30 Jul 2026 22:17:31 +0200 Subject: [PATCH] Comments Took 23 minutes Took 15 seconds --- .../widgets/dialogs/dlg_settings.cpp | 21 +++++++------- .../settings_page/abstract_settings_page.cpp | 28 +++++++++++++++++++ 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp index 70d676684..8b1d54608 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp @@ -50,7 +50,7 @@ * @param widget The widget to wrap * @return The scroll area containing the widget */ -static QScrollArea *makeScrollableModern(QWidget *widget) +static QScrollArea *makeScrollable(QWidget *widget) { widget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Maximum); @@ -75,6 +75,8 @@ DlgSettings::DlgSettings(QWidget *parent) : QDialog(parent), currentTabIndex(0), connect(&SettingsCache::instance().personal(), &PersonalSettings::langChanged, this, &DlgSettings::retranslateUi); retranslateUi(); + searchEdit->setFocus(); + adjustSize(); } @@ -114,14 +116,14 @@ void DlgSettings::setupUi() pages.append(soundPage); pages.append(shortcutsPage); - pagesWidget->addWidget(makeScrollableModern(generalPage)); - pagesWidget->addWidget(makeScrollableModern(appearancePage)); - pagesWidget->addWidget(makeScrollableModern(userInterfacePage)); - pagesWidget->addWidget(makeScrollableModern(deckEditorPage)); - pagesWidget->addWidget(makeScrollableModern(storagePage)); - pagesWidget->addWidget(makeScrollableModern(messagesPage)); - pagesWidget->addWidget(makeScrollableModern(soundPage)); - pagesWidget->addWidget(makeScrollableModern(shortcutsPage)); + pagesWidget->addWidget(makeScrollable(generalPage)); + pagesWidget->addWidget(makeScrollable(appearancePage)); + pagesWidget->addWidget(makeScrollable(userInterfacePage)); + pagesWidget->addWidget(makeScrollable(deckEditorPage)); + pagesWidget->addWidget(makeScrollable(storagePage)); + pagesWidget->addWidget(makeScrollable(messagesPage)); + pagesWidget->addWidget(makeScrollable(soundPage)); + pagesWidget->addWidget(makeScrollable(shortcutsPage)); // Search results view (hidden by default) searchResultsView = new QListView; @@ -388,7 +390,6 @@ void DlgSettings::navigateToSearchResult(const QModelIndex &index) if (scrollArea) { scrollArea->ensureWidgetVisible(entry.widget); } - entry.widget->setFocus(); flashWidget(entry.widget); } } diff --git a/cockatrice/src/interface/widgets/settings_page/abstract_settings_page.cpp b/cockatrice/src/interface/widgets/settings_page/abstract_settings_page.cpp index fac528c6f..e1c602d44 100644 --- a/cockatrice/src/interface/widgets/settings_page/abstract_settings_page.cpp +++ b/cockatrice/src/interface/widgets/settings_page/abstract_settings_page.cpp @@ -60,6 +60,20 @@ QList AbstractSettingsPage::autoDetectSearchEntries(QWidget } if (!label.isEmpty()) { + // Skip QLabels that are not setting names: HTML, path values, or excessively long + if (qobject_cast(widget)) { + auto *labelWidget = static_cast(widget); + if (labelWidget->textFormat() != Qt::PlainText) { + continue; + } + if (label.contains(QLatin1Char('/')) || label.contains(QLatin1Char('\\'))) { + continue; + } + if (label.size() > 60) { + continue; + } + } + // Strip accelerator markers (&) for search QString cleanLabel = label; cleanLabel.remove(QLatin1Char('&')); @@ -96,6 +110,20 @@ QList AbstractSettingsPage::autoDetectSearchEntries(QWidget } if (!label.isEmpty()) { + // Skip QLabels that are not setting names: HTML, path values, or excessively long + if (qobject_cast(nestedWidget)) { + auto *labelWidget = static_cast(nestedWidget); + if (labelWidget->textFormat() != Qt::PlainText) { + continue; + } + if (label.contains(QLatin1Char('/')) || label.contains(QLatin1Char('\\'))) { + continue; + } + if (label.size() > 60) { + continue; + } + } + QString cleanLabel = label; cleanLabel.remove(QLatin1Char('&'));