[PATCH 1/3] Close child windows and dialogs with main window
Lubomir I. Ivanov
neolit123 at gmail.com
Fri Jun 28 05:20:42 PDT 2013
From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
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 at gmail.com>
---
resent due to conflicts in master.
---
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 +
7 files changed, 7 insertions(+)
diff --git a/qt-ui/about.cpp b/qt-ui/about.cpp
index 18b54b9..1a96b62 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 2a1bb8b..beb0ea4 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 f3cd45c..ba079e6 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 3f16b50..ddc993a 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -297,6 +297,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 9a2eff8..19fa169 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 cd944ca..76e730b 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;
}
--
1.7.11.msysgit.0
More information about the subsurface
mailing list