Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
abstract_analytics_panel_widget.h
Go to the documentation of this file.
1#ifndef COCKATRICE_DECK_ANALYTICS_WIDGET_BASE_H
2#define COCKATRICE_DECK_ANALYTICS_WIDGET_BASE_H
3
5
6#include <QJsonObject>
7#include <QString>
8#include <QWidget>
9#include <qtmetamacros.h>
10
12class QDialog;
13class QHBoxLayout;
14class QPushButton;
15class QVBoxLayout;
16
17class AbstractAnalyticsPanelWidget : public QWidget
18{
19 Q_OBJECT
20public slots:
21 virtual void updateDisplay() = 0;
22 // Widgets must return a config dialog
23 virtual QDialog *createConfigDialog(QWidget *parent) = 0;
24
25public:
27
28 void setDisplayTitle(const QString &title)
29 {
30 displayTitle = title;
31 if (bannerWidget) {
33 }
34 }
35
36 QString displayTitleText() const
37 {
38 return displayTitle;
39 }
40
41 virtual QJsonObject saveConfig() const
42 {
43 return {};
44 }
45 virtual void loadConfig(const QJsonObject &)
46 {
47 }
48
49 // Unified helper to run config dialog and update widget
51
52 // Dialog → JSON must be supplied by each subclass
53 virtual QJsonObject extractConfigFromDialog(QDialog *dlg) const = 0;
54
55protected:
57 QVBoxLayout *layout;
60 QString displayTitle;
62 QPushButton *configureButton;
63};
64
65#endif // COCKATRICE_DECK_ANALYTICS_WIDGET_BASE_H
virtual QDialog * createConfigDialog(QWidget *parent)=0
void setDisplayTitle(const QString &title)
Definition abstract_analytics_panel_widget.h:28
DeckListStatisticsAnalyzer * analyzer
Definition abstract_analytics_panel_widget.h:56
virtual QJsonObject extractConfigFromDialog(QDialog *dlg) const =0
QVBoxLayout * layout
Definition abstract_analytics_panel_widget.h:57
bool applyConfigFromDialog()
Definition abstract_analytics_panel_widget.cpp:41
QPushButton * configureButton
Definition abstract_analytics_panel_widget.h:62
virtual QJsonObject saveConfig() const
Definition abstract_analytics_panel_widget.h:41
QString displayTitle
Definition abstract_analytics_panel_widget.h:60
virtual void loadConfig(const QJsonObject &)
Definition abstract_analytics_panel_widget.h:45
AbstractAnalyticsPanelWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition abstract_analytics_panel_widget.cpp:15
QWidget * bannerAndSettingsContainer
Definition abstract_analytics_panel_widget.h:58
BannerWidget * bannerWidget
Definition abstract_analytics_panel_widget.h:61
QString displayTitleText() const
Definition abstract_analytics_panel_widget.h:36
virtual void updateDisplay()=0
QHBoxLayout * bannerAndSettingsLayout
Definition abstract_analytics_panel_widget.h:59
Definition banner_widget.h:19
void setText(const QString &text) const
Definition banner_widget.cpp:54
Definition deck_list_statistics_analyzer.h:26