mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
ba95edc2d2
When changing the theme to a dark theme, also change the statistics theme. The code is a mess, because it crashes when setting the theme right at the beginning. Therefore, there is a "theme has been set" flag. Also, this directly accesses the ThemeInterface singleton object. I have no time to fight QML, sorry. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
75 lines
2.5 KiB
C++
75 lines
2.5 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef STATSMANAGER_H
|
|
#define STATSMANAGER_H
|
|
|
|
#include "stats/statsview.h"
|
|
#include "stats/statsstate.h"
|
|
|
|
#include <QStringList>
|
|
|
|
class ChartListModel;
|
|
|
|
class StatsManager : public QObject {
|
|
Q_OBJECT
|
|
public:
|
|
Q_PROPERTY(QStringList var1List MEMBER var1List NOTIFY var1ListChanged)
|
|
Q_PROPERTY(QStringList binner1List MEMBER binner1List NOTIFY binner1ListChanged)
|
|
Q_PROPERTY(QStringList var2List MEMBER var2List NOTIFY var2ListChanged)
|
|
Q_PROPERTY(QStringList binner2List MEMBER binner2List NOTIFY binner2ListChanged)
|
|
Q_PROPERTY(QStringList operation2List MEMBER operation2List NOTIFY operation2ListChanged)
|
|
Q_PROPERTY(QStringList sortMode1List MEMBER sortMode1List NOTIFY sortMode1ListChanged)
|
|
Q_PROPERTY(int var1Index MEMBER var1Index NOTIFY var1IndexChanged)
|
|
Q_PROPERTY(int binner1Index MEMBER binner1Index NOTIFY binner1IndexChanged)
|
|
Q_PROPERTY(int var2Index MEMBER var2Index NOTIFY var2IndexChanged)
|
|
Q_PROPERTY(int binner2Index MEMBER binner2Index NOTIFY binner2IndexChanged)
|
|
Q_PROPERTY(int operation2Index MEMBER operation2Index NOTIFY operation2IndexChanged)
|
|
Q_PROPERTY(int sortMode1Index MEMBER sortMode1Index NOTIFY sortMode1IndexChanged)
|
|
|
|
StatsManager();
|
|
~StatsManager();
|
|
Q_INVOKABLE void init(StatsView *v, ChartListModel *charts);
|
|
Q_INVOKABLE void doit();
|
|
Q_INVOKABLE void var1Changed(int idx);
|
|
Q_INVOKABLE void var1BinnerChanged(int idx);
|
|
Q_INVOKABLE void var2Changed(int idx);
|
|
Q_INVOKABLE void var2BinnerChanged(int idx);
|
|
Q_INVOKABLE void var2OperationChanged(int idx);
|
|
Q_INVOKABLE void sortMode1Changed(int idx);
|
|
Q_INVOKABLE void setChart(int idx);
|
|
signals:
|
|
void var1ListChanged();
|
|
void binner1ListChanged();
|
|
void var2ListChanged();
|
|
void binner2ListChanged();
|
|
void operation2ListChanged();
|
|
void sortMode1ListChanged();
|
|
void var1IndexChanged();
|
|
void binner1IndexChanged();
|
|
void var2IndexChanged();
|
|
void binner2IndexChanged();
|
|
void operation2IndexChanged();
|
|
void sortMode1IndexChanged();
|
|
private slots:
|
|
void themeChanged();
|
|
private:
|
|
StatsView *view;
|
|
ChartListModel *charts;
|
|
StatsState state;
|
|
QStringList var1List;
|
|
QStringList binner1List;
|
|
QStringList var2List;
|
|
QStringList binner2List;
|
|
QStringList operation2List;
|
|
QStringList sortMode1List;
|
|
int var1Index;
|
|
int binner1Index;
|
|
int var2Index;
|
|
int binner2Index;
|
|
int operation2Index;
|
|
int sortMode1Index;
|
|
StatsState::UIState uiState; // Remember UI state so that we can interpret indexes
|
|
bool themeInitialized; // setTheme() crashes if called in init()
|
|
void updateUi();
|
|
};
|
|
|
|
#endif
|