8 #include "ui_networkdetailscomponent.h"
15 using namespace swift::misc::network;
16 using namespace swift::misc::aviation;
22 CNetworkDetailsComponent::CNetworkDetailsComponent(
QWidget *parent)
28 &CNetworkDetailsComponent::onSelectedServerChanged);
30 &CNetworkDetailsComponent::onSelectedServerChanged);
34 connect(&m_networkSetup, &CNetworkSetup::setupChanged,
this, &CNetworkDetailsComponent::reloadOtherServersSetup,
44 constexpr
int MaxLength = 10;
45 constexpr
int MinLength = 0;
47 ucv->setAllowedCharacters09AZ();
48 ui->le_PartnerCallsign->setMaxLength(MaxLength);
49 ui->le_PartnerCallsign->setValidator(ucv);
52 ui->tw_Network->setCurrentIndex(tab);
62 this->reloadOtherServersSetup();
63 this->onWebServiceDataRead(CEntityFlags::VatsimDataFile, CEntityFlags::ReadFinished, -1, {});
70 return ui->cb_observer->isChecked() ? CLoginMode::Observer : CLoginMode::Pilot;
75 if (mode == CLoginMode::Observer) { ui->cb_observer->setChecked(
true); }
76 else { ui->cb_observer->setChecked(
false); }
81 const bool vatsim = ui->tw_Network->currentWidget() == ui->tb_NetworkVatsim;
87 return ui->tw_Network->currentWidget() == ui->tb_OtherServers;
90 void CNetworkDetailsComponent::setServerButtonsVisible(
bool visible)
92 ui->wi_OtherServersButtons->setVisible(
visible);
93 ui->wi_VatsimButtons->setVisible(
visible);
96 void CNetworkDetailsComponent::onServerTabWidgetChanged(
int index)
99 if (!m_updatePilotOnServerChanges) {
return; }
105 void CNetworkDetailsComponent::onSelectedServerChanged(
const CServer &server)
107 if (!m_updatePilotOnServerChanges) {
return; }
111 void CNetworkDetailsComponent::onWebServiceDataRead(CEntityFlags::Entity entity,
CEntityFlags::ReadState state,
112 int number,
const QUrl &url)
114 if (!CEntityFlags::isFinishedReadState(state)) {
return; }
118 if (entity == CEntityFlags::VatsimDataFile)
121 if (vatsimFsdServers.
isEmpty()) {
return; }
122 vatsimFsdServers.
sortBy(&CServer::getName);
124 ui->comp_VatsimServers->setServers(vatsimFsdServers);
125 ui->comp_VatsimServers->preSelect(currentServer.
getName());
131 CServer server = ui->comp_VatsimServers->currentServer();
152 if (ui->le_PartnerCallsign->text().isEmpty()) {
return {}; }
153 return { ui->le_PartnerCallsign->text(), CCallsign::Aircraft };
156 void CNetworkDetailsComponent::reloadOtherServersSetup()
159 ui->comp_OtherServers->setServers(otherServers);
const context::IContextNetwork * getIContextNetwork() const
Direct access to contexts if a CCoreFacade has been initialized.
CWebDataServices * getWebDataServices() const
Get the web data services.
virtual swift::misc::network::CServerList getVatsimFsdServers() const =0
Known FSD servers, available when data file was first read.
bool wasLastUsedWithOtherServer() const
Used with an other server (i.e. non VATSIM)
swift::misc::network::CServer getLastVatsimServer() const
Last VATSIM server (VATSIM only)
swift::misc::network::CServerList getOtherServersPlusPredefinedServers() const
The other servers plus test servers.
~CNetworkDetailsComponent()
Dtor.
bool isOtherServerSelected() const
Selected server.
swift::misc::network::CServer getCurrentOtherServer() const
Selected server (others)
void requestNetworkSettings()
Request network settings.
bool isVatsimServerSelected() const
Selected server.
bool hasPartnerCallsign() const
Pilot or Co-pilot callsign?
void setLoginMode(swift::misc::network::CLoginMode mode)
Login mode.
void currentServerChanged(const misc::network::CServer &server)
Current selected server changed.
void overridePilot(const swift::misc::network::CUser &user)
Override the pilot.
swift::misc::network::CServer getCurrentVatsimServer() const
Selected server (VATSIM)
swift::misc::aviation::CCallsign getPartnerCallsign() const
Pilot or Co-pilot callsign.
swift::misc::network::CServer getCurrentServer() const
Current server based on selected tab.
swift::misc::network::CLoginMode getLoginMode() const
Login mode.
void serverChanged(const swift::misc::network::CServer &server)
Server has been changed.
void sortBy(K1 key1, Keys... keys)
In-place sort by some particular key(s).
bool isEmpty() const
Synonym for empty.
Value object encapsulating information of a callsign.
ReadState
State of operation.
Value object encapsulating information about login mode.
Value object encapsulating information of a server.
const QString & getName() const
Get name.
void setUser(const CUser &user)
Set user.
const CUser & getUser() const
Get user.
Value object encapsulating a list of servers.
Value object encapsulating information of a user.
bool hasValidVatsimId() const
Has a valid VATSIM id?
SWIFT_GUI_EXPORT swift::gui::CGuiApplication * sGui
Single instance of GUI application object.
Core data traits (aka cached values) and classes.
Backend services of the swift project, like dealing with the network or the simulators.
High level reusable GUI components.
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)