mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-14 22:42:14 -07:00
Printing Selector Bulk Editor (#5993)
* Bulk editing dialog. * Bulk editing dialog functionality. * Performance fixes, hide sets which can't offer any new cards, better dragging indicators. * Update count label. * Add a display for modified cards. * Include long setName in checkbox label * Fix drag & drop. * New layout updating? * Re-layout, add instruction label. * Qt version check. * Add buttons to clear and set all to preferred printing. * tr UI * Add the button to the print selector instead. * Qt5 compatibility stuff. * Qt5 compatibility stuff again. * Toggled works, I guess. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
f4569c513f
commit
53e27ff4d3
12 changed files with 848 additions and 9 deletions
|
|
@ -312,6 +312,44 @@ QString DeckLoader::exportDeckToDecklist(DecklistWebsite website)
|
|||
return deckString;
|
||||
}
|
||||
|
||||
// This struct is here to support the forEachCard function call, defined in decklist.
|
||||
// It requires a function to be called for each card, and it will set the providerId to the preferred printing.
|
||||
struct SetProviderIdToPreferred
|
||||
{
|
||||
// Main operator for struct, allowing the foreachcard to work.
|
||||
SetProviderIdToPreferred()
|
||||
{
|
||||
}
|
||||
|
||||
void operator()(const InnerDecklistNode *node, DecklistCardNode *card) const
|
||||
{
|
||||
Q_UNUSED(node);
|
||||
CardInfoPerSet preferredSet = CardDatabaseManager::getInstance()->getSpecificSetForCard(
|
||||
card->getName(),
|
||||
CardDatabaseManager::getInstance()->getPreferredPrintingProviderIdForCard(card->getName()));
|
||||
QString providerId = preferredSet.getProperty("uuid");
|
||||
QString setShortName = preferredSet.getPtr()->getShortName();
|
||||
QString collectorNumber = preferredSet.getProperty("num");
|
||||
|
||||
card->setCardProviderId(providerId);
|
||||
card->setCardCollectorNumber(collectorNumber);
|
||||
card->setCardSetShortName(setShortName);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* This function iterates through each card in the decklist and sets the providerId
|
||||
* on each card based on its set name and collector number.
|
||||
*/
|
||||
void DeckLoader::setProviderIdToPreferredPrinting()
|
||||
{
|
||||
// Set up the struct to call.
|
||||
SetProviderIdToPreferred setProviderIdToPreferred;
|
||||
|
||||
// Call the forEachCard method for each card in the deck
|
||||
forEachCard(setProviderIdToPreferred);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the providerId on each card in the decklist based on its set name and collector number.
|
||||
*/
|
||||
|
|
@ -332,6 +370,25 @@ void DeckLoader::resolveSetNameAndNumberToProviderID()
|
|||
forEachCard(setProviderId);
|
||||
}
|
||||
|
||||
// This struct is here to support the forEachCard function call, defined in decklist.
|
||||
// It requires a function to be called for each card, and it will set the providerId.
|
||||
struct ClearSetNameNumberAndProviderId
|
||||
{
|
||||
// Main operator for struct, allowing the foreachcard to work.
|
||||
ClearSetNameNumberAndProviderId()
|
||||
{
|
||||
}
|
||||
|
||||
void operator()(const InnerDecklistNode *node, DecklistCardNode *card) const
|
||||
{
|
||||
Q_UNUSED(node);
|
||||
// Set the providerId on the card
|
||||
card->setCardSetShortName(nullptr);
|
||||
card->setCardCollectorNumber(nullptr);
|
||||
card->setCardProviderId(nullptr);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Clears the set name and numbers on each card in the decklist.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue