Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform 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 <QJsonObject>
15#include <QScrollArea>
16#include <QVBoxLayout>
17#include <QVector>
18#include <QWidget>
19
20class LayoutInspector;
21
22class DeckAnalyticsWidget : public QWidget
23{
24 Q_OBJECT
25
26public slots:
27 void updateDisplays();
28
29public:
30 explicit DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer);
31 void retranslateUi();
32
33private slots:
34 void onAddPanel();
35 void onRemoveSelected();
36 void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore);
37 void saveLayout();
38 void loadLayout();
39 void addDefaultPanels();
40 bool loadLayoutInternal();
41 void clearPanels();
42
43protected:
44 bool eventFilter(QObject *obj, QEvent *event) override;
45 void selectWrapper(ResizablePanel *panel);
46 int indexOfSelectedWrapper() const;
47
48private:
49 void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg = {});
50
51 QVBoxLayout *layout;
53 QHBoxLayout *controlLayout;
54
55 QPushButton *addButton;
56 QPushButton *removeButton;
57 QPushButton *saveButton;
58 QPushButton *loadButton;
59
60 QScrollArea *scrollArea;
62 QVBoxLayout *panelLayout;
63
64 QVector<ResizablePanel *> panelWrappers;
66
68 LayoutInspector *insp = nullptr;
69};
70
71#endif // DECK_ANALYTICS_WIDGET_H
Definition abstract_analytics_panel_widget.h:14
void selectWrapper(ResizablePanel *panel)
Definition deck_analytics_widget.cpp:245
ResizablePanel * selectedWrapper
Definition deck_analytics_widget.h:65
LayoutInspector * insp
Definition deck_analytics_widget.h:68
QHBoxLayout * controlLayout
Definition deck_analytics_widget.h:53
QWidget * panelContainer
Definition deck_analytics_widget.h:61
int indexOfSelectedWrapper() const
Definition deck_analytics_widget.cpp:263
QWidget * controlContainer
Definition deck_analytics_widget.h:52
bool eventFilter(QObject *obj, QEvent *event) override
Definition deck_analytics_widget.cpp:232
void onAddPanel()
Definition deck_analytics_widget.cpp:76
void saveLayout()
Definition deck_analytics_widget.cpp:135
void onPanelDropped(ResizablePanel *dragged, ResizablePanel *target, bool insertBefore)
Definition deck_analytics_widget.cpp:271
void loadLayout()
Definition deck_analytics_widget.cpp:151
QPushButton * addButton
Definition deck_analytics_widget.h:55
QVBoxLayout * layout
Definition deck_analytics_widget.h:51
QScrollArea * scrollArea
Definition deck_analytics_widget.h:60
QPushButton * loadButton
Definition deck_analytics_widget.h:58
QPushButton * removeButton
Definition deck_analytics_widget.h:56
bool loadLayoutInternal()
Definition deck_analytics_widget.cpp:184
void retranslateUi()
Definition deck_analytics_widget.cpp:63
void addDefaultPanels()
Definition deck_analytics_widget.cpp:158
void updateDisplays()
Definition deck_analytics_widget.cpp:71
QPushButton * saveButton
Definition deck_analytics_widget.h:57
DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition deck_analytics_widget.cpp:20
void clearPanels()
Definition deck_analytics_widget.cpp:223
QVector< ResizablePanel * > panelWrappers
Definition deck_analytics_widget.h:64
void onRemoveSelected()
Definition deck_analytics_widget.cpp:122
void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg={})
Definition deck_analytics_widget.cpp:102
DeckListStatisticsAnalyzer * statsAnalyzer
Definition deck_analytics_widget.h:67
QVBoxLayout * panelLayout
Definition deck_analytics_widget.h:62
Definition deck_list_statistics_analyzer.h:23
Definition resizable_panel.h:19