Cleaned up decklist code

This commit is contained in:
Max-Wilhelm Bruker 2012-01-21 16:41:46 +01:00
parent ab11a40863
commit 16541141bd
11 changed files with 144 additions and 487 deletions

View file

@ -318,20 +318,19 @@ void DeckViewScene::rebuildTree()
}
}
void DeckViewScene::applySideboardPlan(const QList<MoveCardToZone *> &plan)
void DeckViewScene::applySideboardPlan(const QList<MoveCard_ToZone> &plan)
{
for (int i = 0; i < plan.size(); ++i) {
MoveCardToZone *m = plan[i];
DeckViewCardContainer *start = cardContainers.value(m->getStartZone());
DeckViewCardContainer *target = cardContainers.value(m->getTargetZone());
const MoveCard_ToZone &m = plan[i];
DeckViewCardContainer *start = cardContainers.value(QString::fromStdString(m.start_zone()));
DeckViewCardContainer *target = cardContainers.value(QString::fromStdString(m.target_zone()));
if (!start || !target)
continue;
DeckViewCard *card = 0;
const QList<DeckViewCard *> &cardList = start->getCards();
for (int j = 0; j < cardList.size(); ++j)
if (cardList[j]->getName() == m->getCardName()) {
if (cardList[j]->getName() == QString::fromStdString(m.card_name())) {
card = cardList[j];
break;
}
@ -414,16 +413,21 @@ void DeckViewScene::updateContents()
emit sideboardPlanChanged();
}
QList<MoveCardToZone *> DeckViewScene::getSideboardPlan() const
QList<MoveCard_ToZone> DeckViewScene::getSideboardPlan() const
{
QList<MoveCardToZone *> result;
QList<MoveCard_ToZone> result;
QMapIterator<QString, DeckViewCardContainer *> containerIterator(cardContainers);
while (containerIterator.hasNext()) {
DeckViewCardContainer *cont = containerIterator.next().value();
const QList<DeckViewCard *> cardList = cont->getCards();
for (int i = 0; i < cardList.size(); ++i)
if (cardList[i]->getOriginZone() != cont->getName())
result.append(new MoveCardToZone(cardList[i]->getName(), cardList[i]->getOriginZone(), cont->getName()));
if (cardList[i]->getOriginZone() != cont->getName()) {
MoveCard_ToZone m;
m.set_card_name(cardList[i]->getName().toStdString());
m.set_start_zone(cardList[i]->getOriginZone().toStdString());
m.set_target_zone(cont->getName().toStdString());
result.append(m);
}
}
return result;
}

View file

@ -8,6 +8,8 @@
#include <QPixmap>
#include "abstractcarddragitem.h"
#include "pb/move_card_to_zone.pb.h"
class DeckList;
class InnerDecklistNode;
class CardInfo;
@ -80,7 +82,7 @@ private:
QMap<QString, DeckViewCardContainer *> cardContainers;
qreal optimalAspectRatio;
void rebuildTree();
void applySideboardPlan(const QList<MoveCardToZone *> &plan);
void applySideboardPlan(const QList<MoveCard_ToZone> &plan);
public:
DeckViewScene(QObject *parent = 0);
~DeckViewScene();
@ -90,7 +92,7 @@ public:
void setOptimalAspectRatio(qreal _optimalAspectRatio) { optimalAspectRatio = _optimalAspectRatio; }
void rearrangeItems();
void updateContents();
QList<MoveCardToZone *> getSideboardPlan() const;
QList<MoveCard_ToZone> getSideboardPlan() const;
};
class DeckView : public QGraphicsView {
@ -108,7 +110,7 @@ public:
DeckView(QWidget *parent = 0);
void setDeck(DeckList *_deck);
void setLocked(bool _locked) { deckViewScene->setLocked(_locked); }
QList<MoveCardToZone *> getSideboardPlan() const { return deckViewScene->getSideboardPlan(); }
QList<MoveCard_ToZone> getSideboardPlan() const { return deckViewScene->getSideboardPlan(); }
};
#endif

View file

@ -175,9 +175,9 @@ void DeckViewContainer::readyStart()
void DeckViewContainer::sideboardPlanChanged()
{
Command_SetSideboardPlan cmd;
QList<MoveCardToZone *> newPlan = deckView->getSideboardPlan();
const QList<MoveCard_ToZone> &newPlan = deckView->getSideboardPlan();
for (int i = 0; i < newPlan.size(); ++i)
cmd.add_move_list()->CopyFrom(newPlan[i]->toPB());
cmd.add_move_list()->CopyFrom(newPlan[i]);
static_cast<TabGame *>(parent())->sendGameCommand(cmd, playerId);
}