From 6528bbe19d44b2ba175b25f8a19e90f7549025b6 Mon Sep 17 00:00:00 2001 From: Michael Carpenter Date: Tue, 5 Aug 2014 06:47:54 -0400 Subject: [PATCH] Interface: Fix for crash on close involving saving settings of nonexistant windows --- core/src/mainwindow.cpp | 102 +++++++++++++++++++++++++++++++++------- 1 file changed, 86 insertions(+), 16 deletions(-) diff --git a/core/src/mainwindow.cpp b/core/src/mainwindow.cpp index 41063c4..2735325 100644 --- a/core/src/mainwindow.cpp +++ b/core/src/mainwindow.cpp @@ -2066,51 +2066,121 @@ MainWindow::~MainWindow() //tablesMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",tablesMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",tablesMdiWindow->isHidden()); windowsettings.setValue("type","tablesMdiWindow"); + if (tablesMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",tablesMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",tablesMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } //firmwareMetaMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",firmwareMetaMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",firmwareMetaMdiWindow->isHidden()); windowsettings.setValue("type","firmwareMetaMdiWindow"); + if (firmwareMetaMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",firmwareMetaMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",firmwareMetaMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } //interrogateProgressMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",interrogateProgressMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",interrogateProgressMdiWindow->isHidden()); windowsettings.setValue("type","interrogateProgressMdiWindow"); + if (interrogateProgressMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",interrogateProgressMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",interrogateProgressMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //emsMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",emsMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",emsMdiWindow->isHidden()); windowsettings.setValue("type","emsMdiWindow"); + if (emsMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",emsMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",emsMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //flagsMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",flagsMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",flagsMdiWindow->isHidden()); windowsettings.setValue("type","flagsMdiWindow"); + if (flagsMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",flagsMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",flagsMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //gaugesMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",gaugesMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",gaugesMdiWindow->isHidden()); windowsettings.setValue("type","gaugesMdiWindow"); + if (gaugesMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",gaugesMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",gaugesMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //packetStatusMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",packetStatusMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",packetStatusMdiWindow->isHidden()); windowsettings.setValue("type","packetStatusMdiWindow"); + if (packetStatusMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",packetStatusMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",packetStatusMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //aboutMdiWindow windowsettings.setArrayIndex(val++); - windowsettings.setValue("location",aboutMdiWindow->saveGeometry()); - windowsettings.setValue("hidden",aboutMdiWindow->isHidden()); windowsettings.setValue("type","aboutMdiWindow"); + if (aboutMdiWindow) + { + windowsettings.setValue("enabled",true); + windowsettings.setValue("location",aboutMdiWindow->saveGeometry()); + windowsettings.setValue("hidden",aboutMdiWindow->isHidden()); + } + else + { + windowsettings.setValue("enabled",false); + } + //emsStatusMdiWindow //windowsettings.setArrayIndex(val++);