diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-06-28 15:20:42 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-06-28 20:23:59 +0800 |
commit | 880b8394d2b063c1bbd6597c2cb6c51f0a1d66c1 (patch) | |
tree | f863c91877216d29ed4017cd0c607e230d4b075d /qt-ui | |
parent | 233e245b78e98c9bb723c9b347b43a6c1a1a6843 (diff) | |
download | subsurface-880b8394d2b063c1bbd6597c2cb6c51f0a1d66c1.tar.gz |
Close child windows and dialogs with main window
Most child windows should be closed with the main application
window otherwise if left open and if making specific
modifictions could potentially cause a SIGSEGV.
To solve that we mark all custom windows/dialogs with
the Qt::WA_QuitOnClose attribute on instance creation.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/about.cpp | 1 | ||||
-rw-r--r-- | qt-ui/divecomputermanagementdialog.cpp | 1 | ||||
-rw-r--r-- | qt-ui/downloadfromdivecomputer.cpp | 1 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 1 | ||||
-rw-r--r-- | qt-ui/preferences.cpp | 1 | ||||
-rw-r--r-- | qt-ui/subsurfacewebservices.cpp | 1 |
6 files changed, 6 insertions, 0 deletions
diff --git a/qt-ui/about.cpp b/qt-ui/about.cpp index 18b54b956..1a96b6257 100644 --- a/qt-ui/about.cpp +++ b/qt-ui/about.cpp @@ -9,6 +9,7 @@ SubsurfaceAbout *SubsurfaceAbout::instance() { static SubsurfaceAbout *self = new SubsurfaceAbout(); + self->setAttribute(Qt::WA_QuitOnClose, false); return self; } diff --git a/qt-ui/divecomputermanagementdialog.cpp b/qt-ui/divecomputermanagementdialog.cpp index 2a1bb8bff..beb0ea45e 100644 --- a/qt-ui/divecomputermanagementdialog.cpp +++ b/qt-ui/divecomputermanagementdialog.cpp @@ -26,6 +26,7 @@ void DiveComputerManagementDialog::init() DiveComputerManagementDialog* DiveComputerManagementDialog::instance() { static DiveComputerManagementDialog *self = new DiveComputerManagementDialog(); + self->setAttribute(Qt::WA_QuitOnClose, false); return self; } diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index f3cd45c71..ba079e6dd 100644 --- a/qt-ui/downloadfromdivecomputer.cpp +++ b/qt-ui/downloadfromdivecomputer.cpp @@ -37,6 +37,7 @@ namespace DownloadFromDcGlobal{ DownloadFromDCWidget *DownloadFromDCWidget::instance() { static DownloadFromDCWidget *dialog = new DownloadFromDCWidget(); + dialog->setAttribute(Qt::WA_QuitOnClose, false); return dialog; } diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 66bebc6c7..90b2406cb 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -298,6 +298,7 @@ void MainWindow::on_actionYearlyStatistics_triggered() view->setModel(model); view->setWindowModality(Qt::NonModal); view->setMinimumWidth(600); + view->setAttribute(Qt::WA_QuitOnClose, false); view->show(); } diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp index 9a2eff8f1..19fa169e4 100644 --- a/qt-ui/preferences.cpp +++ b/qt-ui/preferences.cpp @@ -6,6 +6,7 @@ PreferencesDialog* PreferencesDialog::instance() { static PreferencesDialog *dialog = new PreferencesDialog(); + dialog->setAttribute(Qt::WA_QuitOnClose, false); return dialog; } diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp index cd944ca17..76e730be6 100644 --- a/qt-ui/subsurfacewebservices.cpp +++ b/qt-ui/subsurfacewebservices.cpp @@ -19,6 +19,7 @@ static gboolean merge_locations_into_dives(void); SubsurfaceWebServices* SubsurfaceWebServices::instance() { static SubsurfaceWebServices *self = new SubsurfaceWebServices(); + self->setAttribute(Qt::WA_QuitOnClose, false); return self; } |