From 4fe0884432f3e5868ca2bb78a64ab12bbeba43b1 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 08:58:07 +0200 Subject: [PATCH] add of save function with default value --- mainwindow.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++ mainwindow.h | 3 +++ mainwindow.ui | 71 +++++++++++++++++++++++--------------------------- path.cpp | 2 +- 4 files changed, 97 insertions(+), 39 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index bee0fdd..55250f8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -5,6 +5,13 @@ #include #include + +#include +#include +#include +#include + + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -58,6 +65,7 @@ void MainWindow::loadPath() ui->lengthSpin->setValue(p->getLength()); ui->durationSpin->setValue(p->getDuration()); ui->imagePath->setText(p->getImage()); + ui->depSpin->setValue(p->getDepartement()); loadImage(p->getImage()); } @@ -131,3 +139,55 @@ void MainWindow::on_toolButton_clicked() loadImage(fileName); } +void MainWindow::saveFile(){ + QString fileName; + if (currentFile.isEmpty()) { + fileName = QFileDialog::getSaveFileName(this, "Save"); + currentFile = fileName; + } else { + fileName = currentFile; + } + QFile file(fileName); + if (!file.open(QIODevice::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + return; + } + setWindowTitle(fileName); + QJsonObject json; + json["name"] = ui->titleEdit->text(); + json["city"] =ui->locEdit->text(); + json["departement"] = ui->depSpin->text(); + json["difficulty"] = ui->diffSpin->value(); + json["duration"] = ui->durationSpin->value(); + json["length"] = ui->lengthSpin->value(); + json["image"] = ui->imagePath->text(); + + + QJsonArray steps; + QJsonObject step1; + step1["numero"] = "3"; + step1["title"] = "ok ca marche"; + step1["GPS"] = "S 45 37.199 E 1 2.009"; + step1["reponse"] = "34"; + + QJsonArray dialogues; + QJsonObject dialogue1; + dialogue1["personnage"] = "Quentin"; + dialogue1["texte"] = "ok c'est cool"; + + dialogues.append(dialogue1); + step1["dialogue"] = dialogues; + steps.append(step1); + json["steps"] = steps; + + QJsonDocument doc(json); + file.write(doc.toJson()); + + file.close(); +} + +void MainWindow::on_actionSave_triggered() +{ + this->saveFile(); +} + diff --git a/mainwindow.h b/mainwindow.h index 24fc256..5540d1d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -25,6 +25,7 @@ public: void addNewPath(); void addNewStep(); void exportHTMLMap(); + void saveFile(); private slots: void on_pushButton_clicked(); @@ -33,6 +34,8 @@ private slots: void on_toolButton_clicked(); + void on_actionSave_triggered(); + private: Ui::MainWindow *ui; QString currentFile; diff --git a/mainwindow.ui b/mainwindow.ui index 95edce2..98e41b5 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -38,9 +38,6 @@ Path information - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - @@ -52,10 +49,7 @@ - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised + QFrame::NoFrame @@ -104,7 +98,11 @@ - + + + 1 + + @@ -120,6 +118,9 @@ + + true + @@ -249,7 +250,7 @@ ... - + :/data/images/data/images/add.png:/data/images/data/images/add.png @@ -276,18 +277,12 @@ Step information - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised + QFrame::NoFrame @@ -299,7 +294,7 @@ 0 0 800 - 23 + 21 @@ -368,127 +363,127 @@ - + :/data/images/data/images/new.png:/data/images/data/images/new.png NewFile - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/save_as.png:/data/images/data/images/save_as.png SaveFile - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/save.png:/data/images/data/images/save.png SaveAsFile - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/print.png:/data/images/data/images/print.png PrintFile - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/copy.png:/data/images/data/images/copy.png EditCopy - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/paste.png:/data/images/data/images/paste.png EditPaste - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/cut.png:/data/images/data/images/cut.png EditCut - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/edit_undo.png:/data/images/data/images/edit_undo.png EditUndo - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/edit_redo.png:/data/images/data/images/edit_redo.png EditRedo - QAction::MenuRole::NoRole + QAction::NoRole - + :/data/images/data/images/new.png:/data/images/data/images/new.png New - QAction::MenuRole::NoRole + QAction::NoRole - + diff --git a/path.cpp b/path.cpp index 7a421f7..26a2558 100644 --- a/path.cpp +++ b/path.cpp @@ -75,7 +75,7 @@ Path::Path(QFile *file){ QJsonArray stepsArray = json["steps"].toArray(); for (const QJsonValue &stepValue : stepsArray) { QJsonObject stepObj = stepValue.toObject(); - //step.append(Step(stepObj)); + step.append(Step(stepObj)); } }