#ifndef WILDMONCHART_H #define WILDMONCHART_H #include "encountertablemodel.h" #include #include namespace Ui { class WildMonChart; } class WildMonChart : public QWidget { Q_OBJECT public: explicit WildMonChart(QWidget *parent, const EncounterTableModel *table); ~WildMonChart(); public slots: void setTable(const EncounterTableModel *table); void createCharts(); private: Ui::WildMonChart *ui; const EncounterTableModel *table; QStringList groupNames; QStringList groupNamesReversed; QStringList speciesInLegendOrder; QMap tableIndexToGroupName; struct LevelRange { int min; int max; }; QMap groupedLevelRanges; struct Summary { double speciesFrequency = 0.0; QMap levelFrequencies; }; typedef QMap GroupedData; QMap speciesToGroupedData; QMap speciesToColor; QStringList getSpeciesNamesAlphabetical() const; double getSpeciesFrequency(const QString&, const QString&) const; QMap getLevelFrequencies(const QString &, const QString &) const; LevelRange getLevelRange(const QString &, const QString &) const; bool usesGroupLabels() const; void clearTableData(); void readTable(); void createSpeciesDistributionChart(); void createLevelDistributionChart(); QBarSet* createLevelDistributionBarSet(const QString &, const QString &, bool, double *); void applySpeciesColors(QAbstractBarSeries *); QChart::ChartTheme currentTheme() const; void updateTheme(); void stopChartAnimation(); }; #endif // WILDMONCHART_H