Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
analytics_panel_widget_factory.h
Go to the documentation of this file.
1#ifndef COCKATRICE_DECK_ANALYTICS_WIDGET_FACTORY_H
2#define COCKATRICE_DECK_ANALYTICS_WIDGET_FACTORY_H
3
4#include <QMap>
5#include <QString>
6#include <QStringList>
7#include <QWidget>
8#include <functional>
9
12
14{
15public:
16 using Creator = std::function<AbstractAnalyticsPanelWidget *(QWidget *, DeckListStatisticsAnalyzer *)>;
17
19 {
20 QString type; // stable ID ("manaProdDevotion")
21 QString title; // translated, user-facing
23 };
24
26
27 // NEW: richer registration
28 void registerWidget(const Descriptor &desc);
29
31 create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const;
32
33 // NEW: expose widgets to UI
34 QList<Descriptor> availableWidgets() const;
35
36private:
37 AnalyticsPanelWidgetFactory() = default; // Ensure private constructor
40
41 QMap<QString, Descriptor> widgets;
42};
43
44#endif
Definition abstract_analytics_panel_widget.h:14
void registerWidget(const Descriptor &desc)
Definition analytics_panel_widget_factory.cpp:11
QMap< QString, Descriptor > widgets
Definition analytics_panel_widget_factory.h:41
AbstractAnalyticsPanelWidget * create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const
Definition analytics_panel_widget_factory.cpp:17
std::function< AbstractAnalyticsPanelWidget *(QWidget *, DeckListStatisticsAnalyzer *)> Creator
Definition analytics_panel_widget_factory.h:16
QList< Descriptor > availableWidgets() const
Definition analytics_panel_widget_factory.cpp:30
AnalyticsPanelWidgetFactory & operator=(const AnalyticsPanelWidgetFactory &)=delete
static AnalyticsPanelWidgetFactory & instance()
Definition analytics_panel_widget_factory.cpp:5
AnalyticsPanelWidgetFactory(const AnalyticsPanelWidgetFactory &)=delete
Definition deck_list_statistics_analyzer.h:23
Definition analytics_panel_widget_factory.h:19
QString title
Definition analytics_panel_widget_factory.h:21
QString type
Definition analytics_panel_widget_factory.h:20
Creator creator
Definition analytics_panel_widget_factory.h:22