Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform 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 <QDialog>
7#include <QJsonObject>
8#include <QVBoxLayout>
9#include <QWidget>
10
12
13class AbstractAnalyticsPanelWidget : public QWidget
14{
15 Q_OBJECT
16public slots:
17 virtual void updateDisplay() = 0;
18 // Widgets must return a config dialog
19 virtual QDialog *createConfigDialog(QWidget *parent) = 0;
20
21public:
23
24 void setDisplayTitle(const QString &title)
25 {
26 displayTitle = title;
27 if (bannerWidget) {
28 bannerWidget->setText(displayTitle);
29 }
30 }
31
32 QString displayTitleText() const
33 {
34 return displayTitle;
35 }
36
37 virtual QJsonObject saveConfig() const
38 {
39 return {};
40 }
41 virtual void loadConfig(const QJsonObject &)
42 {
43 }
44
45 // Unified helper to run config dialog and update widget
47
48 // Dialog → JSON must be supplied by each subclass
49 virtual QJsonObject extractConfigFromDialog(QDialog *dlg) const = 0;
50
51protected:
53 QVBoxLayout *layout;
56 QString displayTitle;
58 QPushButton *configureButton;
59};
60
61#endif // COCKATRICE_DECK_ANALYTICS_WIDGET_BASE_H
TODO: Document this.
virtual QDialog * createConfigDialog(QWidget *parent)=0
void setDisplayTitle(const QString &title)
Definition abstract_analytics_panel_widget.h:24
DeckListStatisticsAnalyzer * analyzer
Definition abstract_analytics_panel_widget.h:52
virtual QJsonObject extractConfigFromDialog(QDialog *dlg) const =0
QVBoxLayout * layout
Definition abstract_analytics_panel_widget.h:53
bool applyConfigFromDialog()
Definition abstract_analytics_panel_widget.cpp:33
QPushButton * configureButton
Definition abstract_analytics_panel_widget.h:58
virtual QJsonObject saveConfig() const
Definition abstract_analytics_panel_widget.h:37
QString displayTitle
Definition abstract_analytics_panel_widget.h:56
virtual void loadConfig(const QJsonObject &)
Definition abstract_analytics_panel_widget.h:41
AbstractAnalyticsPanelWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition abstract_analytics_panel_widget.cpp:7
QWidget * bannerAndSettingsContainer
Definition abstract_analytics_panel_widget.h:54
BannerWidget * bannerWidget
Definition abstract_analytics_panel_widget.h:57
QString displayTitleText() const
Definition abstract_analytics_panel_widget.h:32
virtual void updateDisplay()=0
QHBoxLayout * bannerAndSettingsLayout
Definition abstract_analytics_panel_widget.h:55
Definition banner_widget.h:17
Definition deck_list_statistics_analyzer.h:23