diff --git a/core/src/aboutview.h b/core/src/aboutview.h index 29fdab8..e047aa1 100644 --- a/core/src/aboutview.h +++ b/core/src/aboutview.h @@ -45,7 +45,7 @@ class AboutView : public QWidget QString m_hash; Ui::AboutView ui; signals: - void windowHiding(QWidget *parent); + void windowHiding(QMdiSubWindow *parent); }; #endif // ABOUTVIEW_H diff --git a/core/src/comsettings.cpp b/core/src/comsettings.cpp index 53f9d2a..cecfc5a 100644 --- a/core/src/comsettings.cpp +++ b/core/src/comsettings.cpp @@ -36,6 +36,12 @@ void ComSettings::setInterByteDelay(int delay) { ui.interByteDelaySpinBox->setValue(delay); } +void ComSettings::closeEvent(QCloseEvent *event) +{ + emit windowHiding((QMdiSubWindow*)this->parent()); + QWidget::closeEvent(event); +} + void ComSettings::browseLogFolderClicked() { QString dir = QFileDialog::getExistingDirectory(this,"Select Log Folder","."); diff --git a/core/src/comsettings.h b/core/src/comsettings.h index 5fc25ad..4c0d27e 100644 --- a/core/src/comsettings.h +++ b/core/src/comsettings.h @@ -23,6 +23,7 @@ #define COMSETTINGS_H #include +#include #include "ui_comsettings.h" class ComSettings : public QWidget @@ -47,6 +48,8 @@ class ComSettings : public QWidget void setBaud(int baud); int getInterByteDelay(); void setInterByteDelay(int delay); +protected: + void closeEvent(QCloseEvent *event); private slots: void browseLogFolderClicked(); private: @@ -54,6 +57,7 @@ private slots: signals: void saveClicked(); void cancelClicked(); + void windowHiding(QMdiSubWindow *parent); }; #endif // COMSETTINGS_H diff --git a/core/src/mainwindow.cpp b/core/src/mainwindow.cpp index 7de4d7a..cfccf7f 100644 --- a/core/src/mainwindow.cpp +++ b/core/src/mainwindow.cpp @@ -1191,6 +1191,7 @@ void MainWindow::ui_saveDataButtonClicked() void MainWindow::menu_settingsClicked() { ComSettings *settings = new ComSettings(); + //connect(settings,SIGNAL(windowHiding(QMdiSubWindow*)),this,SLOT(windowHidden(QMdiSubWindow*))); settings->setComPort(m_comPort); settings->setBaud(m_comBaud); settings->setSaveDataLogs(m_saveLogs); @@ -1293,6 +1294,7 @@ void MainWindow::settingsSaveClicked() settings.endGroup(); QMdiSubWindow *subwin = qobject_cast(comSettingsWidget->parent()); ui.mdiArea->removeSubWindow(subwin); + comSettingsWidget->close(); comSettingsWidget->deleteLater(); if (emsComms) { @@ -1356,6 +1358,7 @@ void MainWindow::settingsCancelClicked() comSettingsWidget->hide(); QMdiSubWindow *subwin = qobject_cast(comSettingsWidget->parent()); ui.mdiArea->removeSubWindow(subwin); + comSettingsWidget->close(); comSettingsWidget->deleteLater(); } void MainWindow::menu_windows_EmsStatusClicked()