[VDE] Consolidate statistical analysis into a separate object (#6392)

* [VDE] Consolidate statistical analysis into a separate object so multiple widgets can re-use calculations and calculation is only performed once on data change.

* [VDE] Lint.

* [VDE] Move struct up to not confuse compiler.

* [VDE] NoDiscards

* [VDE] Move variables

* [VDE] Lint.
This commit is contained in:
BruebachL 2025-12-02 13:51:08 +01:00 committed by GitHub
parent 364d0ca52b
commit f0ebd28148
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 215 additions and 202 deletions

View file

@ -8,6 +8,7 @@
#define MANA_BASE_WIDGET_H
#include "../general/display/banner_widget.h"
#include "deck_list_statistics_analyzer.h"
#include <QHBoxLayout>
#include <QWidget>
@ -20,21 +21,15 @@ class ManaBaseWidget : public QWidget
Q_OBJECT
public:
explicit ManaBaseWidget(QWidget *parent, DeckListModel *deckListModel);
QHash<QString, int> analyzeManaBase();
explicit ManaBaseWidget(QWidget *parent, DeckListStatisticsAnalyzer *deckStatAnalyzer);
void updateDisplay();
QHash<QString, int> determineManaProduction(const QString &manaString);
void mergeManaCounts(QHash<QString, int> &manaCounts1, const QHash<QString, int> &manaCounts2);
public slots:
void setDeckModel(DeckListModel *deckModel);
void retranslateUi();
private:
DeckListModel *deckListModel;
DeckListStatisticsAnalyzer *deckStatAnalyzer;
BannerWidget *bannerWidget;
QHash<QString, int> manaBaseMap;
QVBoxLayout *layout;
QWidget *barContainer;
QHBoxLayout *barLayout;