refactor(ui): Do not allow to overwrite FSD settings from connect page

Overwriting FSD settings from the connect page (instead of changing the
server settings itself) introduced some complexity in the UI. As
spontaniously changing the FSD settings is likely a VERY rare use-case
and to simplify the logic/UI, it should only be done from the server
settings itself.
This commit is contained in:
Lars Toenning
2024-08-23 21:43:37 +02:00
parent 6f73a99895
commit a75ccb9927
9 changed files with 1 additions and 302 deletions

View File

@@ -81,9 +81,6 @@ namespace BlackGui::Components
this->setForceSmall(true); this->setForceSmall(true);
this->showKillButton(false); this->showKillButton(false);
// override details
ui->comp_NetworkDetails->setAlwaysAllowOverride(true);
// Stored data // Stored data
this->loadRememberedUserData(); this->loadRememberedUserData();
@@ -156,13 +153,6 @@ namespace BlackGui::Components
const CUser user = this->getUserFromPilotGuiValues(); const CUser user = this->getUserFromPilotGuiValues();
currentServer.setUser(user); currentServer.setUser(user);
// FSD setup, then override
if (ui->comp_NetworkDetails->isFsdSetupOverrideEnabled())
{
const CFsdSetup fsd = ui->comp_NetworkDetails->getFsdSetup();
currentServer.setFsdSetup(fsd);
}
// update for own aircraft context // update for own aircraft context
sGui->getIContextOwnAircraft()->updateOwnAircraftPilot(currentServer.getUser()); sGui->getIContextOwnAircraft()->updateOwnAircraftPilot(currentServer.getUser());
@@ -226,11 +216,6 @@ namespace BlackGui::Components
} }
} }
void CLoginAdvComponent::resetState()
{
ui->comp_NetworkDetails->resetState();
}
void CLoginAdvComponent::loadRememberedUserData() void CLoginAdvComponent::loadRememberedUserData()
{ {
const CServer lastServer = m_networkSetup.getLastServer(); const CServer lastServer = m_networkSetup.getLastServer();

View File

@@ -61,9 +61,6 @@ namespace BlackGui::Components
//! Login requested //! Login requested
void toggleNetworkConnection(); void toggleNetworkConnection();
//! Reset state
void resetState();
signals: signals:
//! Login //! Login
void loginOrLogoffSuccessful(); void loginOrLogoffSuccessful();

View File

@@ -89,10 +89,6 @@ namespace BlackGui::Components
connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed, this, &CLoginComponent::requestNetworkSettings); connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed, this, &CLoginComponent::requestNetworkSettings);
connect(&m_networkSetup, &CNetworkSetup::setupChanged, this, &CLoginComponent::reloadOtherServersSetup, Qt::QueuedConnection); connect(&m_networkSetup, &CNetworkSetup::setupChanged, this, &CLoginComponent::reloadOtherServersSetup, Qt::QueuedConnection);
ui->form_FsdDetails->showEnableInfo(true);
ui->form_FsdDetails->setFsdSetupEnabled(false);
ui->form_FsdDetails->setAlwaysAllowOverride(true);
ui->lblp_AircraftCombinedType->setToolTips("ok", "wrong"); ui->lblp_AircraftCombinedType->setToolTips("ok", "wrong");
ui->lblp_AirlineIcao->setToolTips("ok", "wrong"); ui->lblp_AirlineIcao->setToolTips("ok", "wrong");
ui->lblp_AircraftIcao->setToolTips("ok", "wrong"); ui->lblp_AircraftIcao->setToolTips("ok", "wrong");
@@ -124,7 +120,6 @@ namespace BlackGui::Components
connect(ui->le_AircraftCombinedType, &QLineEdit::editingFinished, this, &CLoginComponent::validateAircraftValues); connect(ui->le_AircraftCombinedType, &QLineEdit::editingFinished, this, &CLoginComponent::validateAircraftValues);
connect(ui->selector_AircraftIcao, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CLoginComponent::onChangedAircraftIcao, Qt::QueuedConnection); connect(ui->selector_AircraftIcao, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CLoginComponent::onChangedAircraftIcao, Qt::QueuedConnection);
connect(ui->selector_AirlineIcao, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CLoginComponent::onChangedAirlineIcao, Qt::QueuedConnection); connect(ui->selector_AirlineIcao, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CLoginComponent::onChangedAirlineIcao, Qt::QueuedConnection);
connect(ui->tw_Details, &QTabWidget::currentChanged, this, &CLoginComponent::onDetailsTabChanged);
if (sGui && sGui->getIContextSimulator()) if (sGui && sGui->getIContextSimulator())
{ {
@@ -259,13 +254,6 @@ namespace BlackGui::Components
const CUser user = this->getUserFromPilotGuiValues(); const CUser user = this->getUserFromPilotGuiValues();
currentServer.setUser(user); currentServer.setUser(user);
// FSD setup, then override
if (ui->form_FsdDetails->isFsdSetupEnabled())
{
const CFsdSetup fsd = ui->form_FsdDetails->getValue();
currentServer.setFsdSetup(fsd);
}
ui->frp_CurrentServer->setServer(currentServer); ui->frp_CurrentServer->setServer(currentServer);
sGui->getIContextOwnAircraft()->updateOwnAircraftPilot(currentServer.getUser()); sGui->getIContextOwnAircraft()->updateOwnAircraftPilot(currentServer.getUser());
@@ -433,20 +421,6 @@ namespace BlackGui::Components
ui->wi_VatsimButtons->setVisible(visible); ui->wi_VatsimButtons->setVisible(visible);
} }
void CLoginComponent::onDetailsTabChanged(int index)
{
Q_UNUSED(index)
const bool showNetwork = (ui->tw_Details->currentWidget() != ui->tb_FsdDetails);
const CServer server = this->getCurrentServer();
// only override if not yet enabled
if (!ui->form_FsdDetails->isFsdSetupEnabled()) { ui->form_FsdDetails->setValue(server.getFsdSetup()); }
ui->tw_Network->setVisible(showNetwork);
ui->tw_Details->setMinimumHeight(showNetwork ? 0 : 125);
}
CLoginComponent::CGuiAircraftValues CLoginComponent::getAircraftValuesFromGui() const CLoginComponent::CGuiAircraftValues CLoginComponent::getAircraftValuesFromGui() const
{ {
CGuiAircraftValues values; CGuiAircraftValues values;

View File

@@ -227,9 +227,6 @@ namespace BlackGui::Components
//! Set the server buttons visible //! Set the server buttons visible
void setServerButtonsVisible(bool visible); void setServerButtonsVisible(bool visible);
//! Tab index changed
void onDetailsTabChanged(int index);
static constexpr int OverlayMessageMs = 5000; static constexpr int OverlayMessageMs = 5000;
static constexpr int LogoffIntervalSeconds = 20; //!< time before logoff static constexpr int LogoffIntervalSeconds = 20; //!< time before logoff

View File

@@ -258,59 +258,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tb_FsdDetails">
<attribute name="title">
<string>FSD details</string>
</attribute>
<layout class="QVBoxLayout" name="vl_FsdDetails">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<widget class="QScrollArea" name="sa_FsdDetails">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="qw_FsdDetails">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>293</width>
<height>55</height>
</rect>
</property>
<layout class="QVBoxLayout" name="vl_ScrollAreaFsdDetails">
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item alignment="Qt::AlignLeft">
<widget class="BlackGui::Editors::CFsdSetupForm" name="form_FsdDetails"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tb_MatchingLog"> <widget class="QWidget" name="tb_MatchingLog">
<attribute name="title"> <attribute name="title">
<string>Matching log</string> <string>Matching log</string>
@@ -887,7 +834,6 @@
<tabstop>pb_RefreshOtherServers</tabstop> <tabstop>pb_RefreshOtherServers</tabstop>
<tabstop>pb_OtherServersGotoSettings</tabstop> <tabstop>pb_OtherServersGotoSettings</tabstop>
<tabstop>pb_OverrideCredentialsOtherServers</tabstop> <tabstop>pb_OverrideCredentialsOtherServers</tabstop>
<tabstop>sa_FsdDetails</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>
<connections/> <connections/>

View File

@@ -51,10 +51,6 @@ namespace BlackGui::Components
{ {
ui->comp_LoginOverviewComponent->showCurrentValues(); ui->comp_LoginOverviewComponent->showCurrentValues();
} }
else
{
ui->comp_LoginComponent->resetState();
}
} }
ui->comp_LoginComponent->setVisible(!connected); ui->comp_LoginComponent->setVisible(!connected);

