Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
deck_analytics_widget.h
Go to the documentation of this file.
1
6
7#ifndef DECK_ANALYTICS_WIDGET_H
8#define DECK_ANALYTICS_WIDGET_H
9
10#include <QJsonObject>
11#include <QList>
12#include <QString>
13#include <QVector>
14#include <QWidget>
15#include <qtmetamacros.h>
16
17class LayoutInspector;
20class FlowWidget;
21class QCheckBox;
22class QPushButton;
23class QScrollArea;
24class QVBoxLayout;
25class ResizablePanel;
26
27class DeckAnalyticsWidget : public QWidget
28{
29 Q_OBJECT
30
31public slots:
32 void updateDisplays();
33
34public:
35 explicit DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer);
36 void retranslateUi();
37 void includeSideboardChanged(bool checked);
38
39private slots:
40 void onAddPanel();
41 void onRemoveSelected();
42 void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore);
43 void saveLayout();
44 void loadLayout();
45 void addDefaultPanels();
46 bool loadLayoutInternal();
47 void clearPanels();
48
49protected:
50 bool eventFilter(QObject *obj, QEvent *event) override;
51 void selectWrapper(ResizablePanel *panel);
52 int indexOfSelectedWrapper() const;
53
54private:
55 void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg = {});
56
57 QVBoxLayout *layout;
59
60 QPushButton *addButton;
61 QPushButton *removeButton;
62 QPushButton *saveButton;
63 QPushButton *loadButton;
64
66
67 QScrollArea *scrollArea;
69 QVBoxLayout *panelLayout;
70
71 QVector<ResizablePanel *> panelWrappers;
73
75 LayoutInspector *insp = nullptr;
76};
77
78#endif // DECK_ANALYTICS_WIDGET_H
Definition abstract_analytics_panel_widget.h:18
void includeSideboardChanged(bool checked)
Definition deck_analytics_widget.cpp:84
void selectWrapper(ResizablePanel *panel)
Definition deck_analytics_widget.cpp:264
ResizablePanel * selectedWrapper
Definition deck_analytics_widget.h:72
LayoutInspector * insp
Definition deck_analytics_widget.h:75
QWidget * panelContainer
Definition deck_analytics_widget.h:68
int indexOfSelectedWrapper() const
Definition deck_analytics_widget.cpp:282
bool eventFilter(QObject *obj, QEvent *event) override
Definition deck_analytics_widget.cpp:251
void onAddPanel()
Definition deck_analytics_widget.cpp:95
FlowWidget * controlContainer
Definition deck_analytics_widget.h:58
void saveLayout()
Definition deck_analytics_widget.cpp:154
void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore)
Definition deck_analytics_widget.cpp:290
void loadLayout()
Definition deck_analytics_widget.cpp:170
QCheckBox * includeSideboardCheckBox
Definition deck_analytics_widget.h:65
QPushButton * addButton
Definition deck_analytics_widget.h:60
QVBoxLayout * layout
Definition deck_analytics_widget.h:57
QScrollArea * scrollArea
Definition deck_analytics_widget.h:67
QPushButton * loadButton
Definition deck_analytics_widget.h:63
QPushButton * removeButton
Definition deck_analytics_widget.h:61
bool loadLayoutInternal()
Definition deck_analytics_widget.cpp:203
void retranslateUi()
Definition deck_analytics_widget.cpp:75
void addDefaultPanels()
Definition deck_analytics_widget.cpp:177
void updateDisplays()
Definition deck_analytics_widget.cpp:90
QPushButton * saveButton
Definition deck_analytics_widget.h:62
DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition deck_analytics_widget.cpp:27
void clearPanels()
Definition deck_analytics_widget.cpp:242
QVector< ResizablePanel * > panelWrappers
Definition deck_analytics_widget.h:71
void onRemoveSelected()
Definition deck_analytics_widget.cpp:141
void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg={})
Definition deck_analytics_widget.cpp:121
DeckListStatisticsAnalyzer * statsAnalyzer
Definition deck_analytics_widget.h:74
QVBoxLayout * panelLayout
Definition deck_analytics_widget.h:69
Definition deck_list_statistics_analyzer.h:26
Definition flow_widget.h:27
Definition resizable_panel.h:15