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
10
class
AbstractAnalyticsPanelWidget
;
11
class
DeckListStatisticsAnalyzer
;
12
13
class
AnalyticsPanelWidgetFactory
14
{
15
public
:
16
using
Creator
= std::function<
AbstractAnalyticsPanelWidget
*(QWidget *,
DeckListStatisticsAnalyzer
*)>;
17
18
struct
Descriptor
19
{
20
QString
type
;
// stable ID ("manaProdDevotion")
21
QString
title
;
// translated, user-facing
22
Creator
creator
;
23
};
24
25
static
AnalyticsPanelWidgetFactory
&
instance
();
26
27
// NEW: richer registration
28
void
registerWidget
(
const
Descriptor
&desc);
29
30
AbstractAnalyticsPanelWidget
*
31
create
(
const
QString &type, QWidget *parent,
DeckListStatisticsAnalyzer
*analyzer)
const
;
32
33
// NEW: expose widgets to UI
34
QList<Descriptor>
availableWidgets
()
const
;
35
36
private
:
37
AnalyticsPanelWidgetFactory
() =
default
;
// Ensure private constructor
38
AnalyticsPanelWidgetFactory
(
const
AnalyticsPanelWidgetFactory
&) =
delete
;
39
AnalyticsPanelWidgetFactory
&
operator=
(
const
AnalyticsPanelWidgetFactory
&) =
delete
;
40
41
QMap<QString, Descriptor>
widgets
;
42
};
43
44
#endif
AbstractAnalyticsPanelWidget
Definition
abstract_analytics_panel_widget.h:14
AnalyticsPanelWidgetFactory::registerWidget
void registerWidget(const Descriptor &desc)
Definition
analytics_panel_widget_factory.cpp:11
AnalyticsPanelWidgetFactory::widgets
QMap< QString, Descriptor > widgets
Definition
analytics_panel_widget_factory.h:41
AnalyticsPanelWidgetFactory::create
AbstractAnalyticsPanelWidget * create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const
Definition
analytics_panel_widget_factory.cpp:17
AnalyticsPanelWidgetFactory::Creator
std::function< AbstractAnalyticsPanelWidget *(QWidget *, DeckListStatisticsAnalyzer *)> Creator
Definition
analytics_panel_widget_factory.h:16
AnalyticsPanelWidgetFactory::availableWidgets
QList< Descriptor > availableWidgets() const
Definition
analytics_panel_widget_factory.cpp:30
AnalyticsPanelWidgetFactory::operator=
AnalyticsPanelWidgetFactory & operator=(const AnalyticsPanelWidgetFactory &)=delete
AnalyticsPanelWidgetFactory::instance
static AnalyticsPanelWidgetFactory & instance()
Definition
analytics_panel_widget_factory.cpp:5
AnalyticsPanelWidgetFactory::AnalyticsPanelWidgetFactory
AnalyticsPanelWidgetFactory()=default
AnalyticsPanelWidgetFactory::AnalyticsPanelWidgetFactory
AnalyticsPanelWidgetFactory(const AnalyticsPanelWidgetFactory &)=delete
DeckListStatisticsAnalyzer
Definition
deck_list_statistics_analyzer.h:23
AnalyticsPanelWidgetFactory::Descriptor
Definition
analytics_panel_widget_factory.h:19
AnalyticsPanelWidgetFactory::Descriptor::title
QString title
Definition
analytics_panel_widget_factory.h:21
AnalyticsPanelWidgetFactory::Descriptor::type
QString type
Definition
analytics_panel_widget_factory.h:20
AnalyticsPanelWidgetFactory::Descriptor::creator
Creator creator
Definition
analytics_panel_widget_factory.h:22
cockatrice
src
interface
widgets
deck_analytics
analytics_panel_widget_factory.h
Generated by
1.14.0