This commit is contained in:
RickyRister 2025-01-03 20:39:48 -08:00
parent 027dbbeb7e
commit 6d4977ba13
2 changed files with 11 additions and 19 deletions

View file

@ -33,7 +33,7 @@ ZoneViewZone::ZoneViewZone(Player *_p,
: SelectZone(_p, _origZone->getName(), false, false, true, parent, true), bRect(QRectF()), minRows(0), : SelectZone(_p, _origZone->getName(), false, false, true, parent, true), bRect(QRectF()), minRows(0),
numberCards(_numberCards), origZone(_origZone), revealZone(_revealZone), numberCards(_numberCards), origZone(_origZone), revealZone(_revealZone),
writeableRevealZone(_writeableRevealZone), groupBy(CardList::NoSort), sortBy(CardList::NoSort), writeableRevealZone(_writeableRevealZone), groupBy(CardList::NoSort), sortBy(CardList::NoSort),
isReversed(_isReversed), firstCardId(-1), previousOrigSize(-1) isReversed(_isReversed)
{ {
if (!(revealZone && !writeableRevealZone)) { if (!(revealZone && !writeableRevealZone)) {
origZone->getViews().append(this); origZone->getViews().append(this);
@ -102,18 +102,14 @@ void ZoneViewZone::zoneDumpReceived(const Response &r)
auto cardProviderId = QString::fromStdString(cardInfo.provider_id()); auto cardProviderId = QString::fromStdString(cardInfo.provider_id());
auto *card = new CardItem(player, this, cardName, cardProviderId, cardInfo.id(), revealZone, this); auto *card = new CardItem(player, this, cardName, cardProviderId, cardInfo.id(), revealZone, this);
cards.insert(i, card); cards.insert(i, card);
if (i == 0) {
firstCardId = cardInfo.id();
}
} }
previousOrigSize = origZone->getCards().size();
updateCardIds(INITIALIZE, -1); updateCardIds(INITIALIZE);
reorganizeCards(); reorganizeCards();
emit cardCountChanged(); emit cardCountChanged();
} }
void ZoneViewZone::updateCardIds(CardAction action, int index) void ZoneViewZone::updateCardIds(CardAction action)
{ {
int cardCount = cards.size(); int cardCount = cards.size();
if (!origZone->contentsKnown()) { if (!origZone->contentsKnown()) {
@ -124,10 +120,8 @@ void ZoneViewZone::updateCardIds(CardAction action, int index)
auto startId = 0; auto startId = 0;
if (isReversed) { if (isReversed) {
startId = origZone->getCards().size() - cards.size();
qDebug() << "TRACK" << "action" << action << "index" << index << "startId" << startId;
// these get called after this zone's card list updates but before parent zone's card list updates // these get called after this zone's card list updates but before parent zone's card list updates
startId = origZone->getCards().size() - cards.size();
switch (action) { switch (action) {
case INITIALIZE: case INITIALIZE:
break; break;
@ -290,7 +284,7 @@ void ZoneViewZone::addCardImpl(CardItem *card, int x, int /*y*/)
if (x != 0) { if (x != 0) {
cards.append(card); cards.append(card);
} else { } else {
updateCardIds(ADD_CARD, x); updateCardIds(ADD_CARD);
reorganizeCards(); reorganizeCards();
return; return;
} }
@ -300,7 +294,8 @@ void ZoneViewZone::addCardImpl(CardItem *card, int x, int /*y*/)
card->setParentItem(this); card->setParentItem(this);
card->update(); card->update();
updateCardIds(ADD_CARD, x);
updateCardIds(ADD_CARD);
reorganizeCards(); reorganizeCards();
} }
@ -326,10 +321,9 @@ void ZoneViewZone::handleDropEvent(const QList<CardDragItem *> &dragItems,
void ZoneViewZone::removeCard(int position) void ZoneViewZone::removeCard(int position)
{ {
if (isReversed) { if (isReversed) {
int initialPos = position;
position -= cards.first()->getId(); position -= cards.first()->getId();
if (position < 0 || position >= cards.size()) { if (position < 0 || position >= cards.size()) {
updateCardIds(REMOVE_CARD, initialPos); updateCardIds(REMOVE_CARD);
reorganizeCards(); reorganizeCards();
return; return;
} }
@ -341,7 +335,7 @@ void ZoneViewZone::removeCard(int position)
CardItem *card = cards.takeAt(position); CardItem *card = cards.takeAt(position);
card->deleteLater(); card->deleteLater();
updateCardIds(REMOVE_CARD, position); updateCardIds(REMOVE_CARD);
reorganizeCards(); reorganizeCards();
} }

View file

@ -35,8 +35,6 @@ private:
CardList::SortOption groupBy, sortBy; CardList::SortOption groupBy, sortBy;
bool pileView; bool pileView;
bool isReversed; bool isReversed;
int firstCardId;
int previousOrigSize;
enum CardAction enum CardAction
{ {
@ -45,7 +43,7 @@ private:
REMOVE_CARD REMOVE_CARD
}; };
void updateCardIds(CardAction action, int index); void updateCardIds(CardAction action);
struct GridSize struct GridSize
{ {