From 62c1ed2dc7c777b169c591701a15b3c9a35cda2b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 10 Oct 2018 18:07:55 -0500 Subject: [PATCH] Clarify save prompt when closing tileset editor --- src/ui/tileseteditor.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index b31addfd..279338de 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -382,20 +382,27 @@ void TilesetEditor::importTilesetTiles(Tileset *tileset, bool primary) { void TilesetEditor::closeEvent(QCloseEvent *event) { - bool close = true; if (this->hasUnsavedChanges) { - QMessageBox::StandardButton result = QMessageBox::question(this, "porymap", - "Discard unsaved Tileset changes?", - QMessageBox::No | QMessageBox::Yes, - QMessageBox::Yes); - close = result == QMessageBox::Yes; - } + QMessageBox::StandardButton result = QMessageBox::question( + this, + "porymap", + "Tileset has been modified, save changes?", + QMessageBox::No | QMessageBox::Yes | QMessageBox::Cancel, + QMessageBox::Yes); - if (close) { + if (result == QMessageBox::Yes) { + this->on_actionSave_Tileset_triggered(); + event->accept(); + emit closed(); + } else if (result == QMessageBox::No) { + event->accept(); + emit closed(); + } else if (result == QMessageBox::Cancel) { + event->ignore(); + } + } else { event->accept(); emit closed(); - } else { - event->ignore(); } }