diff --git a/src/blackgui/loginmodebuttons.cpp b/src/blackgui/loginmodebuttons.cpp index b3cccb6c1..484c5d6e1 100644 --- a/src/blackgui/loginmodebuttons.cpp +++ b/src/blackgui/loginmodebuttons.cpp @@ -7,12 +7,17 @@ * contained in the LICENSE file. */ +#include "blackconfig/buildconfig.h" #include "blackgui/loginmodebuttons.h" +#include "blackgui/guiapplication.h" +#include "blackcore/context/contextsimulator.h" #include "ui_loginmodebuttons.h" #include +using namespace BlackConfig; using namespace BlackCore; +using namespace BlackCore::Context; namespace BlackGui { @@ -21,6 +26,9 @@ namespace BlackGui ui(new Ui::CLoginModeButtons) { ui->setupUi(this); + configureLoginModes(); + connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorStatusChanged, + this, &CLoginModeButtons::configureLoginModes); } CLoginModeButtons::~CLoginModeButtons() @@ -56,4 +64,25 @@ namespace BlackGui break; } } + + void CLoginModeButtons::configureLoginModes() + { + if(CBuildConfig::isShippedVersion() && !sGui->getIContextSimulator()->isSimulatorSimulating()) + { + // Disable pilot login modes + ui->rb_LoginNormal->setEnabled(false); + ui->rb_LoginStealth->setEnabled(false); + ui->rb_LoginNormal->setToolTip("No simulator available"); + ui->rb_LoginStealth->setToolTip("No simulator available"); + ui->rb_LoginObserver->setChecked(true); + } + else + { + ui->rb_LoginNormal->setEnabled(true); + ui->rb_LoginStealth->setEnabled(true); + ui->rb_LoginNormal->setToolTip({}); + ui->rb_LoginStealth->setToolTip({}); + ui->rb_LoginNormal->setChecked(true); + } + } } diff --git a/src/blackgui/loginmodebuttons.h b/src/blackgui/loginmodebuttons.h index faac07678..434947ab4 100644 --- a/src/blackgui/loginmodebuttons.h +++ b/src/blackgui/loginmodebuttons.h @@ -44,6 +44,8 @@ namespace BlackGui void setLoginMode(BlackCore::INetwork::LoginMode mode); private: + void configureLoginModes(); + QScopedPointer ui; }; }