View File

@@ -22,19 +22,13 @@ namespace BlackGui::Components
ui(new Ui::CNetworkDetailsComponent) ui(new Ui::CNetworkDetailsComponent)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->tw_Details->setCurrentIndex(0);
ui->sw_NetworkServerDetails->setCurrentIndex(PageServer);
connect(ui->comp_OtherServers, &CServerListSelector::serverChanged, this, &CNetworkDetailsComponent::onSelectedServerChanged); connect(ui->comp_OtherServers, &CServerListSelector::serverChanged, this, &CNetworkDetailsComponent::onSelectedServerChanged);
connect(ui->comp_VatsimServers, &CServerListSelector::serverChanged, this, &CNetworkDetailsComponent::onSelectedServerChanged); connect(ui->comp_VatsimServers, &CServerListSelector::serverChanged, this, &CNetworkDetailsComponent::onSelectedServerChanged);
connect(ui->tw_Network, &QTabWidget::currentChanged, this, &CNetworkDetailsComponent::onServerTabWidgetChanged); connect(ui->tw_Network, &QTabWidget::currentChanged, this, &CNetworkDetailsComponent::onServerTabWidgetChanged);
connect(ui->tw_Details, &QTabWidget::currentChanged, this, &CNetworkDetailsComponent::onDetailsTabChanged);
connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed, this, &CNetworkDetailsComponent::requestNetworkSettings); connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed, this, &CNetworkDetailsComponent::requestNetworkSettings);
connect(ui->pb_OverrideCredentialsVatsim, &QPushButton::clicked, this, &CNetworkDetailsComponent::onOverrideCredentialsToPilot); connect(ui->pb_OverrideCredentialsVatsim, &QPushButton::clicked, this, &CNetworkDetailsComponent::onOverrideCredentialsToPilot);
connect(ui->pb_OverrideCredentialsOtherServers, &QPushButton::clicked, this, &CNetworkDetailsComponent::onOverrideCredentialsToPilot); connect(ui->pb_OverrideCredentialsOtherServers, &QPushButton::clicked, this, &CNetworkDetailsComponent::onOverrideCredentialsToPilot);
connect(ui->pb_DetailsVatsim, &QPushButton::clicked, this, &CNetworkDetailsComponent::onChangePage);
connect(ui->pb_DetailsOtherServers, &QPushButton::clicked, this, &CNetworkDetailsComponent::onChangePage);
connect(ui->pb_BackToServer, &QPushButton::clicked, this, &CNetworkDetailsComponent::onChangePage);
connect(&m_networkSetup, &CNetworkSetup::setupChanged, this, &CNetworkDetailsComponent::reloadOtherServersSetup, Qt::QueuedConnection); connect(&m_networkSetup, &CNetworkSetup::setupChanged, this, &CNetworkDetailsComponent::reloadOtherServersSetup, Qt::QueuedConnection);
// web service data // web service data
@@ -43,10 +37,6 @@ namespace BlackGui::Components
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CNetworkDetailsComponent::onWebServiceDataRead, Qt::QueuedConnection); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CNetworkDetailsComponent::onWebServiceDataRead, Qt::QueuedConnection);
} }
ui->form_FsdDetails->showEnableInfo(true);
ui->form_FsdDetails->setFsdSetupEnabled(false);
ui->form_FsdDetails->setReadOnly(false);
constexpr int MaxLength = 10; constexpr int MaxLength = 10;
constexpr int MinLength = 0; constexpr int MinLength = 0;
CUpperCaseValidator *ucv = new CUpperCaseValidator(MinLength, MaxLength, ui->le_PartnerCallsign); CUpperCaseValidator *ucv = new CUpperCaseValidator(MinLength, MaxLength, ui->le_PartnerCallsign);
@@ -74,12 +64,6 @@ namespace BlackGui::Components
ui->frp_LoginMode->setLoginMode(mode); ui->frp_LoginMode->setLoginMode(mode);
} }
void CNetworkDetailsComponent::resetState()
{
ui->sw_NetworkServerDetails->setCurrentIndex(PageServer);
this->setBackTabName();
}
bool CNetworkDetailsComponent::isVatsimServerSelected() const bool CNetworkDetailsComponent::isVatsimServerSelected() const
{ {
const bool vatsim = ui->tw_Network->currentWidget() == ui->tb_NetworkVatsim; const bool vatsim = ui->tw_Network->currentWidget() == ui->tb_NetworkVatsim;
@@ -88,22 +72,7 @@ namespace BlackGui::Components
bool CNetworkDetailsComponent::isOtherServerSelected() const bool CNetworkDetailsComponent::isOtherServerSelected() const
{ {
return ui->tw_Details->currentWidget() == ui->tb_OtherServers; return ui->tw_Network->currentWidget() == ui->tb_OtherServers;
}
CFsdSetup CNetworkDetailsComponent::getFsdSetup() const
{
return ui->form_FsdDetails->getValue();
}
void CNetworkDetailsComponent::setAlwaysAllowOverride(bool allow)
{
ui->form_FsdDetails->setAlwaysAllowOverride(allow);
}
bool CNetworkDetailsComponent::isFsdSetupOverrideEnabled() const
{
return ui->form_FsdDetails->isFsdSetupEnabled();
} }
void CNetworkDetailsComponent::setServerButtonsVisible(bool visible) void CNetworkDetailsComponent::setServerButtonsVisible(bool visible)
@@ -112,21 +81,6 @@ namespace BlackGui::Components
ui->wi_VatsimButtons->setVisible(visible); ui->wi_VatsimButtons->setVisible(visible);
} }
void CNetworkDetailsComponent::onDetailsTabChanged(int index)
{
if (index == DetailsBack)
{
ui->sw_NetworkServerDetails->setCurrentIndex(PageServer);
return;
}
Q_UNUSED(index)
const CServer server = this->getCurrentServer();
// only override if not yet enabled
if (!ui->form_FsdDetails->isFsdSetupEnabled()) { ui->form_FsdDetails->setValue(server.getFsdSetup()); }
}
void CNetworkDetailsComponent::onOverrideCredentialsToPilot() void CNetworkDetailsComponent::onOverrideCredentialsToPilot()
{ {
CServer server; CServer server;
@@ -176,28 +130,6 @@ namespace BlackGui::Components
} }
} }
void CNetworkDetailsComponent::onChangePage()
{
const QObject *s = QObject::sender();
if (s == ui->pb_DetailsVatsim || s == ui->pb_DetailsOtherServers)
{
ui->sw_NetworkServerDetails->setCurrentIndex(PageDetails);
ui->tw_Details->setCurrentIndex(DetailsServer);
}
else
{
ui->sw_NetworkServerDetails->setCurrentIndex(PageServer);
}
this->setBackTabName();
}
void CNetworkDetailsComponent::setBackTabName()
{
const QString name = this->getCurrentServer().getName();
const int index = ui->tw_Details->indexOf(ui->tb_BackToServer);
ui->tw_Details->setTabText(index, QStringLiteral("Back to server '%1'").arg(name));
}
CServer CNetworkDetailsComponent::getCurrentVatsimServer() const CServer CNetworkDetailsComponent::getCurrentVatsimServer() const
{ {
CServer server = ui->comp_VatsimServers->currentServer(); CServer server = ui->comp_VatsimServers->currentServer();

View File

@@ -37,44 +37,18 @@ namespace BlackGui::Components
LoginOthers, LoginOthers,
}; };
//! Pages
enum Page
{
PageServer,
PageDetails
};
//! Details
enum Details
{
DetailsServer,
DetailsBack
};
//! Ctor //! Ctor
explicit CNetworkDetailsComponent(QWidget *parent = nullptr); explicit CNetworkDetailsComponent(QWidget *parent = nullptr);
//! Dtor //! Dtor
virtual ~CNetworkDetailsComponent() override; virtual ~CNetworkDetailsComponent() override;
//! FSD setup
BlackMisc::Network::CFsdSetup getFsdSetup() const;
//! Allow override even in read only mode
void setAlwaysAllowOverride(bool allow);
//! Specific setup enabled?
bool isFsdSetupOverrideEnabled() const;
//! Login mode //! Login mode
BlackMisc::Network::CLoginMode getLoginMode() const; BlackMisc::Network::CLoginMode getLoginMode() const;
//! Login mode //! Login mode
void setLoginMode(BlackMisc::Network::CLoginMode mode); void setLoginMode(BlackMisc::Network::CLoginMode mode);
//! Reset state
void resetState();
//! @{ //! @{
//! Selected server //! Selected server
bool isVatsimServerSelected() const; bool isVatsimServerSelected() const;
@@ -116,21 +90,12 @@ namespace BlackGui::Components
//! Set the server buttons visible //! Set the server buttons visible
void setServerButtonsVisible(bool visible); void setServerButtonsVisible(bool visible);
//! Tab index changed
void onDetailsTabChanged(int index);
//! Override credentials //! Override credentials
void onOverrideCredentialsToPilot(); void onOverrideCredentialsToPilot();
//! VATSIM data file was loaded //! VATSIM data file was loaded
void onWebServiceDataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number, const QUrl &url); void onWebServiceDataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number, const QUrl &url);
//! Change page
void onChangePage();
//! Set the back tab
void setBackTabName();
BlackCore::Data::CNetworkSetup m_networkSetup; //!< servers last used BlackCore::Data::CNetworkSetup m_networkSetup; //!< servers last used
bool m_updatePilotOnServerChanges = true; bool m_updatePilotOnServerChanges = true;
QScopedPointer<Ui::CNetworkDetailsComponent> ui; QScopedPointer<Ui::CNetworkDetailsComponent> ui;

