Cockatrice 2026-04-21-Development-2.11.0-beta.61
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
12#include "resizable_panel.h"
13
14#include <QCheckBox>
15#include <QJsonObject>
16#include <QScrollArea>
17#include <QVBoxLayout>
18#include <QVector>
19#include <QWidget>
20
21class LayoutInspector;
22
23class DeckAnalyticsWidget : public QWidget
24{
25 Q_OBJECT
26
27public slots:
28 void updateDisplays();
29
30public:
31 explicit DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer);
32 void retranslateUi();
33 void includeSideboardChanged(bool checked);
34
35private slots:
36 void onAddPanel();
37 void onRemoveSelected();
38 void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore);
39 void saveLayout();
40 void loadLayout();
41 void addDefaultPanels();
42 bool loadLayoutInternal();
43 void clearPanels();
44
45protected:
46 bool eventFilter(QObject *obj, QEvent *event) override;
47 void selectWrapper(ResizablePanel *panel);
48 int indexOfSelectedWrapper() const;
49
50private:
51 void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg = {});
52
53 QVBoxLayout *layout;
55 QHBoxLayout *controlLayout;
56
57 QPushButton *addButton;
58 QPushButton *removeButton;
59 QPushButton *saveButton;
60 QPushButton *loadButton;
61
63
64 QScrollArea *scrollArea;
66 QVBoxLayout *panelLayout;
67
68 QVector<ResizablePanel *> panelWrappers;
70
72 LayoutInspector *insp = nullptr;
73};
74
75#endif // DECK_ANALYTICS_WIDGET_H
Definition abstract_analytics_panel_widget.h:14
void includeSideboardChanged(bool checked)
Definition deck_analytics_widget.cpp:77
void selectWrapper(ResizablePanel *panel)
Definition deck_analytics_widget.cpp:257
ResizablePanel * selectedWrapper
Definition deck_analytics_widget.h:69
LayoutInspector * insp
Definition deck_analytics_widget.h:72
QHBoxLayout * controlLayout
Definition deck_analytics_widget.h:55
QWidget * panelContainer
Definition deck_analytics_widget.h:65
int indexOfSelectedWrapper() const
Definition deck_analytics_widget.cpp:275
QWidget * controlContainer
Definition deck_analytics_widget.h:54
bool eventFilter(QObject *obj, QEvent *event) override
Definition deck_analytics_widget.cpp:244
void onAddPanel()
Definition deck_analytics_widget.cpp:88
void saveLayout()
Definition deck_analytics_widget.cpp:147
void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore)
Definition deck_analytics_widget.cpp:283
void loadLayout()
Definition deck_analytics_widget.cpp:163
QCheckBox * includeSideboardCheckBox
Definition deck_analytics_widget.h:62
QPushButton * addButton
Definition deck_analytics_widget.h:57
QVBoxLayout * layout
Definition deck_analytics_widget.h:53
QScrollArea * scrollArea
Definition deck_analytics_widget.h:64
QPushButton * loadButton
Definition deck_analytics_widget.h:60
QPushButton * removeButton
Definition deck_analytics_widget.h:58
bool loadLayoutInternal()
Definition deck_analytics_widget.cpp:196
void retranslateUi()
Definition deck_analytics_widget.cpp:68
void addDefaultPanels()
Definition deck_analytics_widget.cpp:170
void updateDisplays()
Definition deck_analytics_widget.cpp:83
QPushButton * saveButton
Definition deck_analytics_widget.h:59
DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition deck_analytics_widget.cpp:20
void clearPanels()
Definition deck_analytics_widget.cpp:235
QVector< ResizablePanel * > panelWrappers
Definition deck_analytics_widget.h:68
void onRemoveSelected()
Definition deck_analytics_widget.cpp:134
void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg={})
Definition deck_analytics_widget.cpp:114
DeckListStatisticsAnalyzer * statsAnalyzer
Definition deck_analytics_widget.h:71
QVBoxLayout * panelLayout
Definition deck_analytics_widget.h:66
Definition deck_list_statistics_analyzer.h:24
Definition resizable_panel.h:19