From 2dfe9fcf455b8d27728cc9f4ec971e869ba4b7e2 Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:29:48 +0200 Subject: [PATCH] Add as set instance on subsequent loads as well. (#6013) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukas BrĂ¼bach --- .../visual_database_display_widget.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp index ae0b0e34b..aee00b9d7 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp @@ -284,11 +284,28 @@ void VisualDatabaseDisplayWidget::loadNextPage() } // Load the next page of cards and add them to the flow widget + + QList setFilters = filterModel->getFiltersOfType(CardFilter::AttrSet); + const CardFilter *setFilter = nullptr; + if (setFilters.length() == 1) { + setFilter = setFilters.at(0); + } + for (int row = start; row < end; ++row) { QModelIndex index = databaseDisplayModel->index(row, CardDatabaseModel::NameColumn); QVariant name = databaseDisplayModel->data(index, Qt::DisplayRole); if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) { - addCard(info); + if (setFilter) { + CardInfoPerSetMap setMap = info->getSets(); + if (setMap.contains(setFilter->term())) { + for (CardInfoPerSet cardSetInstance : setMap[setFilter->term()]) { + addCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId( + name.toString(), cardSetInstance.getProperty("uuid"))); + } + } + } else { + addCard(info); + } } else { qCDebug(VisualDatabaseDisplayLog) << "Card " << name.toString() << " not found in database!"; }