diff --git a/cockatrice/resources/help/deck_search.md b/cockatrice/resources/help/deck_search.md index cb06a40a6..e2fa4fe37 100644 --- a/cockatrice/resources/help/deck_search.md +++ b/cockatrice/resources/help/deck_search.md @@ -4,9 +4,9 @@ The search bar recognizes a set of special commands.
In this list of examples below, each entry has an explanation and can be clicked to test the query. Note that all searches are case insensitive.
-
Filename:
-
[red deck wins](#red deck wins) (Any deck filename containing the words red, deck, and wins)
-
["red deck wins"](#%22red deck wins%22) (Any deck filename containing the exact phrase "red deck wins")
+
Display Name (The deck name, or the filename if the deck name isn't set):
+
[red deck wins](#red deck wins) (Any deck with a display name containing the words red, deck, and wins)
+
["red deck wins"](#%22red deck wins%22) (Any deck with a display name containing the exact phrase "red deck wins")
Deck Contents (Uses [card search expressions](#cardSearchSyntaxHelp)):
[[plains]] (Any deck that contains at least one card with "plains" in its name)
diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index 7fc5c729f..cce08ef8f 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -182,6 +182,15 @@ QString DeckPreviewWidget::getColorIdentity() return colorIdentity; } +/** + * The display name is given by the deck name, or the filename if the deck name is not set. + */ +QString DeckPreviewWidget::getDisplayName() const +{ + return deckLoader->getName().isEmpty() ? QFileInfo(deckLoader->getLastFileName()).fileName() + : deckLoader->getName(); +} + void DeckPreviewWidget::setFilePath(const QString &_filePath) { filePath = _filePath; @@ -193,8 +202,7 @@ void DeckPreviewWidget::setFilePath(const QString &_filePath) */ void DeckPreviewWidget::refreshBannerCardText() { - bannerCardDisplayWidget->setOverlayText( - deckLoader->getName().isEmpty() ? QFileInfo(deckLoader->getLastFileName()).fileName() : deckLoader->getName()); + bannerCardDisplayWidget->setOverlayText(getDisplayName()); refreshBannerCardToolTip(); } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h index 7c0ff1ad4..c6c6d377d 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h @@ -27,6 +27,7 @@ public: const QString &_filePath); void retranslateUi(); QString getColorIdentity(); + QString getDisplayName() const; VisualDeckStorageWidget *visualDeckStorageWidget; QVBoxLayout *layout; diff --git a/cockatrice/src/game/filters/deck_filter_string.cpp b/cockatrice/src/game/filters/deck_filter_string.cpp index 52aa15c71..13c39910d 100644 --- a/cockatrice/src/game/filters/deck_filter_string.cpp +++ b/cockatrice/src/game/filters/deck_filter_string.cpp @@ -131,8 +131,8 @@ static void setupParserRules() search["GenericQuery"] = [](const peg::SemanticValues &sv) -> DeckFilter { auto name = std::any_cast(sv[0]); - return [=](const DeckPreviewWidget *, const ExtraDeckSearchInfo &info) { - return info.fileSearchName.contains(name, Qt::CaseInsensitive); + return [=](const DeckPreviewWidget *deck, const ExtraDeckSearchInfo &) { + return deck->getDisplayName().contains(name, Qt::CaseInsensitive); }; }; }