summaryrefslogtreecommitdiff
path: root/src/gui/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/mainwindow.cpp')
-rw-r--r--src/gui/mainwindow.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index b0ffdc6..479d8ed 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -108,7 +108,25 @@ void MainWindow::closeEvent(QCloseEvent *event)
settings.setValue("geometry-main", saveGeometry());
settings.setValue("windowState-main", saveState(2));
- QMainWindow::closeEvent(event);
+ if (!_tikzDocument->isClean()) {
+ QString nm = _tikzDocument->shortName();
+ if (nm.isEmpty()) nm = "untitled";
+ QMessageBox::StandardButton resBtn = QMessageBox::question(
+ this, "Save Changes",
+ "Do you wish to save changes to " + nm + "?",
+ QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
+ QMessageBox::Yes);
+
+ if (resBtn == QMessageBox::Yes && _tikzDocument->save()) {
+ event->accept();
+ } else if (resBtn == QMessageBox::No) {
+ event->accept();
+ } else {
+ event->ignore();
+ }
+ } else {
+ event->accept();
+ }
}
void MainWindow::changeEvent(QEvent *event)
@@ -144,7 +162,7 @@ void MainWindow::updateFileName()
QString nm = _tikzDocument->shortName();
if (nm.isEmpty()) nm = "untitled";
if (!_tikzDocument->isClean()) nm += "*";
- setWindowTitle("TiKZiT - " + nm);
+ setWindowTitle(nm + " - TikZiT");
}
void MainWindow::refreshTikz()