Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
draw_probability_widget.h
Go to the documentation of this file.
1#ifndef COCKATRICE_DRAW_PROBABILITY_WIDGET_H
2#define COCKATRICE_DRAW_PROBABILITY_WIDGET_H
3
7
8#include <QComboBox>
9#include <QLineEdit>
10#include <QSpinBox>
11#include <QTableWidget>
12
14{
15 Q_OBJECT
16public:
18
19 QDialog *createConfigDialog(QWidget *parent) override;
20 QJsonObject extractConfigFromDialog(QDialog *dlg) const override;
22
23public slots:
24 void updateDisplay() override;
25 void loadConfig(const QJsonObject &cfg) override;
26 void retranslateUi();
27
28private slots:
30
31private:
33
34 QWidget *controls;
35 QHBoxLayout *controlLayout;
36 QLabel *labelPrefix;
37 QLabel *labelMiddle;
38 QLabel *labelSuffix;
39 QLineEdit *cardNameEdit;
40 QComboBox *criteriaCombo; // Card Name / Type / Subtype / Mana Value
41 QComboBox *filterCombo; // The actual value
42 QComboBox *exactnessCombo; // At least / Exactly
43 QSpinBox *quantitySpin; // N
44 QSpinBox *drawnSpin; // M
45
46 QSpinBox *manaValueSpin;
47
48 QTableWidget *resultTable;
49
50 double hypergeometricProbability(int N, int K, int n, int k);
51 double calculateProbability(int totalCards, int copies, int drawn, bool atLeast);
52};
53
54#endif // COCKATRICE_DRAW_PROBABILITY_WIDGET_H
DeckListStatisticsAnalyzer * analyzer
Definition abstract_analytics_panel_widget.h:52
AbstractAnalyticsPanelWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition abstract_analytics_panel_widget.cpp:7
Definition deck_list_statistics_analyzer.h:23
QComboBox * exactnessCombo
Definition draw_probability_widget.h:42
void applyConfigToToolbar()
Definition draw_probability_widget.cpp:129
DrawProbabilityWidget(QWidget *parent, DeckListStatisticsAnalyzer *analyzer)
Definition draw_probability_widget.cpp:20
QHBoxLayout * controlLayout
Definition draw_probability_widget.h:35
void updateFilterOptions()
Definition draw_probability_widget.cpp:157
QWidget * controls
Definition draw_probability_widget.h:34
QLabel * labelPrefix
Definition draw_probability_widget.h:36
QTableWidget * resultTable
Definition draw_probability_widget.h:48
DrawProbabilityConfig config
Definition draw_probability_widget.h:32
QSpinBox * drawnSpin
Definition draw_probability_widget.h:44
QSpinBox * quantitySpin
Definition draw_probability_widget.h:43
void updateDisplay() override
Definition draw_probability_widget.cpp:145
void loadConfig(const QJsonObject &cfg) override
Definition draw_probability_widget.cpp:150
double hypergeometricProbability(int N, int K, int n, int k)
Definition draw_probability_widget.cpp:218
QLineEdit * cardNameEdit
Definition draw_probability_widget.h:39
QComboBox * filterCombo
Definition draw_probability_widget.h:41
double calculateProbability(int totalCards, int copies, int drawn, bool atLeast)
QSpinBox * manaValueSpin
Definition draw_probability_widget.h:46
QLabel * labelSuffix
Definition draw_probability_widget.h:38
QComboBox * criteriaCombo
Definition draw_probability_widget.h:40
QDialog * createConfigDialog(QWidget *parent) override
Definition draw_probability_widget.cpp:116
QJsonObject extractConfigFromDialog(QDialog *dlg) const override
Definition draw_probability_widget.cpp:123
QLabel * labelMiddle
Definition draw_probability_widget.h:37
void retranslateUi()
Definition draw_probability_widget.cpp:96
Definition draw_probability_config.h:8