diff options
| author | 2023-04-30 18:31:18 -0400 | |
|---|---|---|
| committer | 2023-04-30 18:31:18 -0400 | |
| commit | 4de57f628bc74f00ba1885e91c84ea07c5405d8f (patch) | |
| tree | 5d91900751e826d491ff1b2ebc571a787e84f864 /SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp | |
| parent | 74d881cefa9097e58e129e37b9c44d680d8c7dfe (diff) | |
| parent | 3565aad630864ecdbe53fdaa501ea708555b3c7c (diff) | |
Update upstream source from tag 'upstream/3.4.4+dfsg'
Update to upstream version '3.4.4+dfsg'
with Debian dir 482614bd23f0ef52dabc9803477204ad88e917ed
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp index 685e608..f6072c3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp @@ -1,7 +1,7 @@ #include "mdiwindow.h" #include "mdichild.h" -#include "common/unused.h" #include "mdiarea.h" +#include "iconmanager.h" #include "mainwindow.h" #include "services/dbmanager.h" #include "db/db.h" @@ -170,7 +170,7 @@ void MdiWindow::closeEvent(QCloseEvent* e) void MdiWindow::dbAboutToBeDisconnected(Db* db, bool& deny) { - if (!db || getMdiChild()->getAssociatedDb() != db) + if (!isAssociatedWithDb(db)) return; if (MAINWINDOW->isClosingApp()) @@ -184,14 +184,13 @@ void MdiWindow::dbAboutToBeDisconnected(Db* db, bool& deny) void MdiWindow::dbDisconnected(Db* db) { - if (!db || getMdiChild()->getAssociatedDb() != db) + if (!isAssociatedWithDb(db)) return; if (MAINWINDOW->isClosingApp()) return; - getMdiChild()->dbClosedFinalCleanup(); - close(); + closeWindow(); } bool MdiWindow::confirmClose() @@ -208,6 +207,22 @@ bool MdiWindow::confirmClose() return (msgBox.exec() == QMessageBox::Yes); } + +void MdiWindow::closeWindow() +{ + getMdiChild()->dbClosedFinalCleanup(); + MDIAREA->enforceCurrentTaskSelectionAfterWindowClose(); + close(); +} + +bool MdiWindow::isAssociatedWithDb(Db* db) +{ + if (dbBeingClosed) + return true; // it was already confirmed by dbAboutToBeDisconnected() and any changes to the "db" member afterwards should not inflict decision change here + + return db && getMdiChild()->getAssociatedDb() == db; +} + bool MdiWindow::getCloseWithoutSessionSaving() const { return closeWithoutSessionSaving; |
