mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 15:25:34 +08:00
refs #768, fixed reverse lookup on login page (model changes in SIM are reflected here)
* use reverse lookup function * complete model when web services have read the DB data (before that no reverse lookup is possible) * use new model changed signature Remark: Temp adjustement when signal allSwiftDbDataRead is sent. As soon #748 is ready needs to be changed to include airport entities
This commit is contained in:
committed by
Mathew Sutcliffe
parent
cda3ece82b
commit
74173a734e
@@ -754,8 +754,9 @@ namespace BlackCore
|
|||||||
CLogMessage(cats).info("Read data %1 entries: %2 state: %3") << CEntityFlags::flagToString(entity) << number << CEntityFlags::flagToString(state);
|
CLogMessage(cats).info("Read data %1 entries: %2 state: %3") << CEntityFlags::flagToString(entity) << number << CEntityFlags::flagToString(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_swiftDbEntitiesReaad |= entity;
|
//! \todo adjust value when airports are ready
|
||||||
if (this->m_swiftDbEntitiesReaad == CEntityFlags::AllDbEntitiesNoInfoObjects || this->m_swiftDbEntitiesReaad == CEntityFlags::AllDbEntities)
|
this->m_swiftDbEntitiesRead |= entity;
|
||||||
|
if (((static_cast<int>(this->m_swiftDbEntitiesRead)) & static_cast<int>(CEntityFlags::AllDbEntitiesNoInfoObjectsNoAirports)) > 0)
|
||||||
{
|
{
|
||||||
emit allSwiftDbDataRead();
|
emit allSwiftDbDataRead();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ namespace BlackCore
|
|||||||
CWebReaderFlags::WebReader m_readers = CWebReaderFlags::WebReaderFlag::None; //!< which readers are available
|
CWebReaderFlags::WebReader m_readers = CWebReaderFlags::WebReaderFlag::None; //!< which readers are available
|
||||||
BlackCore::Db::CDatabaseReaderConfigList m_dbReaderConfig; //!< how to read DB data
|
BlackCore::Db::CDatabaseReaderConfigList m_dbReaderConfig; //!< how to read DB data
|
||||||
BlackMisc::Network::CEntityFlags::Entity m_entitiesPeriodicallyRead = BlackMisc::Network::CEntityFlags::NoEntity; //!< those entities which are permanently updated by timers
|
BlackMisc::Network::CEntityFlags::Entity m_entitiesPeriodicallyRead = BlackMisc::Network::CEntityFlags::NoEntity; //!< those entities which are permanently updated by timers
|
||||||
BlackMisc::Network::CEntityFlags::Entity m_swiftDbEntitiesReaad = BlackMisc::Network::CEntityFlags::NoEntity; //!< entities read
|
BlackMisc::Network::CEntityFlags::Entity m_swiftDbEntitiesRead = BlackMisc::Network::CEntityFlags::NoEntity; //!< entities read
|
||||||
bool m_initialRead = false; //!< Initial read started
|
bool m_initialRead = false; //!< Initial read started
|
||||||
int m_infoObjectTrials = 0; //!< Tried to read info objects
|
int m_infoObjectTrials = 0; //!< Tried to read info objects
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,11 @@ namespace BlackGui
|
|||||||
connect(ui->le_AircraftIcaoDesignator, &QLineEdit::editingFinished, this, &CLoginComponent::ps_validateAircraftValues);
|
connect(ui->le_AircraftIcaoDesignator, &QLineEdit::editingFinished, this, &CLoginComponent::ps_validateAircraftValues);
|
||||||
connect(ui->tb_SimulatorIcaoReverseLookup, &QToolButton::clicked, this, &CLoginComponent::ps_reverseLookupModel);
|
connect(ui->tb_SimulatorIcaoReverseLookup, &QToolButton::clicked, this, &CLoginComponent::ps_reverseLookupModel);
|
||||||
|
|
||||||
|
if (sGui && sGui->getIContextSimulator())
|
||||||
|
{
|
||||||
|
connect(sGui->getIContextSimulator(), &IContextSimulator::ownAircraftModelChanged, this, &CLoginComponent::ps_simulatorModelChanged);
|
||||||
|
}
|
||||||
|
|
||||||
// server GUI element
|
// server GUI element
|
||||||
ui->frp_CurrentServer->setReadOnly(true);
|
ui->frp_CurrentServer->setReadOnly(true);
|
||||||
ui->frp_CurrentServer->showPasswordField(false);
|
ui->frp_CurrentServer->showPasswordField(false);
|
||||||
@@ -176,7 +181,7 @@ namespace BlackGui
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->m_visible = true;
|
this->m_visible = true;
|
||||||
bool isConnected = sGui->getIContextNetwork()->isConnected();
|
const bool isConnected = sGui->getIContextNetwork()->isConnected();
|
||||||
this->setGuiVisibility(isConnected);
|
this->setGuiVisibility(isConnected);
|
||||||
this->setOkButtonString(isConnected);
|
this->setOkButtonString(isConnected);
|
||||||
if (isConnected) { this->startLogoffTimerCountdown(); }
|
if (isConnected) { this->startLogoffTimerCountdown(); }
|
||||||
@@ -198,7 +203,7 @@ namespace BlackGui
|
|||||||
CLogMessage(this).validationError("No login possible from this very tab, use VATSIM or other servers");
|
CLogMessage(this).validationError("No login possible from this very tab, use VATSIM or other servers");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const bool isConnected = sGui->getIContextNetwork()->isConnected();
|
const bool isConnected = sGui && sGui->getIContextNetwork()->isConnected();
|
||||||
const bool vatsimLogin = (ui->tw_Network->currentWidget() == ui->pg_NetworkVatsim);
|
const bool vatsimLogin = (ui->tw_Network->currentWidget() == ui->pg_NetworkVatsim);
|
||||||
CServer currentServer; // used for login
|
CServer currentServer; // used for login
|
||||||
CSimulatedAircraft ownAircraft; // used own aircraft
|
CSimulatedAircraft ownAircraft; // used own aircraft
|
||||||
@@ -335,15 +340,6 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLoginComponent::setGuiValuesFromAircraft(const CSimulatedAircraft &ownAircraft)
|
|
||||||
{
|
|
||||||
const CAircraftIcaoCode aircraftIcao = ownAircraft.getAircraftIcaoCode();
|
|
||||||
ui->le_Callsign->setText(ownAircraft.getCallsignAsString());
|
|
||||||
ui->le_AircraftIcaoDesignator->setText(aircraftIcao.getDesignator());
|
|
||||||
ui->le_AirlineIcaoDesignator->setText(ownAircraft.getAirlineIcaoCodeDesignator());
|
|
||||||
ui->le_AircraftCombinedType->setText(aircraftIcao.getCombinedType());
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLoginComponent::loadRememberedVatsimData()
|
void CLoginComponent::loadRememberedVatsimData()
|
||||||
{
|
{
|
||||||
const CServer lastServer = this->m_currentVatsimServer.get();
|
const CServer lastServer = this->m_currentVatsimServer.get();
|
||||||
@@ -465,6 +461,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CLoginComponent::setGuiIcaoValues(const CAircraftModel &model, bool onlyIfEmpty)
|
void CLoginComponent::setGuiIcaoValues(const CAircraftModel &model, bool onlyIfEmpty)
|
||||||
{
|
{
|
||||||
|
ui->le_SimulatorModel->setText(model.getModelStringAndDbKey());
|
||||||
if (!onlyIfEmpty || ui->le_AircraftIcaoDesignator->text().trimmed().isEmpty())
|
if (!onlyIfEmpty || ui->le_AircraftIcaoDesignator->text().trimmed().isEmpty())
|
||||||
{
|
{
|
||||||
ui->le_AircraftIcaoDesignator->setText(model.getAircraftIcaoCode().getDesignator());
|
ui->le_AircraftIcaoDesignator->setText(model.getAircraftIcaoCode().getDesignator());
|
||||||
@@ -544,11 +541,11 @@ namespace BlackGui
|
|||||||
void CLoginComponent::ps_reverseLookupModel()
|
void CLoginComponent::ps_reverseLookupModel()
|
||||||
{
|
{
|
||||||
if (!sGui->getIContextSimulator()->isSimulatorAvailable()) { return; }
|
if (!sGui->getIContextSimulator()->isSimulatorAvailable()) { return; }
|
||||||
CAircraftModel model(sGui->getIContextOwnAircraft()->getOwnAircraft().getModel());
|
const CAircraftModel model(sGui->getIContextOwnAircraft()->getOwnAircraft().getModel());
|
||||||
QString modelStr(model.hasModelString() ? model.getModelString() : "<unknown>");
|
const QString modelStr(model.hasModelString() ? model.getModelString() : "<unknown>");
|
||||||
if (model.getAircraftIcaoCode().hasDesignator())
|
if (model.getAircraftIcaoCode().hasDesignator())
|
||||||
{
|
{
|
||||||
CLogMessage(this).validationInfo("Reverse lookup for '%1'") << modelStr;
|
CLogMessage(this).validationInfo("Reverse lookup for '%1' successful: %2") << modelStr << model.toQString();
|
||||||
|
|
||||||
// update GUI
|
// update GUI
|
||||||
this->setGuiIcaoValues(model, false);
|
this->setGuiIcaoValues(model, false);
|
||||||
@@ -559,6 +556,14 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CLoginComponent::ps_simulatorModelChanged(const CAircraftModel &model)
|
||||||
|
{
|
||||||
|
const bool isConnected = sGui && sGui->getIContextNetwork()->isConnected();
|
||||||
|
if (isConnected) { return; }
|
||||||
|
this->setGuiIcaoValues(model, false);
|
||||||
|
this->ps_reverseLookupModel();
|
||||||
|
}
|
||||||
|
|
||||||
void CLoginComponent::initCompleters(CEntityFlags::Entity entity)
|
void CLoginComponent::initCompleters(CEntityFlags::Entity entity)
|
||||||
{
|
{
|
||||||
// completers where possible
|
// completers where possible
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ namespace BlackGui
|
|||||||
//! Reverse lookup model
|
//! Reverse lookup model
|
||||||
void ps_reverseLookupModel();
|
void ps_reverseLookupModel();
|
||||||
|
|
||||||
|
//! Simulator model has been changed
|
||||||
|
void ps_simulatorModelChanged(const BlackMisc::Simulation::CAircraftModel &model);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! GUI aircraft values, formatted
|
//! GUI aircraft values, formatted
|
||||||
struct CGuiAircraftValues
|
struct CGuiAircraftValues
|
||||||
@@ -120,9 +123,6 @@ namespace BlackGui
|
|||||||
QString vatsimHomeAirport;
|
QString vatsimHomeAirport;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! GUI values from aircraft
|
|
||||||
void setGuiValuesFromAircraft(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft);
|
|
||||||
|
|
||||||
//! Load from settings
|
//! Load from settings
|
||||||
void loadRememberedVatsimData();
|
void loadRememberedVatsimData();
|
||||||
|
|
||||||
|
|||||||
@@ -448,6 +448,9 @@
|
|||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>unique model identifier</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
|||||||
@@ -49,8 +49,9 @@ namespace BlackMisc
|
|||||||
AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes
|
AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes
|
||||||
AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries
|
AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries
|
||||||
DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded
|
DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded
|
||||||
AllDbEntities = AllIcaoAndCountries | DistributorLiveryModel | InfoObjectEntity | AirportEntity, //!< All DB stuff
|
AllDbEntities = AllIcaoAndCountries | DistributorLiveryModel | InfoObjectEntity | AirportEntity, //!< All DB stuff
|
||||||
AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity //!< All DB entities, no info objects
|
AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity, //!< All DB entities, no info objects
|
||||||
|
AllDbEntitiesNoInfoObjectsNoAirports = AllIcaoAndCountries | DistributorLiveryModel //!< All DB entities, no info objects and airports
|
||||||
};
|
};
|
||||||
Q_DECLARE_FLAGS(Entity, EntityFlag)
|
Q_DECLARE_FLAGS(Entity, EntityFlag)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user