mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
refs #638, reverse lookup in model matching
This commit is contained in:
@@ -43,7 +43,8 @@ namespace BlackGui
|
||||
ui->le_Manufacturer->setValidator(validator);
|
||||
|
||||
connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CModelMatcherComponent::ps_simulatorChanged);
|
||||
connect(ui->pb_Test, &QPushButton::pressed, this, &CModelMatcherComponent::ps_test);
|
||||
connect(ui->pb_ModelMatching, &QPushButton::pressed, this, &CModelMatcherComponent::ps_testModelMatching);
|
||||
connect(ui->pb_ReverseLookup, &QPushButton::pressed, this, &CModelMatcherComponent::ps_reverseLookup);
|
||||
connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CModelMatcherComponent::ps_webDataRed);
|
||||
|
||||
const CSimulatorInfo sim(ui->comp_SimulatorSelector->getValue());
|
||||
@@ -79,15 +80,33 @@ namespace BlackGui
|
||||
this->redisplay();
|
||||
}
|
||||
|
||||
void CModelMatcherComponent::ps_test()
|
||||
void CModelMatcherComponent::ps_testModelMatching()
|
||||
{
|
||||
ui->te_Results->clear();
|
||||
CStatusMessageList msgs;
|
||||
CSimulatedAircraft remoteAircraft(createAircraft());
|
||||
if (this->ui->cb_withReverseLookup->isChecked())
|
||||
{
|
||||
const QString liveryString(ui->comp_LiverySelector->getRawCombinedCode());
|
||||
const CAircraftModel reverseModel = CAircraftMatcher::reverseLookup(remoteAircraft.getModel(), liveryString, &msgs);
|
||||
remoteAircraft.setModel(reverseModel);
|
||||
}
|
||||
|
||||
this->m_matcher.setDefaultModel(CModelMatcherComponent::defaultModel());
|
||||
const CAircraftModel matched = this->m_matcher.getClosestMatch(remoteAircraft, &msgs);
|
||||
ui->te_Results->setText(matched.toQString(true));
|
||||
ui->tvp_ResultMessages->updateContainer(msgs);
|
||||
}
|
||||
|
||||
void CModelMatcherComponent::ps_reverseLookup()
|
||||
{
|
||||
ui->te_Results->clear();
|
||||
CStatusMessageList msgs;
|
||||
this->m_matcher.setDefaultModel(CModelMatcherComponent::defaultModel());
|
||||
CSimulatedAircraft remoteAircraft(createAircraft());
|
||||
const CAircraftModel matched = this->m_matcher.getClosestMatch(remoteAircraft, &msgs);
|
||||
remoteAircraft.setModel(matched);
|
||||
ui->te_Results->setText(remoteAircraft.toQString(true));
|
||||
const CSimulatedAircraft remoteAircraft(createAircraft());
|
||||
const QString livery(ui->comp_LiverySelector->getRawCombinedCode());
|
||||
const CAircraftModel matched = CAircraftMatcher::reverseLookup(remoteAircraft.getModel(), livery, &msgs);
|
||||
ui->te_Results->setText(matched.toQString(true));
|
||||
ui->tvp_ResultMessages->updateContainer(msgs);
|
||||
}
|
||||
|
||||
@@ -111,31 +130,28 @@ namespace BlackGui
|
||||
{
|
||||
const QString airline(ui->comp_AirlineSelector->getRawDesignator());
|
||||
const QString aircraft(ui->comp_AircraftSelector->getRawDesignator());
|
||||
const QString model(ui->le_ModelString->text().trimmed().toUpper());
|
||||
const QString modelString(ui->le_ModelString->text().trimmed().toUpper());
|
||||
const QString combined(ui->comp_CombinedCode->getCombinedType());
|
||||
const QString manufacturer(ui->le_Manufacturer->text().trimmed().toUpper());
|
||||
const QString liveryCombinedCode(ui->comp_LiverySelector->getRawCombinedCode());
|
||||
|
||||
static const CCallsign cs("SWIFT");
|
||||
static const CUser pilot("123456", "swift Test", cs);
|
||||
CSimulatedAircraft sa;
|
||||
if (!model.isEmpty())
|
||||
{
|
||||
const CAircraftModel m(model, CAircraftModel::TypeFsdData);
|
||||
sa = CSimulatedAircraft(m);
|
||||
}
|
||||
sa.setCallsign(cs);
|
||||
|
||||
CAircraftIcaoCode icao(aircraft, combined);
|
||||
icao.setManufacturer(manufacturer);
|
||||
sa.setAircraftIcaoCode(icao);
|
||||
|
||||
const CAirlineIcaoCode al(airline);
|
||||
const CLivery l(liveryCombinedCode.isEmpty() ? CLivery::getStandardCode(al) : liveryCombinedCode,
|
||||
al,
|
||||
"Standard");
|
||||
sa.setLivery(l);
|
||||
CAircraftModel m(modelString, CAircraftModel::TypeFsdData);
|
||||
m.setLivery(l);
|
||||
m.setCallsign(cs);
|
||||
m.setModelType(CAircraftModel::TypeFsdData);
|
||||
CSimulatedAircraft sa(m);
|
||||
sa.setPilot(pilot);
|
||||
sa.setAircraftIcaoCode(icao);
|
||||
return sa;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,10 @@ namespace BlackGui
|
||||
void ps_cacheChanged(BlackMisc::Simulation::CSimulatorInfo &simulator);
|
||||
|
||||
//! Run the matcher
|
||||
void ps_test();
|
||||
void ps_testModelMatching();
|
||||
|
||||
//! Reverse lookup
|
||||
void ps_reverseLookup();
|
||||
|
||||
//! Web data have been read
|
||||
void ps_webDataRed(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>324</width>
|
||||
<height>318</height>
|
||||
<width>356</width>
|
||||
<height>340</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -32,6 +32,26 @@
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="BlackGui::Components::CSimulatorSelector" name="comp_SimulatorSelector">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="BlackGui::Components::CAircraftCombinedTypeSelector" name="comp_CombinedCode">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="BlackGui::Components::CDbAircraftIcaoSelectorComponent" name="comp_AircraftSelector">
|
||||
<property name="minimumSize">
|
||||
@@ -106,24 +126,62 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="BlackGui::Components::CAircraftCombinedTypeSelector" name="comp_CombinedCode">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="BlackGui::Components::CSimulatorSelector" name="comp_SimulatorSelector">
|
||||
<item row="6" column="1" colspan="3">
|
||||
<widget class="QFrame" name="fr_Buttons">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="hs_Buttons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_ReverseLookup">
|
||||
<property name="text">
|
||||
<string>reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_ModelMatching">
|
||||
<property name="text">
|
||||
<string>matching</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_withReverseLookup">
|
||||
<property name="toolTip">
|
||||
<string>use reverse lookup for model matching</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>with lookup</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
@@ -147,20 +205,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="le_ModelString">
|
||||
<property name="placeholderText">
|
||||
<string>model string</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_Simulator">
|
||||
<property name="text">
|
||||
<string>Simulator:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_Combined">
|
||||
<property name="text">
|
||||
@@ -175,17 +219,27 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="3">
|
||||
<widget class="QPushButton" name="pb_Test">
|
||||
<property name="text">
|
||||
<string>Run</string>
|
||||
<item row="5" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="le_ModelString">
|
||||
<property name="placeholderText">
|
||||
<string>model string</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLineEdit" name="le_ModelSetCount">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_Simulator">
|
||||
<property name="text">
|
||||
<string>Simulator:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="le_Manufacturer"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_Manufacturer">
|
||||
<property name="text">
|
||||
<string>Manufacturer:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -196,16 +250,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_Manufacturer">
|
||||
<property name="text">
|
||||
<string>Manufacturer:</string>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLineEdit" name="le_ModelSetCount">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="le_Manufacturer"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
||||
Reference in New Issue
Block a user