View File

@@ -27,10 +27,6 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QStackedWidget" name="sw_NetworkServerDetails">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tb_NetworkServer"> <widget class="QWidget" name="tb_NetworkServer">
<layout class="QVBoxLayout" name="vl_NetworkServerPage"> <layout class="QVBoxLayout" name="vl_NetworkServerPage">
<property name="leftMargin"> <property name="leftMargin">
@@ -101,13 +97,6 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QPushButton" name="pb_DetailsVatsim">
<property name="text">
<string>details</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="pb_OverrideCredentialsVatsim"> <widget class="QPushButton" name="pb_OverrideCredentialsVatsim">
<property name="sizePolicy"> <property name="sizePolicy">
@@ -201,13 +190,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="pb_DetailsOtherServers">
<property name="text">
<string>details</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="pb_OverrideCredentialsOtherServers"> <widget class="QPushButton" name="pb_OverrideCredentialsOtherServers">
<property name="toolTip"> <property name="toolTip">
@@ -282,77 +264,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tb_NetworkDetails">
<layout class="QVBoxLayout" name="vl_NetworkDetailsPage">
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item>
<widget class="QTabWidget" name="tw_Details">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tb_FsdDetails">
<attribute name="title">
<string>FSD details</string>
</attribute>
<layout class="QVBoxLayout" name="vl_FsdDetails">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="BlackGui::Editors::CFsdSetupForm" name="form_FsdDetails">
<property name="minimumSize">
<size>
<width>150</width>
<height>75</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tb_BackToServer">
<attribute name="icon">
<iconset resource="../../blackmisc/blackmisc.qrc">
<normaloff>:/pastel/icons/pastel/16/close.png</normaloff>:/pastel/icons/pastel/16/close.png</iconset>
</attribute>
<attribute name="title">
<string>Back to server</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item alignment="Qt::AlignRight">
<widget class="QPushButton" name="pb_BackToServer">
<property name="text">
<string>back to server</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
@@ -378,16 +289,12 @@
<tabstops> <tabstops>
<tabstop>tw_Network</tabstop> <tabstop>tw_Network</tabstop>
<tabstop>comp_VatsimServers</tabstop> <tabstop>comp_VatsimServers</tabstop>
<tabstop>pb_DetailsVatsim</tabstop>
<tabstop>pb_OverrideCredentialsVatsim</tabstop> <tabstop>pb_OverrideCredentialsVatsim</tabstop>
<tabstop>le_PartnerCallsign</tabstop> <tabstop>le_PartnerCallsign</tabstop>
<tabstop>comp_OtherServers</tabstop> <tabstop>comp_OtherServers</tabstop>
<tabstop>pb_RefreshOtherServers</tabstop> <tabstop>pb_RefreshOtherServers</tabstop>
<tabstop>pb_OtherServersGotoSettings</tabstop> <tabstop>pb_OtherServersGotoSettings</tabstop>
<tabstop>pb_DetailsOtherServers</tabstop>
<tabstop>pb_OverrideCredentialsOtherServers</tabstop> <tabstop>pb_OverrideCredentialsOtherServers</tabstop>
<tabstop>tw_Details</tabstop>
<tabstop>pb_BackToServer</tabstop>
</tabstops> </tabstops>
<resources> <resources>
<include location="../../blackmisc/blackmisc.qrc"/> <include location="../../blackmisc/blackmisc.qrc"/>