mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
[DeckAnalytics] Add a checkbox to include/exclude sideboard for calculation (#6823)
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / Debian 11 (push) Blocked by required conditions
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Fedora 42 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 11 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 22.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 15 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Docker Image / amd64 & arm64 (push) Waiting to run
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / Debian 11 (push) Blocked by required conditions
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Fedora 42 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 11 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 22.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 15 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Docker Image / amd64 & arm64 (push) Waiting to run
* [DeckAnalytics] Add a checkbox to include/exclude sideboard for calculation Took 15 minutes * default to false, actually Took 2 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
58a8c7d3df
commit
ccb9901b28
4 changed files with 29 additions and 1 deletions
|
|
@ -29,10 +29,14 @@ DeckAnalyticsWidget::DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnal
|
||||||
removeButton = new QPushButton(this);
|
removeButton = new QPushButton(this);
|
||||||
saveButton = new QPushButton(this);
|
saveButton = new QPushButton(this);
|
||||||
loadButton = new QPushButton(this);
|
loadButton = new QPushButton(this);
|
||||||
|
includeSideboardCheckBox = new QCheckBox(this);
|
||||||
|
includeSideboardCheckBox->setChecked(false);
|
||||||
|
|
||||||
controlLayout->addWidget(addButton);
|
controlLayout->addWidget(addButton);
|
||||||
controlLayout->addWidget(removeButton);
|
controlLayout->addWidget(removeButton);
|
||||||
controlLayout->addWidget(saveButton);
|
controlLayout->addWidget(saveButton);
|
||||||
controlLayout->addWidget(loadButton);
|
controlLayout->addWidget(loadButton);
|
||||||
|
controlLayout->addWidget(includeSideboardCheckBox);
|
||||||
|
|
||||||
layout->addWidget(controlContainer);
|
layout->addWidget(controlContainer);
|
||||||
|
|
||||||
|
|
@ -40,6 +44,7 @@ DeckAnalyticsWidget::DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnal
|
||||||
connect(removeButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::onRemoveSelected);
|
connect(removeButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::onRemoveSelected);
|
||||||
connect(saveButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::saveLayout);
|
connect(saveButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::saveLayout);
|
||||||
connect(loadButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::loadLayout);
|
connect(loadButton, &QPushButton::clicked, this, &DeckAnalyticsWidget::loadLayout);
|
||||||
|
connect(includeSideboardCheckBox, &QCheckBox::clicked, this, &DeckAnalyticsWidget::includeSideboardChanged);
|
||||||
|
|
||||||
// Scroll area and container
|
// Scroll area and container
|
||||||
scrollArea = new QScrollArea(this);
|
scrollArea = new QScrollArea(this);
|
||||||
|
|
@ -66,6 +71,13 @@ void DeckAnalyticsWidget::retranslateUi()
|
||||||
removeButton->setText(tr("Remove Panel"));
|
removeButton->setText(tr("Remove Panel"));
|
||||||
saveButton->setText(tr("Save Layout"));
|
saveButton->setText(tr("Save Layout"));
|
||||||
loadButton->setText(tr("Load Layout"));
|
loadButton->setText(tr("Load Layout"));
|
||||||
|
includeSideboardCheckBox->setText(tr("Include Sideboard"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeckAnalyticsWidget::includeSideboardChanged(bool checked)
|
||||||
|
{
|
||||||
|
statsAnalyzer->getConfig().includeSideboard = checked;
|
||||||
|
updateDisplays();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeckAnalyticsWidget::updateDisplays()
|
void DeckAnalyticsWidget::updateDisplays()
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
#include "deck_list_statistics_analyzer.h"
|
#include "deck_list_statistics_analyzer.h"
|
||||||
#include "resizable_panel.h"
|
#include "resizable_panel.h"
|
||||||
|
|
||||||
|
#include <QCheckBox>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
@ -29,6 +30,7 @@ public slots:
|
||||||
public:
|
public:
|
||||||
explicit DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer);
|
explicit DeckAnalyticsWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer);
|
||||||
void retranslateUi();
|
void retranslateUi();
|
||||||
|
void includeSideboardChanged(bool checked);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onAddPanel();
|
void onAddPanel();
|
||||||
|
|
@ -57,6 +59,8 @@ private:
|
||||||
QPushButton *saveButton;
|
QPushButton *saveButton;
|
||||||
QPushButton *loadButton;
|
QPushButton *loadButton;
|
||||||
|
|
||||||
|
QCheckBox *includeSideboardCheckBox;
|
||||||
|
|
||||||
QScrollArea *scrollArea;
|
QScrollArea *scrollArea;
|
||||||
QWidget *panelContainer;
|
QWidget *panelContainer;
|
||||||
QVBoxLayout *panelLayout;
|
QVBoxLayout *panelLayout;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,13 @@ void DeckListStatisticsAnalyzer::analyze()
|
||||||
{
|
{
|
||||||
clearData();
|
clearData();
|
||||||
|
|
||||||
QList<const DecklistCardNode *> nodes = model->getCardNodes();
|
QList<const DecklistCardNode *> nodes;
|
||||||
|
|
||||||
|
if (config.includeSideboard) {
|
||||||
|
nodes = model->getCardNodes();
|
||||||
|
} else {
|
||||||
|
nodes = model->getCardNodesForZone(DECK_ZONE_MAIN);
|
||||||
|
}
|
||||||
|
|
||||||
for (auto node : nodes) {
|
for (auto node : nodes) {
|
||||||
CardInfoPtr info = CardDatabaseManager::query()->getCardInfo(node->getName());
|
CardInfoPtr info = CardDatabaseManager::query()->getCardInfo(node->getName());
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ struct DeckListStatisticsAnalyzerConfig
|
||||||
bool computeCategories = true;
|
bool computeCategories = true;
|
||||||
bool computeCurveBreakdowns = true;
|
bool computeCurveBreakdowns = true;
|
||||||
bool computeProbabilities = true;
|
bool computeProbabilities = true;
|
||||||
|
bool includeSideboard = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DeckListStatisticsAnalyzer : public QObject
|
class DeckListStatisticsAnalyzer : public QObject
|
||||||
|
|
@ -133,6 +134,11 @@ public:
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DeckListStatisticsAnalyzerConfig &getConfig()
|
||||||
|
{
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void statsUpdated();
|
void statsUpdated();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue