From 6f66b9540e82540478727c9f1f706640f5b2cfb3 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Wed, 25 Jun 2025 15:14:18 +0200 Subject: [PATCH] fix(editor): clicking save on the do you want to save dialog cancels the operation --- editor/mainwindow.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/editor/mainwindow.cpp b/editor/mainwindow.cpp index 752cebc..2b14a5a 100644 --- a/editor/mainwindow.cpp +++ b/editor/mainwindow.cpp @@ -126,9 +126,10 @@ void MainWindow::closeEvent(QCloseEvent* evt) { if (result == QMessageBox::Cancel) return evt->ignore(); if (result == QMessageBox::Save) { std::optional path; - if (!gDataModel->HasFile()) + if (!gDataModel->HasFile()) { path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); - if (!path || path == "") return evt->ignore(); + if (!path || path == "") return evt->ignore(); + } gDataModel->SaveToFile(path); } @@ -214,9 +215,10 @@ void MainWindow::connectActionHandlers() { if (result == QMessageBox::Cancel) return; if (result == QMessageBox::Save) { std::optional path; - if (!gDataModel->HasFile()) + if (!gDataModel->HasFile()) { path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); - if (!path || path == "") return; + if (!path || path == "") return; + } gDataModel->SaveToFile(path); } @@ -253,9 +255,10 @@ void MainWindow::connectActionHandlers() { connect(ui->actionSave, &QAction::triggered, this, [&]() { std::optional path; - if (!editModeDataModel->HasFile()) + if (!editModeDataModel->HasFile()) { path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + editModeDataModel->name)); - if (!editModeDataModel->HasFile() && (!path || path == "")) return; + if (!path || path == "") return; + } editModeDataModel->SaveToFile(path); }); @@ -500,9 +503,10 @@ void MainWindow::openFile(std::string path) { if (result == QMessageBox::Cancel) return; if (result == QMessageBox::Save) { std::optional path; - if (!gDataModel->HasFile()) + if (!gDataModel->HasFile()) { path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); - if (!path || path == "") return; + if (!path || path == "") return; + } gDataModel->SaveToFile(path); }