diff --git a/src/blackgui/components/aircraftmodelsetvalidationdialog.cpp b/src/blackgui/components/aircraftmodelsetvalidationdialog.cpp index 56cba2a1b..c46410183 100644 --- a/src/blackgui/components/aircraftmodelsetvalidationdialog.cpp +++ b/src/blackgui/components/aircraftmodelsetvalidationdialog.cpp @@ -31,8 +31,10 @@ namespace BlackGui void CAircraftModelSetValidationDialog::validatedModelSet(const CSimulatorInfo &simulator, const CAircraftModelList &valid, const CAircraftModelList &invalid, bool stopped, const CStatusMessageList &msgs) { + if (!sGui) { return; } ui->comp_AircraftModelValidation->validatedModelSet(simulator, valid, invalid, stopped, msgs); this->setWindowTitle(QStringLiteral("Model validation for '%1'").arg(simulator.toQString(true))); + CGuiApplication::modalWindowToFront(); } bool CAircraftModelSetValidationDialog::event(QEvent *event) diff --git a/src/blackgui/components/autopublishdialog.cpp b/src/blackgui/components/autopublishdialog.cpp index e8185e277..e0d3d326f 100644 --- a/src/blackgui/components/autopublishdialog.cpp +++ b/src/blackgui/components/autopublishdialog.cpp @@ -7,8 +7,10 @@ */ #include "autopublishdialog.h" +#include "blackgui/guiapplication.h" #include "ui_autopublishdialog.h" + namespace BlackGui { namespace Components @@ -33,8 +35,8 @@ namespace BlackGui { const int r = ui->comp_AutoPublish->readFiles(); this->show(); + CGuiApplication::modalWindowToFront(); return r; } - } // ns } // ns diff --git a/src/blackgui/components/dbloaddatadialog.cpp b/src/blackgui/components/dbloaddatadialog.cpp index 035e95bd4..acfc2113c 100644 --- a/src/blackgui/components/dbloaddatadialog.cpp +++ b/src/blackgui/components/dbloaddatadialog.cpp @@ -57,6 +57,7 @@ namespace BlackGui bool CDbLoadDataDialog::newerOrEmptyEntitiesDetected(CEntityFlags::Entity loadEntities) { this->show(); + CGuiApplication::modalWindowToFront(); if (m_consolidating) { return false; } if (m_pendingEntities != CEntityFlags::NoEntity) { return false; } // already loading if (loadEntities == CEntityFlags::NoEntity) { return false; } diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 02d06cf67..aa59345ca 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -60,6 +60,7 @@ #include #include #include +#include #include #include #include @@ -357,6 +358,12 @@ namespace BlackGui return s->geometry(); } + void CGuiApplication::modalWindowToFront() + { + if (!QGuiApplication::modalWindow()) { return; } + QGuiApplication::modalWindow()->raise(); + } + bool CGuiApplication::saveWindowGeometryAndState(const QMainWindow *window) const { if (!window) { return false; } diff --git a/src/blackgui/guiapplication.h b/src/blackgui/guiapplication.h index 4cc66cdab..91d2021d8 100644 --- a/src/blackgui/guiapplication.h +++ b/src/blackgui/guiapplication.h @@ -11,13 +11,13 @@ #ifndef BLACKGUI_GUIAPPLICATION_H #define BLACKGUI_GUIAPPLICATION_H -#include "blackcore/application.h" -#include "blackgui/blackguiexport.h" -#include "blackgui/enableforframelesswindow.h" -#include "blackgui/mainwindowaccess.h" #include "blackgui/settings/guisettings.h" #include "blackgui/settings/updatenotification.h" +#include "blackgui/enableforframelesswindow.h" +#include "blackgui/mainwindowaccess.h" #include "blackgui/stylesheetutility.h" +#include "blackgui/blackguiexport.h" +#include "blackcore/application.h" #include "blackmisc/network/networkutils.h" #include "blackmisc/icons.h" #include "blackmisc/statusmessage.h" @@ -266,6 +266,9 @@ namespace BlackGui //! \remark logical resolution, not physical resolution static QRect currentScreenGeometry(); + //! Bring any modal dialog to front + static void modalWindowToFront(); + //! Parse scale factor if any static double parseScaleFactor(int argc, char *argv[]); diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 30a7f5cb1..5b7b78905 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -63,9 +63,10 @@ namespace BlackSimPlugin const QPointer myself(this); QTimer::singleShot(1000, this, [ = ] { - if (myself.isNull()) { return; } + if (myself.isNull() || !sGui || sGui->isShuttingDown()) { return; } this->emitSimulatorCombinedStatus(); m_monitorWidget->show(); + CGuiApplication::modalWindowToFront(); }); if (canLog()) { m_monitorWidget->appendReceivingCall(Q_FUNC_INFO); }