summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukáš Lalinský <lalinsky@gmail.com>2008-12-07 18:14:17 +0100
committerLukáš Lalinský <lalinsky@gmail.com>2008-12-07 18:14:17 +0100
commit53a009718e0c1dc13f65eaab575c1445eb4503f0 (patch)
tree821facd912e28b4f5d62792e9ba826e4bde8f003
parent613647f385e6b7d0f1e3eba6d2b29f2d8baf7044 (diff)
downloaddbmodel-53a009718e0c1dc13f65eaab575c1445eb4503f0.tar.gz
dbmodel-53a009718e0c1dc13f65eaab575c1445eb4503f0.tar.bz2
Run maybeSave() before opening or creating a new document
-rw-r--r--src/mainwindow.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a145be1..43776dd 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -336,7 +336,7 @@ MainWindow::saveFile(const QString &fileName)
bool
MainWindow::maybeSave()
{
- if (!m_model->undoStack()->isClean()) {
+ if (m_model && !m_model->undoStack()->isClean()) {
QMessageBox::StandardButton button = QMessageBox::warning(this, QString(),
tr("The document has been modified.\nDo you want to save your changes?"),
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
@@ -351,6 +351,8 @@ MainWindow::maybeSave()
void
MainWindow::open()
{
+ if (!maybeSave())
+ return;
QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), "Database Model (*.dmf)");
if (!fileName.isNull())
loadFile(fileName);
@@ -414,8 +416,11 @@ MainWindow::exportPNG()
void
MainWindow::newModel(DiagramDocument *newModel)
{
- if (!newModel)
+ if (!newModel) {
+ if (!maybeSave())
+ return;
newModel = new DiagramDocument(this);
+ }
m_view->setScene(newModel);
if (m_model) {