refs #638, reverse lookup in model matching

This commit is contained in:
Klaus Basan
2016-04-09 23:10:00 +02:00
parent 368d803d42
commit 69049001d1
4 changed files with 152 additions and 67 deletions

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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>