[DeckListModel] Refactor: Don't access underlying decklist for iteration (#6427)

* [DeckListModel] Refactor: Don't access underlying decklist for iteration

* add docs

* extract method
This commit is contained in:
RickyRister 2025-12-20 04:25:30 -08:00 committed by GitHub
parent 715ee1d6fe
commit 367507e054
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 73 additions and 100 deletions

View file

@ -76,25 +76,11 @@ void VisualDeckEditorSampleHandWidget::updateDisplay()
QList<ExactCard> VisualDeckEditorSampleHandWidget::getRandomCards(int amountToGet)
{
QList<ExactCard> mainDeckCards;
QList<ExactCard> randomCards;
if (!deckListModel)
return randomCards;
DeckList *decklist = deckListModel->getDeckList();
if (!decklist)
return randomCards;
QList<const DecklistCardNode *> cardsInDeck = decklist->getCardNodes({DECK_ZONE_MAIN});
// Collect all cards in the main deck, allowing duplicates based on their count
for (auto currentCard : cardsInDeck) {
for (int k = 0; k < currentCard->getNumber(); ++k) {
ExactCard card = CardDatabaseManager::query()->getCard(currentCard->toCardRef());
if (card) {
mainDeckCards.append(card);
}
}
}
QList<ExactCard> mainDeckCards = deckListModel->getCardsForZone(DECK_ZONE_MAIN);
if (mainDeckCards.isEmpty())
return randomCards;