statistics: implement a statistics widget on desktop

Implement a widget that shows the statistics state as comboboxes
and the statistics chart. Calls into the statistics code if any
of the comboboxes changes.

The hardest part here is the formatting of the charts list with
its icons and with headings. Sadly, it is not trivial to arrange
icons horizontally. Therefore we would have to fully reimplement
the ComboBox view, which is probably not fun.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-10-28 14:36:09 +01:00 committed by Dirk Hohndel
parent 319a7af31a
commit 165dce4a0e
3 changed files with 377 additions and 0 deletions

View file

@ -0,0 +1,38 @@
// SPDX-License-Identifier: GPL-2.0
#ifndef STATSWIDGET_H
#define STATSWIDGET_H
#include "stats/statsstate.h"
#include "stats/chartlistmodel.h"
#include "ui_statswidget.h"
#include <vector>
#include <memory>
class QCheckBox;
class StatsWidget : public QWidget {
Q_OBJECT
public:
StatsWidget(QWidget *parent = 0);
private
slots:
void closeStats();
void chartTypeChanged(int);
void var1Changed(int);
void var2Changed(int);
void var1BinnerChanged(int);
void var2BinnerChanged(int);
void var2OperationChanged(int);
void featureChanged(int, bool);
private:
Ui::StatsWidget ui;
StatsState state;
void updateUi();
std::vector<std::unique_ptr<QCheckBox>> features;
ChartListModel charts;
//QStringListModel charts;
void showEvent(QShowEvent *) override;
};
#endif // STATSWIDGET_H