mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 02:35:33 +08:00
Server handling
* added tower view as hardcoded * renamed to predefined servers * utility functions to add/remove FSD setup flags
This commit is contained in:
@@ -53,6 +53,7 @@ namespace BlackMisc
|
||||
AllParts = SendAircraftParts | ReceiveAircraftParts, //!< send/receive parts
|
||||
AllSendingWithoutGnd = SendAircraftParts | SendInterimPositions, //!< all out, but no gnd.flag
|
||||
AllReceiveWithoutGnd = ReceiveAircraftParts | ReceiveInterimPositions, //!< all in, but no gnd.flag
|
||||
AllInterimPositions = SendInterimPositions | ReceiveInterimPositions, //!< all interim positions
|
||||
AllWithoutGnd = AllReceiveWithoutGnd | AllSendingWithoutGnd, //!< all, but no gnd.flag
|
||||
VATSIMDefault = AllParts | Force3LetterAirlineICAO
|
||||
};
|
||||
@@ -86,6 +87,12 @@ namespace BlackMisc
|
||||
//! Set send / receive details
|
||||
void setSendReceiveDetails(SendReceiveDetails sendReceive) { m_sendReceive = sendReceive; }
|
||||
|
||||
//! Add send / receive details
|
||||
void addSendReceiveDetails(SendReceiveDetails sendReceive) { m_sendReceive |= sendReceive; }
|
||||
|
||||
//! Remove send / receive details
|
||||
void removeSendReceiveDetails(SendReceiveDetails sendReceive) { m_sendReceive &= ~sendReceive; }
|
||||
|
||||
//! Set send / receive details
|
||||
void setSendReceiveDetails(bool partsSend, bool partsReceive, bool gndSend, bool gndReceive, bool interimSend, bool interimReceive);
|
||||
|
||||
|
||||
@@ -79,12 +79,25 @@ namespace BlackMisc
|
||||
|
||||
const CServer &CServer::fscServer()
|
||||
{
|
||||
static const CServer fsc("FSC", "FSC e.V.", "OBF:AwJIKfgkQDJEIRnno29DJlB+UK0=", 6809,
|
||||
CUser(),
|
||||
CFsdSetup(), CVoiceSetup(), CEcosystem(CEcosystem::privateFsd()), CServer::FSDServer);
|
||||
static const CServer fsc = []
|
||||
{
|
||||
CServer s = CServer("FSC", "FSC e.V.", "OBF:AwJIKfgkQDJEIRnno29DJlB+UK0=", 6809,
|
||||
CUser(),
|
||||
CFsdSetup(), CVoiceSetup(), CEcosystem(CEcosystem::privateFsd()), CServer::FSDServer);
|
||||
s.removeSendReceiveDetails(CFsdSetup::AllInterimPositions);
|
||||
return s;
|
||||
}();
|
||||
return fsc;
|
||||
}
|
||||
|
||||
const CServer &CServer::esTowerView()
|
||||
{
|
||||
static const CServer s = CServer("ES Tower", "Euroscope Tower view", "localhost", 6809,
|
||||
CUser(),
|
||||
CFsdSetup::vatsimStandard(), CVoiceSetup::vatsimStandard(), CEcosystem(CEcosystem::vatsim()), CServer::VoiceServerVatsim);
|
||||
return s;
|
||||
}
|
||||
|
||||
bool CServer::matchesName(const QString &name) const
|
||||
{
|
||||
return m_name.length() == name.length() &&
|
||||
@@ -189,17 +202,17 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexAddress: return CVariant::fromValue(m_address);
|
||||
case IndexDescription: return CVariant::fromValue(m_description);
|
||||
case IndexName: return CVariant::fromValue(m_name);
|
||||
case IndexPort: return CVariant::fromValue(m_port);
|
||||
case IndexUser: return m_user.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexFsdSetup: return m_fsdSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexVoiceSetup: return m_voiceSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexEcosystem: return m_ecosystem.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexAddress: return CVariant::fromValue(m_address);
|
||||
case IndexDescription: return CVariant::fromValue(m_description);
|
||||
case IndexName: return CVariant::fromValue(m_name);
|
||||
case IndexPort: return CVariant::fromValue(m_port);
|
||||
case IndexUser: return m_user.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexFsdSetup: return m_fsdSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexVoiceSetup: return m_voiceSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexEcosystem: return m_ecosystem.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexIsAcceptingConnections: return CVariant::fromValue(m_isAcceptingConnections);
|
||||
case IndexServerType: return CVariant::fromValue(m_serverType);
|
||||
case IndexServerTypeAsString: return CVariant::fromValue(getServerTypeAsString());
|
||||
case IndexServerType: return CVariant::fromValue(m_serverType);
|
||||
case IndexServerTypeAsString: return CVariant::fromValue(getServerTypeAsString());
|
||||
default: return CValueObject::propertyByIndex(index);
|
||||
}
|
||||
}
|
||||
@@ -212,16 +225,16 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexAddress: this->setAddress(variant.value<QString>()); break;
|
||||
case IndexPort: this->setPort(variant.value<qint32>()); break;
|
||||
case IndexAddress: this->setAddress(variant.value<QString>()); break;
|
||||
case IndexPort: this->setPort(variant.value<qint32>()); break;
|
||||
case IndexDescription: this->setDescription(variant.value<QString>()); break;
|
||||
case IndexName: this->setName(variant.value<QString>()); break;
|
||||
case IndexUser: m_user.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexFsdSetup: m_fsdSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexVoiceSetup: m_voiceSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexEcosystem: m_ecosystem.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexName: this->setName(variant.value<QString>()); break;
|
||||
case IndexUser: m_user.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexFsdSetup: m_fsdSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexVoiceSetup: m_voiceSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexEcosystem: m_ecosystem.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexServerType: this->setServerType(static_cast<ServerType>(variant.toInt())); break;
|
||||
case IndexIsAcceptingConnections: this->setIsAcceptingConnections(variant.value<bool>()); break;
|
||||
case IndexServerType: this->setServerType(static_cast<ServerType>(variant.toInt())); break;
|
||||
default: CValueObject::setPropertyByIndex(index, variant); break;
|
||||
}
|
||||
}
|
||||
@@ -233,15 +246,15 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexAddress: return this->getAddress().compare(compareValue.getAddress(), Qt::CaseInsensitive);
|
||||
case IndexAddress: return this->getAddress().compare(compareValue.getAddress(), Qt::CaseInsensitive);
|
||||
case IndexDescription: return this->getDescription().compare(compareValue.getDescription(), Qt::CaseInsensitive);
|
||||
case IndexFsdSetup: return m_fsdSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getFsdSetup());
|
||||
case IndexVoiceSetup: return m_voiceSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getVoiceSetup());
|
||||
case IndexName: return this->getName().compare(compareValue.getName(), Qt::CaseInsensitive);
|
||||
case IndexFsdSetup: return m_fsdSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getFsdSetup());
|
||||
case IndexVoiceSetup: return m_voiceSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getVoiceSetup());
|
||||
case IndexName: return this->getName().compare(compareValue.getName(), Qt::CaseInsensitive);
|
||||
case IndexPort: return Compare::compare(this->getPort(), compareValue.getPort());
|
||||
case IndexUser: return this->getUser().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getUser());
|
||||
case IndexEcosystem: return this->getEcosystem().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getEcosystem());
|
||||
case IndexIsAcceptingConnections: return Compare::compare(this->isAcceptingConnections(), compareValue.isAcceptingConnections());
|
||||
case IndexPort: return Compare::compare(this->getPort(), compareValue.getPort());
|
||||
case IndexUser: return this->getUser().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getUser());
|
||||
case IndexEcosystem: return this->getEcosystem().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getEcosystem());
|
||||
case IndexServerType:
|
||||
case IndexServerTypeAsString:
|
||||
return this->getServerTypeAsString().compare(compareValue.getServerTypeAsString(), Qt::CaseInsensitive);
|
||||
|
||||
@@ -157,6 +157,12 @@ namespace BlackMisc
|
||||
//! Set FSD setup
|
||||
void setFsdSetup(const CFsdSetup &setup) { m_fsdSetup = setup; }
|
||||
|
||||
//! Add send / receive details
|
||||
void addSendReceiveDetails(CFsdSetup::SendReceiveDetails sendReceive) { m_fsdSetup.addSendReceiveDetails(sendReceive); }
|
||||
|
||||
//! Remove send / receive details
|
||||
void removeSendReceiveDetails(CFsdSetup::SendReceiveDetails sendReceive) { m_fsdSetup.removeSendReceiveDetails(sendReceive); }
|
||||
|
||||
//! A FSD server?
|
||||
bool isFsdServer() const;
|
||||
|
||||
@@ -217,6 +223,9 @@ namespace BlackMisc
|
||||
//! FSC server
|
||||
static const CServer &fscServer();
|
||||
|
||||
//! ES tower server
|
||||
static const CServer &esTowerView();
|
||||
|
||||
private:
|
||||
QString m_name;
|
||||
QString m_description;
|
||||
|
||||
@@ -43,6 +43,14 @@ namespace BlackMisc
|
||||
return removed;
|
||||
}
|
||||
|
||||
void CServerList::removeUsers()
|
||||
{
|
||||
for (CServer &s : *this)
|
||||
{
|
||||
s.setUser(CUser());
|
||||
}
|
||||
}
|
||||
|
||||
bool CServerList::containsAddressPort(const CServer &server)
|
||||
{
|
||||
for (const CServer &s : *this)
|
||||
|
||||
@@ -45,6 +45,9 @@ namespace BlackMisc
|
||||
//! Remove by name
|
||||
bool removeByName(const QString &name);
|
||||
|
||||
//! Remove passwords
|
||||
void removeUsers();
|
||||
|
||||
//! Contains server with same address/port
|
||||
bool containsAddressPort(const CServer &server);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user