8 #include "ui_networkdetailscomponent.h"
15 using namespace swift::misc::network;
16 using namespace swift::misc::audio;
17 using namespace swift::misc::aviation;
23 CNetworkDetailsComponent::CNetworkDetailsComponent(QWidget *parent)
29 &CNetworkDetailsComponent::onSelectedServerChanged);
31 &CNetworkDetailsComponent::onSelectedServerChanged);
32 connect(ui->tw_Network, &QTabWidget::currentChanged,
this, &CNetworkDetailsComponent::onServerTabWidgetChanged);
33 connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed,
this,
35 connect(&m_networkSetup, &CNetworkSetup::setupChanged,
this, &CNetworkDetailsComponent::reloadOtherServersSetup,
36 Qt::QueuedConnection);
42 &CNetworkDetailsComponent::onWebServiceDataRead, Qt::QueuedConnection);
45 constexpr
int MaxLength = 10;
46 constexpr
int MinLength = 0;
49 ui->le_PartnerCallsign->setMaxLength(MaxLength);
50 ui->le_PartnerCallsign->setValidator(ucv);
53 ui->tw_Network->setCurrentIndex(tab);
56 ui->tw_Network, &QTabWidget::currentChanged,
this,
57 [
this](
int) { emit this->currentServerChanged(getCurrentServer()); }, Qt::QueuedConnection);
63 this->reloadOtherServersSetup();
64 this->onWebServiceDataRead(CEntityFlags::VatsimDataFile, CEntityFlags::ReadFinished, -1, {});
71 return ui->cb_observer->isChecked() ? CLoginMode::Observer : CLoginMode::Pilot;
76 if (mode == CLoginMode::Observer) { ui->cb_observer->setChecked(
true); }
77 else { ui->cb_observer->setChecked(
false); }
82 const bool vatsim = ui->tw_Network->currentWidget() == ui->tb_NetworkVatsim;
88 return ui->tw_Network->currentWidget() == ui->tb_OtherServers;
91 void CNetworkDetailsComponent::setServerButtonsVisible(
bool visible)
93 ui->wi_OtherServersButtons->setVisible(visible);
94 ui->wi_VatsimButtons->setVisible(visible);
97 void CNetworkDetailsComponent::onServerTabWidgetChanged(
int index)
100 if (!m_updatePilotOnServerChanges) {
return; }
106 void CNetworkDetailsComponent::onSelectedServerChanged(
const CServer &server)
108 if (!m_updatePilotOnServerChanges) {
return; }
112 void CNetworkDetailsComponent::onWebServiceDataRead(CEntityFlags::Entity entity,
CEntityFlags::ReadState state,
113 int number,
const QUrl &url)
115 if (!CEntityFlags::isFinishedReadState(state)) {
return; }
119 if (entity == CEntityFlags::VatsimDataFile)
122 if (vatsimFsdServers.
isEmpty()) {
return; }
123 vatsimFsdServers.
sortBy(&CServer::getName);
125 ui->comp_VatsimServers->setServers(vatsimFsdServers);
126 ui->comp_VatsimServers->preSelect(currentServer.
getName());
132 CServer server = ui->comp_VatsimServers->currentServer();
153 if (ui->le_PartnerCallsign->text().isEmpty()) {
return {}; }
154 return CCallsign(ui->le_PartnerCallsign->text(), CCallsign::Aircraft);
157 void CNetworkDetailsComponent::reloadOtherServersSetup()
160 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.
void setAllowedCharacters09AZ()
Set the allowed characters as 0-9 and A-Z.
virtual ~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.