fix(editor): clicking save on the do you want to save dialog cancels the operation

This commit is contained in:
maelstrom 2025-06-25 15:14:18 +02:00
parent d3ea7cc0cd
commit 6f66b9540e

View file

@ -126,9 +126,10 @@ void MainWindow::closeEvent(QCloseEvent* evt) {
if (result == QMessageBox::Cancel) return evt->ignore(); if (result == QMessageBox::Cancel) return evt->ignore();
if (result == QMessageBox::Save) { if (result == QMessageBox::Save) {
std::optional<std::string> path; std::optional<std::string> path;
if (!gDataModel->HasFile()) if (!gDataModel->HasFile()) {
path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); 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); gDataModel->SaveToFile(path);
} }
@ -214,9 +215,10 @@ void MainWindow::connectActionHandlers() {
if (result == QMessageBox::Cancel) return; if (result == QMessageBox::Cancel) return;
if (result == QMessageBox::Save) { if (result == QMessageBox::Save) {
std::optional<std::string> path; std::optional<std::string> path;
if (!gDataModel->HasFile()) if (!gDataModel->HasFile()) {
path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name));
if (!path || path == "") return; if (!path || path == "") return;
}
gDataModel->SaveToFile(path); gDataModel->SaveToFile(path);
} }
@ -253,9 +255,10 @@ void MainWindow::connectActionHandlers() {
connect(ui->actionSave, &QAction::triggered, this, [&]() { connect(ui->actionSave, &QAction::triggered, this, [&]() {
std::optional<std::string> path; std::optional<std::string> path;
if (!editModeDataModel->HasFile()) if (!editModeDataModel->HasFile()) {
path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + editModeDataModel->name)); 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); editModeDataModel->SaveToFile(path);
}); });
@ -500,9 +503,10 @@ void MainWindow::openFile(std::string path) {
if (result == QMessageBox::Cancel) return; if (result == QMessageBox::Cancel) return;
if (result == QMessageBox::Save) { if (result == QMessageBox::Save) {
std::optional<std::string> path; std::optional<std::string> path;
if (!gDataModel->HasFile()) if (!gDataModel->HasFile()) {
path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name)); path = openFileDialog("Openblocks Level (*.obl)", ".obl", QFileDialog::AcceptSave, QString::fromStdString("Save " + gDataModel->name));
if (!path || path == "") return; if (!path || path == "") return;
}
gDataModel->SaveToFile(path); gDataModel->SaveToFile(path);
} }