From 731db4f685513712036cbd81d66bab2896da23b2 Mon Sep 17 00:00:00 2001 From: lauracosta Date: Mon, 11 Mar 2024 12:12:49 +0100 Subject: [PATCH] add dialogVariableToSum --- meteoWidget/dialogVariableToSum.cpp | 59 +++++++++++++++++++++++++++++ meteoWidget/dialogVariableToSum.h | 21 ++++++++++ meteoWidget/meteoWidget.cpp | 35 ++++++++++++++--- meteoWidget/meteoWidget.pro | 2 + 4 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 meteoWidget/dialogVariableToSum.cpp create mode 100644 meteoWidget/dialogVariableToSum.h diff --git a/meteoWidget/dialogVariableToSum.cpp b/meteoWidget/dialogVariableToSum.cpp new file mode 100644 index 000000000..78e09dee3 --- /dev/null +++ b/meteoWidget/dialogVariableToSum.cpp @@ -0,0 +1,59 @@ +#include "dialogVariableToSum.h" + +DialogVariableToSum::DialogVariableToSum(QList variableList) +: variableList(variableList) +{ + setWindowTitle("Choose variable to sum"); + this->resize(400, 200); + QVBoxLayout *mainLayout = new QVBoxLayout(); + QVBoxLayout *variableLayout = new QVBoxLayout; + QHBoxLayout *layoutOk = new QHBoxLayout; + QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + + layoutOk->addWidget(&buttonBox); + for (int i = 0; iaddWidget(checkbox); + } + + mainLayout->addLayout(variableLayout); + mainLayout->addLayout(layoutOk); + setLayout(mainLayout); + + connect(&buttonBox, &QDialogButtonBox::accepted, [=](){ this->done(true); }); + connect(&buttonBox, &QDialogButtonBox::rejected, [=](){ this->done(false); }); + + show(); + exec(); + +} + +void DialogVariableToSum::done(bool res) +{ + if (res) + { + foreach (QCheckBox *checkBox, checkList) + { + if (checkBox->isChecked()) + { + selectedVariable.append(checkBox->text()); + } + } + QDialog::done(QDialog::Accepted); + return; + } + else // cancel, close or exc was pressed + { + QDialog::done(QDialog::Rejected); + return; + } +} + +QList DialogVariableToSum::getSelectedVariable() +{ + return selectedVariable; +} + + diff --git a/meteoWidget/dialogVariableToSum.h b/meteoWidget/dialogVariableToSum.h new file mode 100644 index 000000000..fc2300453 --- /dev/null +++ b/meteoWidget/dialogVariableToSum.h @@ -0,0 +1,21 @@ +#ifndef DIALOGVARIABLETOSUM_H +#define DIALOGVARIABLETOSUM_H + +#include + +class DialogVariableToSum : public QDialog +{ + Q_OBJECT + +private: + QList variableList; + QList selectedVariable; + QList checkList; + +public: + DialogVariableToSum(QList variableList); + QList getSelectedVariable(); + void done(bool res); +}; + +#endif // DIALOGVARIABLETOSUM_H diff --git a/meteoWidget/meteoWidget.cpp b/meteoWidget/meteoWidget.cpp index 8814c5c1a..78daab9df 100644 --- a/meteoWidget/meteoWidget.cpp +++ b/meteoWidget/meteoWidget.cpp @@ -27,6 +27,7 @@ #include "dialogRemoveStation.h" #include "dialogMeteoTable.h" #include "dialogChangeAxis.h" +#include "dialogVariableToSum.h" #include "utilities.h" #include "commonConstants.h" #include "formInfo.h" @@ -777,7 +778,11 @@ void Crit3DMeteoWidget::drawEnsembleDailyVar() { sortedList.clear(); myDate = firstCrit3DDate.addDays(day); - meteoVariable meteoVar = MapDailyMeteoVar.at(nameLines[i].toStdString()); + meteoVariable meteoVar = getMeteoVar(nameLines[i].toStdString()); + if (meteoVar == noMeteoVar) + { + continue; + } for (int mp=0; mp varToSumList; + if (varToSum.result() == QDialog::Accepted) + { + varToSumList = varToSum.getSelectedVariable(); + } + qDebug() << "varToSumList " << varToSumList.join(","); + } diff --git a/meteoWidget/meteoWidget.pro b/meteoWidget/meteoWidget.pro index 53fa8c5c1..4ba03167d 100644 --- a/meteoWidget/meteoWidget.pro +++ b/meteoWidget/meteoWidget.pro @@ -39,6 +39,7 @@ SOURCES += \ dialogMeteoTable.cpp \ dialogRemoveStation.cpp \ dialogSelectVar.cpp \ + dialogVariableToSum.cpp \ meteoTable.cpp \ meteoWidget.cpp @@ -47,6 +48,7 @@ HEADERS += \ dialogMeteoTable.h \ dialogRemoveStation.h \ dialogSelectVar.h \ + dialogVariableToSum.h \ meteoTable.h \ meteoWidget.h