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!"; }