From 42e289b57d1b8854d645e3c88d80ffd2c8591932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Wed, 31 Dec 2025 16:11:47 +0100 Subject: [PATCH] Rename some things. Took 17 minutes Took 11 seconds Took 18 seconds --- cockatrice/CMakeLists.txt | 6 ++-- ...pp => abstract_analytics_panel_widget.cpp} | 10 +++--- ...se.h => abstract_analytics_panel_widget.h} | 4 +-- .../add_analytics_panel_dialog.cpp | 4 +-- .../add_analytics_panel_dialog.h | 2 +- .../analytics_panel_widget_factory.cpp | 33 +++++++++++++++++++ ...ory.h => analytics_panel_widget_factory.h} | 17 +++++----- .../analytics_panel_widget_registrar.cpp | 1 + .../analytics_panel_widget_registrar.h | 17 ++++++++++ .../draw_probability_widget.cpp | 2 +- .../draw_probability_widget.h | 4 +-- .../mana_base/mana_base_widget.cpp | 6 ++-- .../mana_base/mana_base_widget.h | 4 +-- .../mana_curve/mana_curve_config_dialog.cpp | 12 +++---- .../mana_curve/mana_curve_config_dialog.h | 4 +-- .../mana_curve/mana_curve_widget.cpp | 10 +++--- .../mana_curve/mana_curve_widget.h | 4 +-- .../mana_devotion/mana_devotion_widget.cpp | 6 ++-- .../mana_devotion/mana_devotion_widget.h | 4 +-- .../mana_distribution_config_dialog.cpp | 12 +++---- .../mana_distribution_config_dialog.h | 4 +-- .../mana_distribution_widget.cpp | 9 +++-- .../mana_distribution_widget.h | 4 +-- .../deck_analytics/deck_analytics_widget.cpp | 20 +++++------ .../deck_analytics/deck_analytics_widget.h | 4 +-- .../deck_analytics_widget_factory.cpp | 33 ------------------- .../deck_analytics_widget_registrar.cpp | 1 - .../deck_analytics_widget_registrar.h | 15 --------- .../deck_analytics/resizable_panel.cpp | 2 +- .../widgets/deck_analytics/resizable_panel.h | 8 +++-- 30 files changed, 132 insertions(+), 130 deletions(-) rename cockatrice/src/interface/widgets/deck_analytics/{deck_analytics_widget_base.cpp => abstract_analytics_panel_widget.cpp} (76%) rename cockatrice/src/interface/widgets/deck_analytics/{deck_analytics_widget_base.h => abstract_analytics_panel_widget.h} (90%) create mode 100644 cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp rename cockatrice/src/interface/widgets/deck_analytics/{deck_analytics_widget_factory.h => analytics_panel_widget_factory.h} (51%) create mode 100644 cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp create mode 100644 cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.h delete mode 100644 cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.cpp delete mode 100644 cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.cpp delete mode 100644 cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.h diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 3d16162c5..8ebd177db 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -144,11 +144,11 @@ set(cockatrice_SOURCES src/interface/widgets/cards/card_size_widget.cpp src/interface/widgets/cards/deck_card_zone_display_widget.cpp src/interface/widgets/cards/deck_preview_card_picture_widget.cpp + src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.cpp src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp + src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp + src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp src/interface/widgets/deck_analytics/deck_analytics_widget.cpp - src/interface/widgets/deck_analytics/deck_analytics_widget_base.cpp - src/interface/widgets/deck_analytics/deck_analytics_widget_factory.cpp - src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.cpp src/interface/widgets/deck_analytics/deck_list_statistics_analyzer.cpp src/interface/widgets/deck_analytics/resizable_panel.cpp src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_config.cpp diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.cpp b/cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.cpp similarity index 76% rename from cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.cpp rename to cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.cpp index db6e7e634..bad883d27 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.cpp @@ -1,10 +1,10 @@ -#include "deck_analytics_widget_base.h" +#include "abstract_analytics_panel_widget.h" #include "deck_list_statistics_analyzer.h" #include -AnalyticsWidgetBase::AnalyticsWidgetBase(QWidget *parent, DeckListStatisticsAnalyzer *analyzer) +AbstractAnalyticsPanelWidget::AbstractAnalyticsPanelWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer) : QWidget(parent), analyzer(analyzer) { layout = new QVBoxLayout(this); @@ -21,15 +21,15 @@ AnalyticsWidgetBase::AnalyticsWidgetBase(QWidget *parent, DeckListStatisticsAnal // config button configureButton = new QPushButton(tr("Configure"), this); configureButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - connect(configureButton, &QPushButton::clicked, this, &AnalyticsWidgetBase::applyConfigFromDialog); + connect(configureButton, &QPushButton::clicked, this, &AbstractAnalyticsPanelWidget::applyConfigFromDialog); bannerAndSettingsLayout->addWidget(configureButton, 0); layout->addWidget(bannerAndSettingsContainer); - connect(analyzer, &DeckListStatisticsAnalyzer::statsUpdated, this, &AnalyticsWidgetBase::updateDisplay); + connect(analyzer, &DeckListStatisticsAnalyzer::statsUpdated, this, &AbstractAnalyticsPanelWidget::updateDisplay); } -bool AnalyticsWidgetBase::applyConfigFromDialog() +bool AbstractAnalyticsPanelWidget::applyConfigFromDialog() { QDialog *dlg = createConfigDialog(this); if (!dlg) { diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.h b/cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.h similarity index 90% rename from cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.h rename to cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.h index e0e3397c8..23374a9e1 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_base.h +++ b/cockatrice/src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.h @@ -10,7 +10,7 @@ class DeckListStatisticsAnalyzer; -class AnalyticsWidgetBase : public QWidget +class AbstractAnalyticsPanelWidget : public QWidget { Q_OBJECT public slots: @@ -19,7 +19,7 @@ public slots: virtual QDialog *createConfigDialog(QWidget *parent) = 0; public: - explicit AnalyticsWidgetBase(QWidget *parent, DeckListStatisticsAnalyzer *analyzer); + explicit AbstractAnalyticsPanelWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer); void setDisplayTitle(const QString &title) { diff --git a/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp b/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp index 42e74bb3c..c83e6d982 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp @@ -1,6 +1,6 @@ #include "add_analytics_panel_dialog.h" -#include "deck_analytics_widget_factory.h" +#include "analytics_panel_widget_factory.h" #include #include @@ -14,7 +14,7 @@ AddAnalyticsPanelDialog::AddAnalyticsPanelDialog(QWidget *parent) : QDialog(pare typeCombo = new QComboBox(this); // Populate using descriptors - const auto widgets = DeckAnalyticsWidgetFactory::instance().availableWidgets(); + const auto widgets = AnalyticsPanelWidgetFactory::instance().availableWidgets(); for (const auto &desc : widgets) { // Show translated title to user diff --git a/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.h b/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.h index 7991a254d..aa44734c2 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.h +++ b/cockatrice/src/interface/widgets/deck_analytics/add_analytics_panel_dialog.h @@ -2,7 +2,7 @@ #ifndef COCKATRICE_ADD_ANALYTICS_PANEL_DIALOG_H #define COCKATRICE_ADD_ANALYTICS_PANEL_DIALOG_H -#include "deck_analytics_widget_factory.h" +#include "analytics_panel_widget_factory.h" #include #include diff --git a/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp new file mode 100644 index 000000000..7af641689 --- /dev/null +++ b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp @@ -0,0 +1,33 @@ +#include "analytics_panel_widget_factory.h" + +#include "abstract_analytics_panel_widget.h" + +AnalyticsPanelWidgetFactory &AnalyticsPanelWidgetFactory::instance() +{ + static AnalyticsPanelWidgetFactory f; + return f; +} + +void AnalyticsPanelWidgetFactory::registerWidget(const Descriptor &desc) +{ + widgets.insert(desc.type, desc); +} + +AbstractAnalyticsPanelWidget * +AnalyticsPanelWidgetFactory::create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const +{ + auto it = widgets.find(type); + if (it == widgets.end()) + return nullptr; + + auto w = it->creator(parent, analyzer); + + w->setDisplayTitle(it->title); + + return w; +} + +QList AnalyticsPanelWidgetFactory::availableWidgets() const +{ + return widgets.values(); +} \ No newline at end of file diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.h b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.h similarity index 51% rename from cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.h rename to cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.h index 951bd73b8..6c5856d70 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_factory.h @@ -7,13 +7,13 @@ #include #include -class AnalyticsWidgetBase; +class AbstractAnalyticsPanelWidget; class DeckListStatisticsAnalyzer; -class DeckAnalyticsWidgetFactory +class AnalyticsPanelWidgetFactory { public: - using Creator = std::function; + using Creator = std::function; struct Descriptor { @@ -22,20 +22,21 @@ public: Creator creator; }; - static DeckAnalyticsWidgetFactory &instance(); + static AnalyticsPanelWidgetFactory &instance(); // NEW: richer registration void registerWidget(const Descriptor &desc); - AnalyticsWidgetBase *create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const; + AbstractAnalyticsPanelWidget * + create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const; // NEW: expose widgets to UI QList availableWidgets() const; private: - DeckAnalyticsWidgetFactory() = default; // Ensure private constructor - DeckAnalyticsWidgetFactory(const DeckAnalyticsWidgetFactory &) = delete; - DeckAnalyticsWidgetFactory &operator=(const DeckAnalyticsWidgetFactory &) = delete; + AnalyticsPanelWidgetFactory() = default; // Ensure private constructor + AnalyticsPanelWidgetFactory(const AnalyticsPanelWidgetFactory &) = delete; + AnalyticsPanelWidgetFactory &operator=(const AnalyticsPanelWidgetFactory &) = delete; QMap widgets; }; diff --git a/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp new file mode 100644 index 000000000..d4129a3d0 --- /dev/null +++ b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp @@ -0,0 +1 @@ +#include "analytics_panel_widget_registrar.h" diff --git a/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.h b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.h new file mode 100644 index 000000000..70d6df94f --- /dev/null +++ b/cockatrice/src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.h @@ -0,0 +1,17 @@ +#ifndef COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H +#define COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H + +#include "analytics_panel_widget_factory.h" + +class AnalyticsPanelWidgetRegistrar +{ +public: + AnalyticsPanelWidgetRegistrar(const QString &type, + const QString &title, + AnalyticsPanelWidgetFactory::Creator creator) + { + AnalyticsPanelWidgetFactory::instance().registerWidget({type, title, creator}); + } +}; + +#endif // COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.cpp index 3005689c1..a553668b6 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.cpp @@ -18,7 +18,7 @@ #include DrawProbabilityWidget::DrawProbabilityWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer) - : AnalyticsWidgetBase(parent, analyzer) + : AbstractAnalyticsPanelWidget(parent, analyzer) { controls = new QWidget(this); controlLayout = new QHBoxLayout(controls); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.h index 74e369e2f..80015999f 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.h @@ -1,7 +1,7 @@ #ifndef COCKATRICE_DRAW_PROBABILITY_WIDGET_H #define COCKATRICE_DRAW_PROBABILITY_WIDGET_H -#include "../../deck_analytics_widget_base.h" +#include "../../abstract_analytics_panel_widget.h" #include "../../deck_list_statistics_analyzer.h" #include "draw_probability_config.h" @@ -10,7 +10,7 @@ #include #include -class DrawProbabilityWidget : public AnalyticsWidgetBase +class DrawProbabilityWidget : public AbstractAnalyticsPanelWidget { Q_OBJECT public: diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.cpp index d16af4b10..d38314b8c 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.cpp @@ -3,7 +3,7 @@ #include "../../../general/display/charts/bars/bar_widget.h" #include "../../../general/display/charts/bars/color_bar.h" #include "../../../general/display/charts/pies/color_pie.h" -#include "../../deck_analytics_widget_registrar.h" +#include "../../analytics_panel_widget_registrar.h" #include "mana_base_config_dialog.h" #include @@ -12,14 +12,14 @@ namespace { -DeckAnalyticsWidgetRegistrar registerManaBase{ +AnalyticsPanelWidgetRegistrar registerManaBase{ "manaBase", ManaBaseWidget::tr("Mana Base"), [](QWidget *parent, DeckListStatisticsAnalyzer *analyzer) { return new ManaBaseWidget(parent, analyzer); }}; } // anonymous namespace ManaBaseWidget::ManaBaseWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer, ManaBaseConfig cfg) - : AnalyticsWidgetBase(parent, analyzer), config(std::move(cfg)) + : AbstractAnalyticsPanelWidget(parent, analyzer), config(std::move(cfg)) { barContainer = new QWidget(this); barLayout = new QHBoxLayout(barContainer); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.h index eddd0ce1d..39380c07e 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.h @@ -8,7 +8,7 @@ #define MANA_BASE_WIDGET_H #include "../../../general/display/banner_widget.h" -#include "../../deck_analytics_widget_base.h" +#include "../../abstract_analytics_panel_widget.h" #include "../../deck_list_statistics_analyzer.h" #include "mana_base_config.h" @@ -18,7 +18,7 @@ #include #include -class ManaBaseWidget : public AnalyticsWidgetBase +class ManaBaseWidget : public AbstractAnalyticsPanelWidget { Q_OBJECT diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.cpp index 8144b69e7..38199656c 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.cpp @@ -7,7 +7,7 @@ #include #include -ManaCurveAddDialog::ManaCurveAddDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent) +ManaCurveConfigDialog::ManaCurveConfigDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent) : QDialog(parent), analyzer(analyzer) { auto *lay = new QVBoxLayout(this); @@ -35,8 +35,8 @@ ManaCurveAddDialog::ManaCurveAddDialog(DeckListStatisticsAnalyzer *analyzer, QWi buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); lay->addWidget(buttons); - connect(buttons, &QDialogButtonBox::accepted, this, &ManaCurveAddDialog::accept); - connect(buttons, &QDialogButtonBox::rejected, this, &ManaCurveAddDialog::reject); + connect(buttons, &QDialogButtonBox::accepted, this, &ManaCurveConfigDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &ManaCurveConfigDialog::reject); // populate dynamic data QStringList cats = analyzer->getManaCurveByType().keys(); @@ -50,7 +50,7 @@ ManaCurveAddDialog::ManaCurveAddDialog(DeckListStatisticsAnalyzer *analyzer, QWi retranslateUi(); } -void ManaCurveAddDialog::retranslateUi() +void ManaCurveConfigDialog::retranslateUi() { labelGroupBy->setText(tr("Group By:")); groupBy->setItemText(0, tr("type")); @@ -65,7 +65,7 @@ void ManaCurveAddDialog::retranslateUi() showCatRows->setText(tr("Show per-category rows")); } -void ManaCurveAddDialog::setFromConfig(const ManaCurveConfig &cfg) +void ManaCurveConfigDialog::setFromConfig(const ManaCurveConfig &cfg) { groupBy->setCurrentText(cfg.groupBy); // restore filters @@ -76,7 +76,7 @@ void ManaCurveAddDialog::setFromConfig(const ManaCurveConfig &cfg) showCatRows->setChecked(cfg.showCategoryRows); } -void ManaCurveAddDialog::accept() +void ManaCurveConfigDialog::accept() { cfg.groupBy = groupBy->currentText(); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.h index b31a329e3..17e6776e5 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.h @@ -12,11 +12,11 @@ class QListWidget; class QCheckBox; class QComboBox; -class ManaCurveAddDialog : public QDialog +class ManaCurveConfigDialog : public QDialog { Q_OBJECT public: - explicit ManaCurveAddDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent = nullptr); + explicit ManaCurveConfigDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent = nullptr); void retranslateUi(); void setFromConfig(const ManaCurveConfig &cfg); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.cpp index c329a27ff..e09ecfe87 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.cpp @@ -3,7 +3,7 @@ #include "../../../general/display/charts/bars/bar_chart_background_widget.h" #include "../../../general/display/charts/bars/bar_chart_widget.h" #include "../../../general/display/charts/bars/segmented_bar_widget.h" -#include "../../deck_analytics_widget_registrar.h" +#include "../../analytics_panel_widget_registrar.h" #include "../../deck_list_statistics_analyzer.h" #include "libcockatrice/utility/color.h" #include "libcockatrice/utility/qt_utils.h" @@ -18,14 +18,14 @@ namespace { -DeckAnalyticsWidgetRegistrar registerManaCurve{ +AnalyticsPanelWidgetRegistrar registerManaCurve{ "manaCurve", ManaCurveWidget::tr("Mana Curve"), [](QWidget *parent, DeckListStatisticsAnalyzer *analyzer) { return new ManaCurveWidget(parent, analyzer); }}; } // anonymous namespace ManaCurveWidget::ManaCurveWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer, ManaCurveConfig cfg) - : AnalyticsWidgetBase(parent, analyzer), config(cfg) + : AbstractAnalyticsPanelWidget(parent, analyzer), config(cfg) { setLayout(layout); @@ -46,14 +46,14 @@ ManaCurveWidget::ManaCurveWidget(QWidget *parent, DeckListStatisticsAnalyzer *an QDialog *ManaCurveWidget::createConfigDialog(QWidget *parent) { - auto *dlg = new ManaCurveAddDialog(analyzer, parent); + auto *dlg = new ManaCurveConfigDialog(analyzer, parent); dlg->setFromConfig(config); return dlg; } QJsonObject ManaCurveWidget::extractConfigFromDialog(QDialog *dlg) const { - auto *mc = qobject_cast(dlg); + auto *mc = qobject_cast(dlg); return mc ? mc->result().toJson() : QJsonObject{}; } diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.h index 1995f6be2..da59da9a8 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.h @@ -7,7 +7,7 @@ #ifndef MANA_CURVE_WIDGET_H #define MANA_CURVE_WIDGET_H -#include "../../deck_analytics_widget_base.h" +#include "../../abstract_analytics_panel_widget.h" #include "mana_curve_category_widget.h" #include "mana_curve_config.h" #include "mana_curve_total_widget.h" @@ -17,7 +17,7 @@ class SegmentedBarWidget; class DeckListStatisticsAnalyzer; -class ManaCurveWidget : public AnalyticsWidgetBase +class ManaCurveWidget : public AbstractAnalyticsPanelWidget { Q_OBJECT diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.cpp index 8f1269a16..709577ff2 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.cpp @@ -3,7 +3,7 @@ #include "../../../general/display/charts/bars/bar_widget.h" #include "../../../general/display/charts/bars/color_bar.h" #include "../../../general/display/charts/pies/color_pie.h" -#include "../../deck_analytics_widget_registrar.h" +#include "../../analytics_panel_widget_registrar.h" #include "../../deck_list_statistics_analyzer.h" #include "mana_devotion_config_dialog.h" @@ -13,14 +13,14 @@ namespace { -DeckAnalyticsWidgetRegistrar registerManaDevotion{ +AnalyticsPanelWidgetRegistrar registerManaDevotion{ "manaDevotion", ManaDevotionWidget::tr("Mana Devotion"), [](QWidget *parent, DeckListStatisticsAnalyzer *analyzer) { return new ManaDevotionWidget(parent, analyzer); }}; } // anonymous namespace ManaDevotionWidget::ManaDevotionWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer, ManaDevotionConfig cfg) - : AnalyticsWidgetBase(parent, analyzer), config(std::move(cfg)) + : AbstractAnalyticsPanelWidget(parent, analyzer), config(std::move(cfg)) { barContainer = new QWidget(this); barLayout = new QHBoxLayout(barContainer); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.h index e80ce6cbe..833f12938 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.h @@ -7,12 +7,12 @@ #ifndef MANA_DEVOTION_WIDGET_H #define MANA_DEVOTION_WIDGET_H #include "../../../general/display/banner_widget.h" -#include "../../deck_analytics_widget_base.h" +#include "../../abstract_analytics_panel_widget.h" #include "mana_devotion_config.h" #include -class ManaDevotionWidget : public AnalyticsWidgetBase +class ManaDevotionWidget : public AbstractAnalyticsPanelWidget { Q_OBJECT diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.cpp index 9fbad8aaf..7fe4d94e4 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.cpp @@ -9,7 +9,7 @@ static const QStringList kColors = {"W", "U", "B", "R", "G", "C"}; -ManaDistributionAddDialog::ManaDistributionAddDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent) +ManaDistributionConfigDialog::ManaDistributionConfigDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent) : QDialog(parent), analyzer(analyzer) { auto *lay = new QVBoxLayout(this); @@ -35,15 +35,15 @@ ManaDistributionAddDialog::ManaDistributionAddDialog(DeckListStatisticsAnalyzer buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); lay->addWidget(buttons); - connect(buttons, &QDialogButtonBox::accepted, this, &ManaDistributionAddDialog::accept); - connect(buttons, &QDialogButtonBox::rejected, this, &ManaDistributionAddDialog::reject); + connect(buttons, &QDialogButtonBox::accepted, this, &ManaDistributionConfigDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &ManaDistributionConfigDialog::reject); displayType->addItems({"pie", "bar"}); // combo items retranslateUi(); } -void ManaDistributionAddDialog::retranslateUi() +void ManaDistributionConfigDialog::retranslateUi() { labelDisplayType->setText(tr("Top display type:")); displayType->setItemText(0, tr("pie")); @@ -56,7 +56,7 @@ void ManaDistributionAddDialog::retranslateUi() // QDialogButtonBox buttons are automatically translated } -void ManaDistributionAddDialog::setFromConfig(const ManaDistributionConfig &cfgIn) +void ManaDistributionConfigDialog::setFromConfig(const ManaDistributionConfig &cfgIn) { cfg = cfgIn; @@ -68,7 +68,7 @@ void ManaDistributionAddDialog::setFromConfig(const ManaDistributionConfig &cfgI showColorRows->setChecked(cfg.showColorRows); } -void ManaDistributionAddDialog::accept() +void ManaDistributionConfigDialog::accept() { cfg.displayType = displayType->currentText(); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.h index 7d7321d28..57c88e29d 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.h @@ -13,11 +13,11 @@ class QListWidget; class QCheckBox; class DeckListStatisticsAnalyzer; -class ManaDistributionAddDialog : public QDialog +class ManaDistributionConfigDialog : public QDialog { Q_OBJECT public: - explicit ManaDistributionAddDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent = nullptr); + explicit ManaDistributionConfigDialog(DeckListStatisticsAnalyzer *analyzer, QWidget *parent = nullptr); void retranslateUi(); void setFromConfig(const ManaDistributionConfig &cfg); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.cpp index 59d1a31b6..8eaea1426 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.cpp @@ -1,6 +1,6 @@ #include "mana_distribution_widget.h" -#include "../../deck_analytics_widget_registrar.h" +#include "../../analytics_panel_widget_registrar.h" #include "mana_distribution_config_dialog.h" #include @@ -10,8 +10,7 @@ namespace { - -DeckAnalyticsWidgetRegistrar registerManaDistribution{ +AnalyticsPanelWidgetRegistrar registerManaDistribution{ "manaProdDevotion", ManaDistributionWidget::tr("Mana Production + Devotion"), [](QWidget *parent, DeckListStatisticsAnalyzer *analyzer) { return new ManaDistributionWidget(parent, analyzer); }}; @@ -20,7 +19,7 @@ DeckAnalyticsWidgetRegistrar registerManaDistribution{ static const QStringList kColors = {"W", "U", "B", "R", "G", "C"}; ManaDistributionWidget::ManaDistributionWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer) - : AnalyticsWidgetBase(parent, analyzer) + : AbstractAnalyticsPanelWidget(parent, analyzer) { container = new QWidget(this); containerLayout = new QVBoxLayout(container); @@ -117,7 +116,7 @@ void ManaDistributionWidget::updateDisplay() QDialog *ManaDistributionWidget::createConfigDialog(QWidget *parent) { - auto *dlg = new ManaDistributionAddDialog(analyzer, parent); + auto *dlg = new ManaDistributionConfigDialog(analyzer, parent); dlg->setWindowTitle(tr("Mana Distribution Settings")); dlg->setFromConfig(config); diff --git a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.h b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.h index 843a4e631..2d834f3af 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.h @@ -3,7 +3,7 @@ #include "../../../general/display/charts/bars/color_bar.h" #include "../../../general/display/charts/pies/color_pie.h" -#include "../../deck_analytics_widget_base.h" +#include "../../abstract_analytics_panel_widget.h" #include "../../deck_list_statistics_analyzer.h" #include "mana_distribution_config.h" #include "mana_distribution_single_display_widget.h" @@ -13,7 +13,7 @@ #include #include -class ManaDistributionWidget : public AnalyticsWidgetBase +class ManaDistributionWidget : public AbstractAnalyticsPanelWidget { Q_OBJECT public: diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.cpp b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.cpp index 0a9c69c3d..52aa8dd37 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.cpp @@ -1,12 +1,8 @@ #include "deck_analytics_widget.h" +#include "abstract_analytics_panel_widget.h" #include "add_analytics_panel_dialog.h" -#include "analyzer_modules/mana_base/mana_base_widget.h" -#include "analyzer_modules/mana_curve/mana_curve_widget.h" -#include "analyzer_modules/mana_devotion/mana_devotion_widget.h" -#include "analyzer_modules/mana_distribution/mana_distribution_widget.h" -#include "deck_analytics_widget_base.h" -#include "deck_analytics_widget_factory.h" +#include "analytics_panel_widget_factory.h" #include "deck_list_statistics_analyzer.h" #include "resizable_panel.h" @@ -86,8 +82,8 @@ void DeckAnalyticsWidget::onAddPanel() return; } - AnalyticsWidgetBase *analyticsWidget = - DeckAnalyticsWidgetFactory::instance().create(selection, this, statsAnalyzer); + AbstractAnalyticsPanelWidget *analyticsWidget = + AnalyticsPanelWidgetFactory::instance().create(selection, this, statsAnalyzer); if (!analyticsWidget) { return; } @@ -100,7 +96,9 @@ void DeckAnalyticsWidget::onAddPanel() addPanelInstance(selection, analyticsWidget, analyticsWidget->saveConfig()); } -void DeckAnalyticsWidget::addPanelInstance(const QString &typeId, AnalyticsWidgetBase *panel, const QJsonObject &cfg) +void DeckAnalyticsWidget::addPanelInstance(const QString &typeId, + AbstractAnalyticsPanelWidget *panel, + const QJsonObject &cfg) { panel->loadConfig(cfg); panel->updateDisplay(); @@ -164,7 +162,7 @@ void DeckAnalyticsWidget::addDefaultPanels() QVector defaults = {{"manaCurve", {}}, {"manaBase", {}}, {"manaDevotion", {}}}; for (auto &d : defaults) { - AnalyticsWidgetBase *w = DeckAnalyticsWidgetFactory::instance().create(d.type, this, statsAnalyzer); + AbstractAnalyticsPanelWidget *w = AnalyticsPanelWidgetFactory::instance().create(d.type, this, statsAnalyzer); if (!w) { continue; } @@ -197,7 +195,7 @@ bool DeckAnalyticsWidget::loadLayoutInternal() QString type = o["type"].toString(); QJsonObject cfg = o["config"].toObject(); - AnalyticsWidgetBase *w = DeckAnalyticsWidgetFactory::instance().create(type, this, statsAnalyzer); + AbstractAnalyticsPanelWidget *w = AnalyticsPanelWidgetFactory::instance().create(type, this, statsAnalyzer); if (!w) { continue; } diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.h b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.h index fd44c962c..31ee36fbb 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.h +++ b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget.h @@ -7,7 +7,7 @@ #ifndef DECK_ANALYTICS_WIDGET_H #define DECK_ANALYTICS_WIDGET_H -#include "deck_analytics_widget_base.h" +#include "abstract_analytics_panel_widget.h" #include "deck_list_statistics_analyzer.h" #include "resizable_panel.h" @@ -46,7 +46,7 @@ protected: int indexOfSelectedWrapper() const; private: - void addPanelInstance(const QString &typeId, AnalyticsWidgetBase *panel, const QJsonObject &cfg = {}); + void addPanelInstance(const QString &typeId, AbstractAnalyticsPanelWidget *panel, const QJsonObject &cfg = {}); QVBoxLayout *layout; QWidget *controlContainer; diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.cpp b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.cpp deleted file mode 100644 index 0e19565ce..000000000 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_factory.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "deck_analytics_widget_factory.h" - -#include "deck_analytics_widget_base.h" - -DeckAnalyticsWidgetFactory &DeckAnalyticsWidgetFactory::instance() -{ - static DeckAnalyticsWidgetFactory f; - return f; -} - -void DeckAnalyticsWidgetFactory::registerWidget(const Descriptor &desc) -{ - widgets.insert(desc.type, desc); -} - -AnalyticsWidgetBase * -DeckAnalyticsWidgetFactory::create(const QString &type, QWidget *parent, DeckListStatisticsAnalyzer *analyzer) const -{ - auto it = widgets.find(type); - if (it == widgets.end()) - return nullptr; - - auto w = it->creator(parent, analyzer); - - w->setDisplayTitle(it->title); - - return w; -} - -QList DeckAnalyticsWidgetFactory::availableWidgets() const -{ - return widgets.values(); -} \ No newline at end of file diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.cpp b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.cpp deleted file mode 100644 index bb478fefc..000000000 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "deck_analytics_widget_registrar.h" diff --git a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.h b/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.h deleted file mode 100644 index 783ca12ee..000000000 --- a/cockatrice/src/interface/widgets/deck_analytics/deck_analytics_widget_registrar.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H -#define COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H - -#include "deck_analytics_widget_factory.h" - -class DeckAnalyticsWidgetRegistrar -{ -public: - DeckAnalyticsWidgetRegistrar(const QString &type, const QString &title, DeckAnalyticsWidgetFactory::Creator creator) - { - DeckAnalyticsWidgetFactory::instance().registerWidget({type, title, creator}); - } -}; - -#endif // COCKATRICE_DECK_ANALYTICS_WIDGET_REGISTRAR_H diff --git a/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.cpp b/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.cpp index 2d032df10..665a19da6 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.cpp +++ b/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.cpp @@ -7,7 +7,7 @@ #include #include -ResizablePanel::ResizablePanel(const QString &_typeId, AnalyticsWidgetBase *analyticsPanel, QWidget *parent) +ResizablePanel::ResizablePanel(const QString &_typeId, AbstractAnalyticsPanelWidget *analyticsPanel, QWidget *parent) : QWidget(parent), panel(analyticsPanel), typeId(_typeId) { setAcceptDrops(true); diff --git a/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.h b/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.h index a5f0f8b93..d958ec64d 100644 --- a/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.h +++ b/cockatrice/src/interface/widgets/deck_analytics/resizable_panel.h @@ -1,7 +1,7 @@ #ifndef COCKATRICE_RESIZABLE_PANEL_H #define COCKATRICE_RESIZABLE_PANEL_H -#include "deck_analytics_widget_base.h" +#include "abstract_analytics_panel_widget.h" #include #include @@ -19,7 +19,9 @@ class ResizablePanel : public QWidget { Q_OBJECT public: - explicit ResizablePanel(const QString &typeId, AnalyticsWidgetBase *analyticsPanel, QWidget *parent = nullptr); + explicit ResizablePanel(const QString &typeId, + AbstractAnalyticsPanelWidget *analyticsPanel, + QWidget *parent = nullptr); void setSelected(bool selected); void setHeightFromSaved(int h); @@ -33,7 +35,7 @@ public: return typeId; } - AnalyticsWidgetBase *panel; + AbstractAnalyticsPanelWidget *panel; signals: void dragStarted(ResizablePanel *panel);