mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 08:22:15 -07:00
Move new method to DeckListModel so we don't have to include CardDatabaseManager in common.
This commit is contained in:
parent
a282fe2042
commit
12f8f1a533
5 changed files with 73 additions and 67 deletions
|
|
@ -204,9 +204,9 @@ void VisualDeckEditorWidget::populateCards()
|
||||||
|
|
||||||
if (!deckListModel)
|
if (!deckListModel)
|
||||||
return;
|
return;
|
||||||
DeckList *decklist = deckListModel->getDeckList();
|
|
||||||
mainDeckCards = decklist->getCardsAsCardInfoPtrsForZone(DECK_ZONE_MAIN);
|
mainDeckCards = deckListModel->getCardsAsCardInfoPtrsForZone(DECK_ZONE_MAIN);
|
||||||
sideboardCards = decklist->getCardsAsCardInfoPtrsForZone(DECK_ZONE_SIDE);
|
sideboardCards = deckListModel->getCardsAsCardInfoPtrsForZone(DECK_ZONE_SIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualDeckEditorWidget::sortCardList(const QStringList properties, Qt::SortOrder order = Qt::AscendingOrder)
|
void VisualDeckEditorWidget::sortCardList(const QStringList properties, Qt::SortOrder order = Qt::AscendingOrder)
|
||||||
|
|
|
||||||
|
|
@ -484,6 +484,74 @@ void DeckListModel::setDeckList(DeckLoader *_deck)
|
||||||
rebuildTree();
|
rebuildTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<CardInfoPtr> *DeckListModel::getCardsAsCardInfoPtrs() const
|
||||||
|
{
|
||||||
|
QList<CardInfoPtr> *cards = new QList<CardInfoPtr>();
|
||||||
|
DeckList *decklist = getDeckList();
|
||||||
|
if (!decklist) {
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
InnerDecklistNode *listRoot = decklist->getRoot();
|
||||||
|
if (!listRoot)
|
||||||
|
return cards;
|
||||||
|
|
||||||
|
for (int i = 0; i < listRoot->size(); i++) {
|
||||||
|
InnerDecklistNode *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
|
||||||
|
if (!currentZone)
|
||||||
|
continue;
|
||||||
|
for (int j = 0; j < currentZone->size(); j++) {
|
||||||
|
DecklistCardNode *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
|
||||||
|
if (!currentCard)
|
||||||
|
continue;
|
||||||
|
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||||
|
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||||
|
currentCard->getName(), currentCard->getCardProviderId());
|
||||||
|
if (info) {
|
||||||
|
cards->append(info);
|
||||||
|
} else {
|
||||||
|
qDebug() << "Card not found in database!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<CardInfoPtr> *DeckListModel::getCardsAsCardInfoPtrsForZone(QString zoneName) const
|
||||||
|
{
|
||||||
|
QList<CardInfoPtr> *cards = new QList<CardInfoPtr>();
|
||||||
|
DeckList *decklist = getDeckList();
|
||||||
|
if (!decklist) {
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
InnerDecklistNode *listRoot = decklist->getRoot();
|
||||||
|
if (!listRoot)
|
||||||
|
return cards;
|
||||||
|
|
||||||
|
for (int i = 0; i < listRoot->size(); i++) {
|
||||||
|
InnerDecklistNode *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
|
||||||
|
if (!currentZone)
|
||||||
|
continue;
|
||||||
|
if (currentZone->getName() == zoneName) {
|
||||||
|
for (int j = 0; j < currentZone->size(); j++) {
|
||||||
|
DecklistCardNode *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
|
||||||
|
if (!currentCard)
|
||||||
|
continue;
|
||||||
|
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||||
|
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||||
|
currentCard->getName(), currentCard->getCardProviderId());
|
||||||
|
if (info) {
|
||||||
|
cards->append(info);
|
||||||
|
} else {
|
||||||
|
qDebug() << "Card not found in database!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
|
||||||
void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *node)
|
void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *node)
|
||||||
{
|
{
|
||||||
const int totalColumns = 2;
|
const int totalColumns = 2;
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,8 @@ public:
|
||||||
return deckList;
|
return deckList;
|
||||||
}
|
}
|
||||||
void setDeckList(DeckLoader *_deck);
|
void setDeckList(DeckLoader *_deck);
|
||||||
|
QList<CardInfoPtr> *getCardsAsCardInfoPtrs() const;
|
||||||
|
QList<CardInfoPtr> *getCardsAsCardInfoPtrsForZone(QString zoneName) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DeckLoader *deckList;
|
DeckLoader *deckList;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
#include "decklist.h"
|
#include "decklist.h"
|
||||||
|
|
||||||
#include "../cockatrice/src/game/cards/card_database_manager.h"
|
|
||||||
|
|
||||||
#include <QCryptographicHash>
|
#include <QCryptographicHash>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
|
@ -852,66 +850,6 @@ QMap<QString, QString> DeckList::getCardListWithProviderId() const
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<CardInfoPtr> *DeckList::getCardsAsCardInfoPtrs() const
|
|
||||||
{
|
|
||||||
QList<CardInfoPtr> *cards = new QList<CardInfoPtr>();
|
|
||||||
InnerDecklistNode *listRoot = getRoot();
|
|
||||||
if (!listRoot)
|
|
||||||
return cards;
|
|
||||||
|
|
||||||
for (int i = 0; i < listRoot->size(); i++) {
|
|
||||||
InnerDecklistNode *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
|
|
||||||
if (!currentZone)
|
|
||||||
continue;
|
|
||||||
for (int j = 0; j < currentZone->size(); j++) {
|
|
||||||
DecklistCardNode *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
|
|
||||||
if (!currentCard)
|
|
||||||
continue;
|
|
||||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
|
||||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
|
||||||
currentCard->getName(), currentCard->getCardProviderId());
|
|
||||||
if (info) {
|
|
||||||
cards->append(info);
|
|
||||||
} else {
|
|
||||||
qDebug() << "Card not found in database!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cards;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<CardInfoPtr> *DeckList::getCardsAsCardInfoPtrsForZone(QString zoneName) const
|
|
||||||
{
|
|
||||||
QList<CardInfoPtr> *cards = new QList<CardInfoPtr>();
|
|
||||||
InnerDecklistNode *listRoot = getRoot();
|
|
||||||
if (!listRoot)
|
|
||||||
return cards;
|
|
||||||
|
|
||||||
for (int i = 0; i < listRoot->size(); i++) {
|
|
||||||
InnerDecklistNode *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
|
|
||||||
if (!currentZone)
|
|
||||||
continue;
|
|
||||||
if (currentZone->getName() == zoneName) {
|
|
||||||
for (int j = 0; j < currentZone->size(); j++) {
|
|
||||||
DecklistCardNode *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
|
|
||||||
if (!currentCard)
|
|
||||||
continue;
|
|
||||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
|
||||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
|
||||||
currentCard->getName(), currentCard->getCardProviderId());
|
|
||||||
if (info) {
|
|
||||||
cards->append(info);
|
|
||||||
} else {
|
|
||||||
qDebug() << "Card not found in database!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cards;
|
|
||||||
}
|
|
||||||
|
|
||||||
int DeckList::getSideboardSize() const
|
int DeckList::getSideboardSize() const
|
||||||
{
|
{
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
|
||||||
|
|
@ -366,8 +366,6 @@ public:
|
||||||
}
|
}
|
||||||
QStringList getCardList() const;
|
QStringList getCardList() const;
|
||||||
QMap<QString, QString> getCardListWithProviderId() const;
|
QMap<QString, QString> getCardListWithProviderId() const;
|
||||||
QList<CardInfoPtr> *getCardsAsCardInfoPtrs() const;
|
|
||||||
QList<CardInfoPtr> *getCardsAsCardInfoPtrsForZone(QString zoneName) const;
|
|
||||||
|
|
||||||
int getSideboardSize() const;
|
int getSideboardSize() const;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue