Cockatrice/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.h
BruebachL f0ebd28148
[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.
2025-12-02 13:51:08 +01:00

44 lines
1 KiB
C++

/**
* @file deck_analytics_widget.h
* @ingroup DeckEditorAnalyticsWidgets
* @brief TODO: Document this.
*/
#ifndef DECK_ANALYTICS_WIDGET_H
#define DECK_ANALYTICS_WIDGET_H
#include "mana_base_widget.h"
#include "mana_curve_widget.h"
#include "mana_devotion_widget.h"
#include <QHBoxLayout>
#include <QScrollArea>
#include <QWidget>
#include <libcockatrice/models/deck_list/deck_list_model.h>
class DeckAnalyticsWidget : public QWidget
{
Q_OBJECT
public:
explicit DeckAnalyticsWidget(QWidget *parent, DeckListModel *deckListModel);
void setDeckList(const DeckList &_deckListModel);
std::map<int, int> analyzeManaCurve();
void refreshDisplays();
private:
DeckListModel *deckListModel;
DeckListStatisticsAnalyzer *deckListStatisticsAnalyzer;
QVBoxLayout *mainLayout;
QWidget *container;
QVBoxLayout *containerLayout;
QScrollArea *scrollArea;
ManaCurveWidget *manaCurveWidget;
ManaDevotionWidget *manaDevotionWidget;
ManaBaseWidget *manaBaseWidget;
};
#endif // DECK_ANALYTICS_WIDGET_H