diff --git a/plugins/feature/map/mapbeacondialog.cpp b/plugins/feature/map/mapbeacondialog.cpp index 7b5015759..bf7d84ac3 100644 --- a/plugins/feature/map/mapbeacondialog.cpp +++ b/plugins/feature/map/mapbeacondialog.cpp @@ -31,6 +31,7 @@ MapBeaconDialog::MapBeaconDialog(MapGUI *gui, QWidget* parent) : ui(new Ui::MapBeaconDialog) { ui->setupUi(this); + setAttribute(Qt::WA_QuitOnClose, false); connect(&m_dlm, &HttpDownloadManager::downloadComplete, this, &MapBeaconDialog::downloadFinished); } diff --git a/plugins/feature/map/mapgui.cpp b/plugins/feature/map/mapgui.cpp index 8bd3d6a0b..8714b4884 100644 --- a/plugins/feature/map/mapgui.cpp +++ b/plugins/feature/map/mapgui.cpp @@ -2507,17 +2507,20 @@ void MapGUI::on_displaySettings_clicked() void MapGUI::on_beacons_clicked() { m_beaconDialog.show(); + m_beaconDialog.raise(); } void MapGUI::on_ibpBeacons_clicked() { m_ibpBeaconDialog.show(); + m_ibpBeaconDialog.raise(); } void MapGUI::on_radiotime_clicked() { m_radioTimeDialog.updateTable(); m_radioTimeDialog.show(); + m_radioTimeDialog.raise(); } QString MapGUI::getDataDir() diff --git a/plugins/feature/map/mapibpbeacondialog.cpp b/plugins/feature/map/mapibpbeacondialog.cpp index 132f240a8..01bc0d9cd 100644 --- a/plugins/feature/map/mapibpbeacondialog.cpp +++ b/plugins/feature/map/mapibpbeacondialog.cpp @@ -30,9 +30,9 @@ MapIBPBeaconDialog::MapIBPBeaconDialog(MapGUI *gui, QWidget* parent) : ui(new Ui::MapIBPBeaconDialog) { ui->setupUi(this); + setAttribute(Qt::WA_QuitOnClose, false); connect(&m_timer, &QTimer::timeout, this, &MapIBPBeaconDialog::updateTime); m_timer.setInterval(1000); - m_timer.start(); ui->beacons->setRowCount(IBPBeacon::m_frequencies.size()); for (int row = 0; row < IBPBeacon::m_frequencies.size(); row++) { @@ -44,7 +44,6 @@ MapIBPBeaconDialog::MapIBPBeaconDialog(MapGUI *gui, QWidget* parent) : ui->beacons->setItem(row, IBP_BEACON_COL_DISTANCE, new QTableWidgetItem("")); } resizeTable(); - updateTable(QTime::currentTime()); } MapIBPBeaconDialog::~MapIBPBeaconDialog() @@ -126,3 +125,17 @@ void MapIBPBeaconDialog::updateTime() updateTable(t); } } + +void MapIBPBeaconDialog::showEvent(QShowEvent *event) +{ + (void) event; + updateTable(QTime::currentTime()); + updateTime(); + m_timer.start(); +} + +void MapIBPBeaconDialog::hideEvent(QHideEvent *event) +{ + (void) event; + m_timer.stop(); +} diff --git a/plugins/feature/map/mapibpbeacondialog.h b/plugins/feature/map/mapibpbeacondialog.h index 8712b2d04..f4d5b5945 100644 --- a/plugins/feature/map/mapibpbeacondialog.h +++ b/plugins/feature/map/mapibpbeacondialog.h @@ -43,6 +43,8 @@ private slots: void accept(); void on_beacons_cellDoubleClicked(int row, int column); void updateTime(); + void showEvent(QShowEvent *event); + void hideEvent(QHideEvent *event); private: MapGUI *m_gui; diff --git a/plugins/feature/map/mapradiotimedialog.cpp b/plugins/feature/map/mapradiotimedialog.cpp index 0df4bc2a5..13eead4ce 100644 --- a/plugins/feature/map/mapradiotimedialog.cpp +++ b/plugins/feature/map/mapradiotimedialog.cpp @@ -29,6 +29,7 @@ MapRadioTimeDialog::MapRadioTimeDialog(MapGUI *gui, QWidget* parent) : ui(new Ui::MapRadioTimeDialog) { ui->setupUi(this); + setAttribute(Qt::WA_QuitOnClose, false); // Don't call updateTable until m_gui->getAzEl() will return valid location }