diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-01-10 18:00:19 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-01-10 15:16:52 -0800 |
commit | 9a0c5df74427fee8a9788fbb20165b03cf389906 (patch) | |
tree | 553ac06844244508ee1a48ddd154fc379c674ae3 /mobile-widgets | |
parent | 8f8ee5c589391e6bfa79e697cc83d7bc72182383 (diff) | |
download | subsurface-9a0c5df74427fee8a9788fbb20165b03cf389906.tar.gz |
statistics/mobile: set currentIndex of QML combo boxes
Use Q_PROPERTYs of the StatsManager to correctly set
the current index of comboboxes after a state changed.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qml/StatisticsPage.qml | 4 | ||||
-rw-r--r-- | mobile-widgets/statsmanager.cpp | 18 | ||||
-rw-r--r-- | mobile-widgets/statsmanager.h | 12 |
3 files changed, 28 insertions, 6 deletions
diff --git a/mobile-widgets/qml/StatisticsPage.qml b/mobile-widgets/qml/StatisticsPage.qml index 4119c653a..7c5b498ca 100644 --- a/mobile-widgets/qml/StatisticsPage.qml +++ b/mobile-widgets/qml/StatisticsPage.qml @@ -37,6 +37,7 @@ Kirigami.Page { TemplateComboBox { id: var1 model: statsManager.var1List + currentIndex: statsManager.var1Index; Layout.fillWidth: false onCurrentIndexChanged: { statsManager.var1Changed(currentIndex) @@ -54,6 +55,7 @@ Kirigami.Page { TemplateComboBox { id: var1Binner model: statsManager.binner1List + currentIndex: statsManager.binner1Index; Layout.fillWidth: false onCurrentIndexChanged: { statsManager.var1BinnerChanged(currentIndex) @@ -71,6 +73,7 @@ Kirigami.Page { TemplateComboBox { id: var2 model: statsManager.var2List + currentIndex: statsManager.var2Index; Layout.fillWidth: false onCurrentIndexChanged: { statsManager.var2Changed(currentIndex) @@ -88,6 +91,7 @@ Kirigami.Page { TemplateComboBox { id: var2Binner model: statsManager.binner2List + currentIndex: statsManager.binner2Index; Layout.fillWidth: false onCurrentIndexChanged: { statsManager.var2BinnerChanged(currentIndex) diff --git a/mobile-widgets/statsmanager.cpp b/mobile-widgets/statsmanager.cpp index d149c9978..8a192fe36 100644 --- a/mobile-widgets/statsmanager.cpp +++ b/mobile-widgets/statsmanager.cpp @@ -28,31 +28,37 @@ void StatsManager::doit() view->plot(state); } -static void setVariableList(const StatsState::VariableList &list, QStringList &stringList) +static void setVariableList(const StatsState::VariableList &list, QStringList &stringList, int &idx) { stringList.clear(); for (const StatsState::Variable &v: list.variables) stringList.push_back(v.name); + idx = list.selected; } -static void setBinnerList(const StatsState::BinnerList &list, QStringList &stringList) +static void setBinnerList(const StatsState::BinnerList &list, QStringList &stringList, int &idx) { stringList.clear(); for (const QString &v: list.binners) stringList.push_back(v); + idx = list.selected; } void StatsManager::updateUi() { uiState = state.getUIState(); - setVariableList(uiState.var1, var1List); - setBinnerList(uiState.binners1, binner1List); - setVariableList(uiState.var2, var2List); - setBinnerList(uiState.binners2, binner2List); + setVariableList(uiState.var1, var1List, var1Index); + setBinnerList(uiState.binners1, binner1List, binner1Index); + setVariableList(uiState.var2, var2List, var2Index); + setBinnerList(uiState.binners2, binner2List, binner2Index); var1ListChanged(); binner1ListChanged(); var2ListChanged(); binner2ListChanged(); + var1IndexChanged(); + binner1IndexChanged(); + var2IndexChanged(); + binner2IndexChanged(); if (view) view->plot(state); diff --git a/mobile-widgets/statsmanager.h b/mobile-widgets/statsmanager.h index bfdf6724b..c4afa6881 100644 --- a/mobile-widgets/statsmanager.h +++ b/mobile-widgets/statsmanager.h @@ -14,6 +14,10 @@ public: 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(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) StatsManager(); ~StatsManager(); @@ -28,6 +32,10 @@ signals: void binner1ListChanged(); void var2ListChanged(); void binner2ListChanged(); + void var1IndexChanged(); + void binner1IndexChanged(); + void var2IndexChanged(); + void binner2IndexChanged(); private: StatsView *view; StatsState state; @@ -35,6 +43,10 @@ private: QStringList binner1List; QStringList var2List; QStringList binner2List; + int var1Index; + int binner1Index; + int var2Index; + int binner2Index; StatsState::UIState uiState; // Remember UI state so that we can interpret indexes void updateUi(); |