From 880b8394d2b063c1bbd6597c2cb6c51f0a1d66c1 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Fri, 28 Jun 2013 15:20:42 +0300 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/about.cpp | 1 + qt-ui/divecomputermanagementdialog.cpp | 1 + qt-ui/downloadfromdivecomputer.cpp | 1 + qt-ui/mainwindow.cpp | 1 + qt-ui/preferences.cpp | 1 + qt-ui/subsurfacewebservices.cpp | 1 + 6 files changed, 6 insertions(+) (limited to 'qt-ui') 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; } -- cgit v1.2.3-70-g09d2