Compute deck hashes lazily (#5707)

* Calculate deck hashes lazily

* rename
This commit is contained in:
RickyRister 2025-03-11 18:43:21 -07:00 committed by GitHub
parent 9b00bdcaea
commit ec536126b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 43 additions and 21 deletions

View file

@ -252,7 +252,6 @@ class DeckList : public QObject
private:
QString name, comments;
QPair<QString, QString> bannerCard;
QString deckHash;
QString lastLoadedTimestamp;
QStringList tags;
QMap<QString, SideboardPlan *> sideboardPlans;
@ -261,6 +260,11 @@ private:
void getCardListWithProviderIdHelper(InnerDecklistNode *item, QMap<QString, QString> &result) const;
InnerDecklistNode *getZoneObjFromName(const QString &zoneName);
/**
* Empty string indicates invalidated cache.
*/
mutable QString cachedDeckHash;
protected:
virtual QString getCardZoneFromName(const QString /*cardName*/, QString currentZoneName)
{
@ -363,12 +367,6 @@ public:
int getSideboardSize() const;
QString getDeckHash() const
{
return deckHash;
}
void updateDeckHash();
InnerDecklistNode *getRoot() const
{
return root;
@ -380,6 +378,9 @@ public:
const QString &cardProviderId = QString());
bool deleteNode(AbstractDecklistNode *node, InnerDecklistNode *rootNode = nullptr);
QString getDeckHash() const;
void refreshDeckHash();
/**
* Calls a given function object for each card in the deck. It must
* take a InnerDecklistNode* as its first argument and a