From bc26e195648fe4444494d0c992f1163ef93f9f69 Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Fri, 25 Sep 2026 08:31:38 +0200 Subject: [PATCH] [DeckEditor] Highlight card name in VDE quick search after adding (#7350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukas BrĂ¼bach --- .../visual_deck_editor_widget.cpp | 30 +++++++++++-------- .../visual_deck_editor_widget.h | 1 + 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp index 064fbed5d..60e354d6e 100644 --- a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -82,13 +83,8 @@ void VisualDeckEditorWidget::initializeSearchBarAndCompleter() searchBar = new QLineEdit(searchContainer); searchContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); connect(searchBar, &QLineEdit::returnPressed, this, [=, this]() { - if (!searchBar->hasFocus()) { - return; - } - - ExactCard card = CardDatabaseManager::query()->getCard({searchBar->text()}); - if (card) { - emit cardAdditionRequested(card); + if (searchBar->hasFocus()) { + addCardFromSearch(); } }); @@ -133,16 +129,24 @@ void VisualDeckEditorWidget::initializeSearchBarAndCompleter() // Search button functionality searchPushButton = new CompactPushButton(searchContainer); searchPushButton->setButtonIcon(themePixmap(QStringLiteral("icons/search"))); - connect(searchPushButton, &QPushButton::clicked, this, [=, this]() { - ExactCard card = CardDatabaseManager::query()->getCard({searchBar->text()}); - if (card) { - emit cardAdditionRequested(card); - } - }); + connect(searchPushButton, &QPushButton::clicked, this, [this] { addCardFromSearch(); }); searchLayout->addWidget(searchPushButton); } +void VisualDeckEditorWidget::addCardFromSearch() +{ + ExactCard card = CardDatabaseManager::query()->getCard({searchBar->text()}); + if (!card) { + return; + } + + emit cardAdditionRequested(card); + + searchBar->setFocus(); + QTimer::singleShot(0, searchBar, [this] { searchBar->setSelection(0, searchBar->text().length()); }); +} + void VisualDeckEditorWidget::initializeDisplayOptionsWidget() { displayOptionsWidget = new VisualDeckDisplayOptionsWidget(this); diff --git a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.h b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.h index ac0d07efd..cc045fca2 100644 --- a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.h +++ b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.h @@ -78,6 +78,7 @@ signals: protected: void initializeSearchBarAndCompleter(); + void addCardFromSearch(); void initializeDisplayOptionsWidget(); void initializeDisplayOptionsAndSearchWidget(); void initializeScrollAreaAndZoneContainer();