Settings for reverse lookup + fixes

Ref T658 related
This commit is contained in:
Klaus Basan
2019-06-15 00:04:46 +02:00
parent 5f738ab544
commit b2de22fb50
4 changed files with 259 additions and 111 deletions

View File

@@ -61,6 +61,10 @@ namespace BlackGui
CGuiUtility::checkBoxReadOnly(ui->cb_ModelSetVerificationOnlyErrorWarning, readonly); CGuiUtility::checkBoxReadOnly(ui->cb_ModelSetVerificationOnlyErrorWarning, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_CategoryGlider, readonly); CGuiUtility::checkBoxReadOnly(ui->cb_CategoryGlider, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_CategoryMilitaryAircraft, readonly); CGuiUtility::checkBoxReadOnly(ui->cb_CategoryMilitaryAircraft, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_ReverseUseModelString, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_ReverseUseSwiftLiveryIds, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_MsReverseLookup, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_MsMatching, readonly);
const bool enabled = !readonly; const bool enabled = !readonly;
ui->rb_Reduction->setEnabled(enabled); ui->rb_Reduction->setEnabled(enabled);
@@ -68,17 +72,16 @@ namespace BlackGui
ui->rb_ScoreOnly->setEnabled(enabled); ui->rb_ScoreOnly->setEnabled(enabled);
ui->rb_ByIcaoDataAircraft1st->setEnabled(enabled); ui->rb_ByIcaoDataAircraft1st->setEnabled(enabled);
ui->rb_ByIcaoDataAirline1st->setEnabled(enabled); ui->rb_ByIcaoDataAirline1st->setEnabled(enabled);
ui->rb_AirlineGroupAsAirline->setEnabled(enabled); ui->rb_PickFirst->setEnabled(enabled); ui->rb_AirlineGroupAsAirline->setEnabled(enabled);
ui->rb_AirlineGroupNo->setEnabled(enabled); ui->rb_AirlineGroupNo->setEnabled(enabled);
ui->rb_AirlineGroupIfNoAirline->setEnabled(enabled); ui->rb_AirlineGroupIfNoAirline->setEnabled(enabled);
ui->rb_PickFirst->setEnabled(enabled);
ui->rb_PickByOrder->setEnabled(enabled); ui->rb_PickByOrder->setEnabled(enabled);
ui->rb_PickRandom->setEnabled(enabled); ui->rb_PickRandom->setEnabled(enabled);
ui->le_MsReverseLookup->setEnabled(enabled); ui->le_MsReverseLookup->setEnabled(enabled);
ui->le_MsMatching->setEnabled(enabled); ui->le_MsMatching->setEnabled(enabled);
CGuiUtility::checkBoxReadOnly(ui->cb_MsReverseLookup, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_MsMatching, readonly);
} }
CStatusMessageList CMatchingForm::validate(bool withNestedForms) const CStatusMessageList CMatchingForm::validate(bool withNestedForms) const
@@ -113,6 +116,7 @@ namespace BlackGui
ui->cb_ByForceCivilian->setChecked(mode.testFlag(CAircraftMatcherSetup::ByForceCivilian)); ui->cb_ByForceCivilian->setChecked(mode.testFlag(CAircraftMatcherSetup::ByForceCivilian));
ui->cb_CategoryGlider->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategoryGlider)); ui->cb_CategoryGlider->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategoryGlider));
ui->cb_CategoryMilitaryAircraft->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategoryMilitary)); ui->cb_CategoryMilitaryAircraft->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategoryMilitary));
ui->cb_CategorySmallAircraft->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategorySmallAircraft));
ui->cb_ByVtol->setChecked(mode.testFlag(CAircraftMatcherSetup::ByVtol)); ui->cb_ByVtol->setChecked(mode.testFlag(CAircraftMatcherSetup::ByVtol));
ui->cb_ScoreIgnoreZeros->setChecked(mode.testFlag(CAircraftMatcherSetup::ScoreIgnoreZeros)); ui->cb_ScoreIgnoreZeros->setChecked(mode.testFlag(CAircraftMatcherSetup::ScoreIgnoreZeros));
ui->cb_ScorePreferColorLiveries->setChecked(mode.testFlag(CAircraftMatcherSetup::ScorePreferColorLiveries)); ui->cb_ScorePreferColorLiveries->setChecked(mode.testFlag(CAircraftMatcherSetup::ScorePreferColorLiveries));
@@ -122,6 +126,8 @@ namespace BlackGui
ui->cb_ModelFailedFailover->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelFailoverIfNoModelCanBeAdded)); ui->cb_ModelFailedFailover->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelFailoverIfNoModelCanBeAdded));
ui->cb_ModelSetVerification->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelVerificationAtStartup)); ui->cb_ModelSetVerification->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelVerificationAtStartup));
ui->cb_ModelSetVerificationOnlyErrorWarning->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelVerificationOnlyWarnError)); ui->cb_ModelSetVerificationOnlyErrorWarning->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelVerificationOnlyWarnError));
ui->cb_ReverseUseModelString->setChecked(mode.testFlag(CAircraftMatcherSetup::ReverseLookupModelString));
ui->cb_ReverseUseSwiftLiveryIds->setChecked(mode.testFlag(CAircraftMatcherSetup::ReverseLookupSwiftLiveryIds));
this->setMatchingAlgorithm(setup); this->setMatchingAlgorithm(setup);
this->setPickStrategy(setup); this->setPickStrategy(setup);
@@ -187,6 +193,7 @@ namespace BlackGui
CAircraftMatcherSetup::MatchingMode CMatchingForm::matchingMode() const CAircraftMatcherSetup::MatchingMode CMatchingForm::matchingMode() const
{ {
return CAircraftMatcherSetup::matchingMode( return CAircraftMatcherSetup::matchingMode(
ui->cb_ReverseUseModelString->isChecked(), ui->cb_ReverseUseSwiftLiveryIds->isChecked(),
ui->cb_ByModelString->isChecked(), ui->cb_ByModelString->isChecked(),
ui->rb_ByIcaoDataAircraft1st->isChecked(), ui->rb_ByIcaoDataAirline1st->isChecked(), ui->rb_ByIcaoDataAircraft1st->isChecked(), ui->rb_ByIcaoDataAirline1st->isChecked(),
ui->cb_ByFamily->isChecked(), ui->cb_ByLivery->isChecked(), ui->cb_ByFamily->isChecked(), ui->cb_ByLivery->isChecked(),
@@ -196,6 +203,7 @@ namespace BlackGui
ui->cb_ByVtol->isChecked(), ui->cb_ByVtol->isChecked(),
ui->cb_CategoryGlider->isChecked(), ui->cb_CategoryGlider->isChecked(),
ui->cb_CategoryMilitaryAircraft->isChecked(), ui->cb_CategoryMilitaryAircraft->isChecked(),
ui->cb_CategorySmallAircraft->isChecked(),
ui->cb_ScoreIgnoreZeros->isChecked(), ui->cb_ScorePreferColorLiveries->isChecked(), ui->cb_ScoreIgnoreZeros->isChecked(), ui->cb_ScorePreferColorLiveries->isChecked(),
ui->cb_ExclNoDbData->isChecked(), ui->cb_ExclNoExcludedModels->isChecked(), ui->cb_ExclNoDbData->isChecked(), ui->cb_ExclNoExcludedModels->isChecked(),
ui->cb_ModelSetVerification->isChecked(), ui->cb_ModelSetVerificationOnlyErrorWarning->isChecked(), ui->cb_ModelSetVerification->isChecked(), ui->cb_ModelSetVerificationOnlyErrorWarning->isChecked(),
@@ -206,7 +214,7 @@ namespace BlackGui
CAircraftMatcherSetup::PickSimilarStrategy CMatchingForm::pickStrategy() const CAircraftMatcherSetup::PickSimilarStrategy CMatchingForm::pickStrategy() const
{ {
if (ui->rb_PickRandom->isChecked()) { return CAircraftMatcherSetup::PickRandom; } if (ui->rb_PickRandom->isChecked()) { return CAircraftMatcherSetup::PickRandom; }
if (ui->rb_PickByOrder->isChecked()) { return CAircraftMatcherSetup::PickByOrder; } if (ui->rb_PickByOrder->isChecked()) { return CAircraftMatcherSetup::PickByOrder; }
return CAircraftMatcherSetup::PickFirst; return CAircraftMatcherSetup::PickFirst;
} }
@@ -216,7 +224,7 @@ namespace BlackGui
switch (setup.getPickStrategy()) switch (setup.getPickStrategy())
{ {
case CAircraftMatcherSetup::PickByOrder: ui->rb_PickByOrder->setChecked(true); break; case CAircraftMatcherSetup::PickByOrder: ui->rb_PickByOrder->setChecked(true); break;
case CAircraftMatcherSetup::PickRandom: ui->rb_PickRandom->setChecked(true); break; case CAircraftMatcherSetup::PickRandom: ui->rb_PickRandom->setChecked(true); break;
case CAircraftMatcherSetup::PickFirst: case CAircraftMatcherSetup::PickFirst:
default: default:
ui->rb_PickFirst->setChecked(true); break; ui->rb_PickFirst->setChecked(true); break;

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>323</width> <width>315</width>
<height>667</height> <height>664</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -45,6 +45,18 @@
<string>Algorithm</string> <string>Algorithm</string>
</property> </property>
<layout class="QGridLayout" name="gl_Algorithm"> <layout class="QGridLayout" name="gl_Algorithm">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QRadioButton" name="rb_ScoreOnly"> <widget class="QRadioButton" name="rb_ScoreOnly">
<property name="text"> <property name="text">
@@ -88,6 +100,18 @@
<string>Matching script</string> <string>Matching script</string>
</property> </property>
<layout class="QGridLayout" name="gl_MatchingScript" columnstretch="0,1,0,0"> <layout class="QGridLayout" name="gl_MatchingScript" columnstretch="0,1,0,0">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="lbl_MsMatching"> <widget class="QLabel" name="lbl_MsMatching">
<property name="text"> <property name="text">
@@ -147,12 +171,59 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="gb_ReverseLookup">
<property name="title">
<string>Reverse lookup</string>
</property>
<layout class="QGridLayout" name="gl_ReverseLookup">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="cb_ReverseUseModelString">
<property name="text">
<string>use model string</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="cb_ReverseUseSwiftLiveryIds">
<property name="text">
<string>use swift livery ids</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="gb_PickStrategy"> <widget class="QGroupBox" name="gb_PickStrategy">
<property name="title"> <property name="title">
<string>Similar results (strategy)</string> <string>Similar results (strategy)</string>
</property> </property>
<layout class="QHBoxLayout" name="hl_PickStrategy"> <layout class="QHBoxLayout" name="hl_PickStrategy">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item> <item>
<widget class="QRadioButton" name="rb_PickFirst"> <widget class="QRadioButton" name="rb_PickFirst">
<property name="text"> <property name="text">
@@ -189,6 +260,18 @@
<string>Reduction</string> <string>Reduction</string>
</property> </property>
<layout class="QGridLayout" name="gl_Mode"> <layout class="QGridLayout" name="gl_Mode">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="2" column="0" colspan="2"> <item row="2" column="0" colspan="2">
<widget class="Line" name="line_Reduction"> <widget class="Line" name="line_Reduction">
<property name="orientation"> <property name="orientation">
@@ -313,13 +396,18 @@
<string>Matching by categories</string> <string>Matching by categories</string>
</property> </property>
<layout class="QGridLayout" name="gl_MacthingCategories"> <layout class="QGridLayout" name="gl_MacthingCategories">
<item row="0" column="0"> <property name="leftMargin">
<widget class="QCheckBox" name="cb_CategoryGlider"> <number>3</number>
<property name="text"> </property>
<string>Glider</string> <property name="topMargin">
</property> <number>3</number>
</widget> </property>
</item> <property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QCheckBox" name="cb_CategoryMilitaryAircraft"> <widget class="QCheckBox" name="cb_CategoryMilitaryAircraft">
<property name="text"> <property name="text">
@@ -327,6 +415,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QCheckBox" name="cb_CategoryGlider">
<property name="text">
<string>glider</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="cb_CategorySmallAircraft">
<property name="text">
<string>small aircraft</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@@ -342,6 +444,18 @@
<string>Failure handling and verification</string> <string>Failure handling and verification</string>
</property> </property>
<layout class="QGridLayout" name="gl_FailureHandling"> <layout class="QGridLayout" name="gl_FailureHandling">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QCheckBox" name="cb_ModelSetRemoveFailed"> <widget class="QCheckBox" name="cb_ModelSetRemoveFailed">
<property name="toolTip"> <property name="toolTip">
@@ -377,16 +491,25 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="gb_Exclusion"> <widget class="QGroupBox" name="gbExclusion">
<property name="title"> <property name="title">
<string>Exclusion</string> <string>Exclusion</string>
</property> </property>
<layout class="QHBoxLayout" name="hl_Exclude"> <layout class="QHBoxLayout" name="hl_Exclusion">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item> <item>
<widget class="QCheckBox" name="cb_ExclNoExcludedModels"> <widget class="QCheckBox" name="cb_ExclNoExcludedModels">
<property name="toolTip">
<string>models marked as excluded are ignored</string>
</property>
<property name="text"> <property name="text">
<string>excluded models</string> <string>excluded models</string>
</property> </property>
@@ -394,11 +517,8 @@
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cb_ExclNoDbData"> <widget class="QCheckBox" name="cb_ExclNoDbData">
<property name="toolTip">
<string>models without DB data are ignored</string>
</property>
<property name="text"> <property name="text">
<string>exclude if no DB data</string> <string>exclude if no DB models</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -411,6 +531,18 @@
<string>Scoring</string> <string>Scoring</string>
</property> </property>
<layout class="QHBoxLayout" name="hl_Scoring"> <layout class="QHBoxLayout" name="hl_Scoring">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item> <item>
<widget class="QCheckBox" name="cb_ScorePreferColorLiveries"> <widget class="QCheckBox" name="cb_ScorePreferColorLiveries">
<property name="text"> <property name="text">
@@ -442,6 +574,8 @@
<tabstop>le_MsMatching</tabstop> <tabstop>le_MsMatching</tabstop>
<tabstop>cb_MsMatching</tabstop> <tabstop>cb_MsMatching</tabstop>
<tabstop>pb_MsMatching</tabstop> <tabstop>pb_MsMatching</tabstop>
<tabstop>cb_ReverseUseModelString</tabstop>
<tabstop>cb_ReverseUseSwiftLiveryIds</tabstop>
<tabstop>rb_PickFirst</tabstop> <tabstop>rb_PickFirst</tabstop>
<tabstop>rb_PickRandom</tabstop> <tabstop>rb_PickRandom</tabstop>
<tabstop>rb_PickByOrder</tabstop> <tabstop>rb_PickByOrder</tabstop>
@@ -459,6 +593,7 @@
<tabstop>cb_ByForceCivilian</tabstop> <tabstop>cb_ByForceCivilian</tabstop>
<tabstop>cb_CategoryGlider</tabstop> <tabstop>cb_CategoryGlider</tabstop>
<tabstop>cb_CategoryMilitaryAircraft</tabstop> <tabstop>cb_CategoryMilitaryAircraft</tabstop>
<tabstop>cb_CategorySmallAircraft</tabstop>
<tabstop>cb_ModelSetVerification</tabstop> <tabstop>cb_ModelSetVerification</tabstop>
<tabstop>cb_ModelSetVerificationOnlyErrorWarning</tabstop> <tabstop>cb_ModelSetVerificationOnlyErrorWarning</tabstop>
<tabstop>cb_ModelSetRemoveFailed</tabstop> <tabstop>cb_ModelSetRemoveFailed</tabstop>
@@ -471,7 +606,7 @@
<resources/> <resources/>
<connections/> <connections/>
<buttongroups> <buttongroups>
<buttongroup name="bg_AirlineGroup"/>
<buttongroup name="bg_ICAOfirst"/> <buttongroup name="bg_ICAOfirst"/>
<buttongroup name="bg_AirlineGroup"/>
</buttongroups> </buttongroups>
</ui> </ui>

View File

@@ -68,13 +68,6 @@ namespace BlackMisc
this->setMatchingMode(m); this->setMatchingMode(m);
} }
void CAircraftMatcherSetup::setReverseLookup(bool useModelLookup)
{
MatchingMode m = this->getMatchingMode();
m.setFlag(ReverseLookupModelString, useModelLookup);
this->setMatchingMode(m);
}
void CAircraftMatcherSetup::setAirlineGroupBehaviour(bool ifNoAirline, bool sameAsAirline) void CAircraftMatcherSetup::setAirlineGroupBehaviour(bool ifNoAirline, bool sameAsAirline)
{ {
MatchingMode m = this->getMatchingMode(); MatchingMode m = this->getMatchingMode();
@@ -118,11 +111,11 @@ namespace BlackMisc
const ColumnIndex i = index.frontCasted<ColumnIndex>(); const ColumnIndex i = index.frontCasted<ColumnIndex>();
switch (i) switch (i)
{ {
case IndexMatchingAlgorithm: m_algorithm = variant.toInt(); break; case IndexMatchingAlgorithm: m_algorithm = variant.toInt(); break;
case IndexMatchingMode: m_mode = variant.toInt(); break; case IndexMatchingMode: m_mode = variant.toInt(); break;
case IndexPickStrategy: m_strategy = variant.toInt(); break; case IndexPickStrategy: m_strategy = variant.toInt(); break;
case IndexMsNetworkEntryFile: m_msReverseLookupFile = variant.toQString(); break; case IndexMsNetworkEntryFile: m_msReverseLookupFile = variant.toQString(); break;
case IndexMsMatchingStageFile: m_msMatchingStageFile = variant.toQString(); break; case IndexMsMatchingStageFile: m_msMatchingStageFile = variant.toQString(); break;
case IndexMsNetworkEnabled: m_msReverseEnabled = variant.toBool(); break; case IndexMsNetworkEnabled: m_msReverseEnabled = variant.toBool(); break;
case IndexMsMatchingStageEnabled: m_msReverseEnabled = variant.toBool(); break; case IndexMsMatchingStageEnabled: m_msReverseEnabled = variant.toBool(); break;
default: break; default: break;
@@ -201,32 +194,36 @@ namespace BlackMisc
static const QString modelFailedAdded("Replace models failed to be added"); static const QString modelFailedAdded("Replace models failed to be added");
static const QString categoryGlider("glider categories"); static const QString categoryGlider("glider categories");
static const QString categoryMilitary("military categories"); static const QString categoryMilitary("military categories");
static const QString categorySmallAircraft("small aircraft categories");
static const QString revModelString("reverse model lookup"); static const QString revModelString("reverse model lookup");
static const QString revLiveryIds("reverse livery ids");
static const QString agSameAsAirline("group as airline"); static const QString agSameAsAirline("group as airline");
static const QString agIfNoAirline("group if no airline"); static const QString agIfNoAirline("group if no airline");
switch (modeFlag) switch (modeFlag)
{ {
case ReverseLookupModelString: return revModelString; case ReverseLookupModelString: return revModelString;
case ByModelString: return ms; case ReverseLookupSwiftLiveryIds: return revLiveryIds;
case ByIcaoData: return icao; case ByModelString: return ms;
case ByFamily: return family; case ByIcaoData: return icao;
case ByLivery: return livery; case ByFamily: return family;
case ByCombinedType: return combined; case ByLivery: return livery;
case ByIcaoOrderAircraftFirst: return icaoAircraft; case ByCombinedType: return combined;
case ByIcaoOrderAirlineFirst: return icaoAirline; case ByIcaoOrderAircraftFirst: return icaoAircraft;
case ByForceCivilian: return forceCiv; case ByIcaoOrderAirlineFirst: return icaoAirline;
case ByForceMilitary: return forceMil; case ByForceCivilian: return forceCiv;
case ByVtol: return vtol; case ByForceMilitary: return forceMil;
case ByCategoryGlider: return categoryGlider; case ByVtol: return vtol;
case ByCategoryMilitary: return categoryMilitary; case ByCategoryGlider: return categoryGlider;
case ScoreIgnoreZeros: return noZeros; case ByCategoryMilitary: return categoryMilitary;
case ScorePreferColorLiveries: return preferColorLiveries; case ByCategorySmallAircraft: return categorySmallAircraft;
case ExcludeNoDbData: return exNoDb; case ScoreIgnoreZeros: return noZeros;
case ExcludeNoExcluded: return exExcl; case ScorePreferColorLiveries: return preferColorLiveries;
case ModelSetRemoveFailedModel: return removeFromModelSet; case ExcludeNoDbData: return exNoDb;
case ModelVerificationAtStartup: return verification; case ExcludeNoExcluded: return exExcl;
case ByAirlineGroupIfNoAirline: return agIfNoAirline; case ModelSetRemoveFailedModel: return removeFromModelSet;
case ModelVerificationAtStartup: return verification;
case ByAirlineGroupIfNoAirline: return agIfNoAirline;
case ByAirlineGroupSameAsAirline: return agSameAsAirline; case ByAirlineGroupSameAsAirline: return agSameAsAirline;
case ModelVerificationOnlyWarnError: return verificationWarn; case ModelVerificationOnlyWarnError: return verificationWarn;
case ModelFailoverIfNoModelCanBeAdded: return modelFailedAdded; case ModelFailoverIfNoModelCanBeAdded: return modelFailedAdded;
@@ -240,25 +237,27 @@ namespace BlackMisc
QString CAircraftMatcherSetup::modeToString(MatchingMode mode) QString CAircraftMatcherSetup::modeToString(MatchingMode mode)
{ {
QStringList modes; QStringList modes;
if (mode.testFlag(ReverseLookupModelString)) { modes << modeFlagToString(ReverseLookupModelString); } if (mode.testFlag(ReverseLookupModelString)) { modes << modeFlagToString(ReverseLookupModelString); }
if (mode.testFlag(ByModelString)) { modes << modeFlagToString(ByModelString); } if (mode.testFlag(ReverseLookupSwiftLiveryIds)) { modes << modeFlagToString(ReverseLookupSwiftLiveryIds); }
if (mode.testFlag(ByIcaoData)) { modes << modeFlagToString(ByIcaoData); } if (mode.testFlag(ByModelString)) { modes << modeFlagToString(ByModelString); }
if (mode.testFlag(ByIcaoOrderAircraftFirst)) { modes << modeFlagToString(ByIcaoOrderAircraftFirst); } if (mode.testFlag(ByIcaoData)) { modes << modeFlagToString(ByIcaoData); }
if (mode.testFlag(ByIcaoOrderAirlineFirst)) { modes << modeFlagToString(ByIcaoOrderAirlineFirst); } if (mode.testFlag(ByIcaoOrderAircraftFirst)) { modes << modeFlagToString(ByIcaoOrderAircraftFirst); }
if (mode.testFlag(ByFamily)) { modes << modeFlagToString(ByFamily); } if (mode.testFlag(ByIcaoOrderAirlineFirst)) { modes << modeFlagToString(ByIcaoOrderAirlineFirst); }
if (mode.testFlag(ByLivery)) { modes << modeFlagToString(ByLivery); } if (mode.testFlag(ByFamily)) { modes << modeFlagToString(ByFamily); }
if (mode.testFlag(ByCombinedType)) { modes << modeFlagToString(ByCombinedType); } if (mode.testFlag(ByLivery)) { modes << modeFlagToString(ByLivery); }
if (mode.testFlag(ByForceCivilian)) { modes << modeFlagToString(ByForceCivilian); } if (mode.testFlag(ByCombinedType)) { modes << modeFlagToString(ByCombinedType); }
if (mode.testFlag(ByForceMilitary)) { modes << modeFlagToString(ByForceMilitary); } if (mode.testFlag(ByForceCivilian)) { modes << modeFlagToString(ByForceCivilian); }
if (mode.testFlag(ByCategoryGlider)) { modes << modeFlagToString(ByCategoryGlider); } if (mode.testFlag(ByForceMilitary)) { modes << modeFlagToString(ByForceMilitary); }
if (mode.testFlag(ByCategoryMilitary)) { modes << modeFlagToString(ByCategoryMilitary); } if (mode.testFlag(ByCategoryGlider)) { modes << modeFlagToString(ByCategoryGlider); }
if (mode.testFlag(ByVtol)) { modes << modeFlagToString(ByVtol); } if (mode.testFlag(ByCategoryMilitary)) { modes << modeFlagToString(ByCategoryMilitary); }
if (mode.testFlag(ScoreIgnoreZeros)) { modes << modeFlagToString(ScoreIgnoreZeros); } if (mode.testFlag(ByCategorySmallAircraft)) { modes << modeFlagToString(ByCategorySmallAircraft); }
if (mode.testFlag(ScorePreferColorLiveries)) { modes << modeFlagToString(ScorePreferColorLiveries); } if (mode.testFlag(ByVtol)) { modes << modeFlagToString(ByVtol); }
if (mode.testFlag(ModelSetRemoveFailedModel)) { modes << modeFlagToString(ModelSetRemoveFailedModel); } if (mode.testFlag(ScoreIgnoreZeros)) { modes << modeFlagToString(ScoreIgnoreZeros); }
if (mode.testFlag(ModelVerificationAtStartup)) { modes << modeFlagToString(ModelVerificationAtStartup); } if (mode.testFlag(ScorePreferColorLiveries)) { modes << modeFlagToString(ScorePreferColorLiveries); }
if (mode.testFlag(ByAirlineGroupIfNoAirline)) { modes << modeFlagToString(ByAirlineGroupIfNoAirline); } if (mode.testFlag(ModelSetRemoveFailedModel)) { modes << modeFlagToString(ModelSetRemoveFailedModel); }
if (mode.testFlag(ByAirlineGroupSameAsAirline)) { modes << modeFlagToString(ByAirlineGroupSameAsAirline); } if (mode.testFlag(ModelVerificationAtStartup)) { modes << modeFlagToString(ModelVerificationAtStartup); }
if (mode.testFlag(ByAirlineGroupIfNoAirline)) { modes << modeFlagToString(ByAirlineGroupIfNoAirline); }
if (mode.testFlag(ByAirlineGroupSameAsAirline)) { modes << modeFlagToString(ByAirlineGroupSameAsAirline); }
if (mode.testFlag(ModelVerificationOnlyWarnError)) { modes << modeFlagToString(ModelVerificationOnlyWarnError); } if (mode.testFlag(ModelVerificationOnlyWarnError)) { modes << modeFlagToString(ModelVerificationOnlyWarnError); }
if (mode.testFlag(ModelFailoverIfNoModelCanBeAdded)) { modes << modeFlagToString(ModelFailoverIfNoModelCanBeAdded); } if (mode.testFlag(ModelFailoverIfNoModelCanBeAdded)) { modes << modeFlagToString(ModelFailoverIfNoModelCanBeAdded); }
return modes.join(", "); return modes.join(", ");
@@ -283,35 +282,39 @@ namespace BlackMisc
} }
CAircraftMatcherSetup::MatchingMode CAircraftMatcherSetup::matchingMode( CAircraftMatcherSetup::MatchingMode CAircraftMatcherSetup::matchingMode(
bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, bool byFamily, bool byLivery, bool byCombinedType, bool revModelString, bool revLiveryIds,
bool byForceMilitary, bool byForceCivilian, bool byVtol, bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, bool byFamily, bool byLivery, bool byCombinedType,
bool byGliderCategory, bool byMilitaryCategory, bool byForceMilitary, bool byForceCivilian, bool byVtol,
bool scoreIgnoreZeros, bool scorePreferColorLiveries, bool byGliderCategory, bool byMilitaryCategory, bool bySmallAircraftCategory,
bool excludeNoDbData, bool excludeNoExcluded, bool scoreIgnoreZeros, bool scorePreferColorLiveries,
bool excludeNoDbData, bool excludeNoExcluded,
bool modelVerification, bool modelVerificationWarnError, bool modelVerification, bool modelVerificationWarnError,
bool modelSetRemoveFailedModel, bool modelFailover) bool modelSetRemoveFailedModel, bool modelFailover)
{ {
if (modelFailover) { modelSetRemoveFailedModel = true; } // otherwise this does not make sense if (modelFailover) { modelSetRemoveFailedModel = true; } // otherwise this does not make sense
MatchingMode mode = byModelString ? ByModelString : ModeNone; MatchingMode mode = byModelString ? ByModelString : ModeNone;
if (byIcaoDataAircraft1st) { mode |= ByIcaoOrderAircraftFirst; } if (byIcaoDataAircraft1st) { mode |= ByIcaoOrderAircraftFirst; }
if (byIcaoDataAirline1st) { mode |= ByIcaoOrderAirlineFirst; } if (byIcaoDataAirline1st) { mode |= ByIcaoOrderAirlineFirst; }
if (byFamily) { mode |= ByFamily; } if (byFamily) { mode |= ByFamily; }
if (byLivery) { mode |= ByLivery; } if (byLivery) { mode |= ByLivery; }
if (byCombinedType) { mode |= ByCombinedType; } if (byCombinedType) { mode |= ByCombinedType; }
if (byForceMilitary) { mode |= ByForceMilitary; } if (byForceMilitary) { mode |= ByForceMilitary; }
if (byForceCivilian) { mode |= ByForceCivilian; } if (byForceCivilian) { mode |= ByForceCivilian; }
if (byVtol) { mode |= ByVtol; } if (byVtol) { mode |= ByVtol; }
if (byGliderCategory) { mode |= ByCategoryGlider; } if (byGliderCategory) { mode |= ByCategoryGlider; }
if (byMilitaryCategory) { mode |= ByCategoryMilitary; } if (byMilitaryCategory) { mode |= ByCategoryMilitary; }
if (scoreIgnoreZeros) { mode |= ScoreIgnoreZeros; } if (bySmallAircraftCategory) { mode |= ByCategorySmallAircraft; }
if (scorePreferColorLiveries) { mode |= ScorePreferColorLiveries; } if (scoreIgnoreZeros) { mode |= ScoreIgnoreZeros; }
if (excludeNoDbData) { mode |= ExcludeNoDbData; } if (scorePreferColorLiveries) { mode |= ScorePreferColorLiveries; }
if (excludeNoExcluded) { mode |= ExcludeNoExcluded; } if (excludeNoDbData) { mode |= ExcludeNoDbData; }
if (modelSetRemoveFailedModel) { mode |= ModelSetRemoveFailedModel; } if (excludeNoExcluded) { mode |= ExcludeNoExcluded; }
if (modelVerification) { mode |= ModelVerificationAtStartup; } if (modelSetRemoveFailedModel) { mode |= ModelSetRemoveFailedModel; }
if (modelVerification) { mode |= ModelVerificationAtStartup; }
if (modelVerificationWarnError) { mode |= ModelVerificationOnlyWarnError; } if (modelVerificationWarnError) { mode |= ModelVerificationOnlyWarnError; }
if (modelFailover) { mode |= ModelFailoverIfNoModelCanBeAdded; } if (modelFailover) { mode |= ModelFailoverIfNoModelCanBeAdded; }
if (revModelString) { mode |= ReverseLookupModelString; }
if (revLiveryIds) { mode |= ReverseLookupSwiftLiveryIds; }
return mode; return mode;
} }
} // namespace } // namespace

View File

@@ -43,16 +43,10 @@ namespace BlackMisc
ByForceCivilian = 1 << 7, //!< civilian (in) will only search in civilian ByForceCivilian = 1 << 7, //!< civilian (in) will only search in civilian
ByMilitary = ByForceCivilian | ByForceMilitary, ByMilitary = ByForceCivilian | ByForceMilitary,
ByVtol = 1 << 8, ByVtol = 1 << 8,
ByIcaoOrderAircraftFirst = (1 << 9) | ByIcaoData, ByIcaoOrderAircraftFirst = (1 << 9) | ByIcaoData,
ByIcaoOrderAirlineFirst = (1 << 10) | ByIcaoData, ByIcaoOrderAirlineFirst = (1 << 10) | ByIcaoData,
ByAirlineGroupSameAsAirline = (1 << 11) | ByIcaoData, ByAirlineGroupSameAsAirline = (1 << 11) | ByIcaoData,
ByAirlineGroupIfNoAirline = (1 << 12) | ByIcaoData, ByAirlineGroupIfNoAirline = (1 << 12) | ByIcaoData,
ByCategoryGlider = 1 << 20,
ByCategoryMilitary = 1 << 21,
// --- score based matching ---
ScoreIgnoreZeros = 1 << 11, //!< zero scores are ignored
ScorePreferColorLiveries = 1 << 12, //!< prefer color liveries
// --- exclusion --- // --- exclusion ---
ExcludeNoDbData = 1 << 13, ExcludeNoDbData = 1 << 13,
@@ -62,12 +56,22 @@ namespace BlackMisc
// --- model set --- // --- model set ---
ModelSetRemoveFailedModel = 1 << 15, ModelSetRemoveFailedModel = 1 << 15,
ModelVerificationAtStartup = 1 << 16, ModelVerificationAtStartup = 1 << 16,
ModelVerificationOnlyWarnError = 1 << 18, // later added, hence 18
ModelFailoverIfNoModelCanBeAdded = 1 << 17, ModelFailoverIfNoModelCanBeAdded = 1 << 17,
ModelVerificationOnlyWarnError = 1 << 18, // later added, hence 18
// --- categories ---
ByCategoryGlider = 1 << 20,
ByCategoryMilitary = 1 << 21,
ByCategorySmallAircraft = 1 << 22,
// --- reverse lookup --- // --- reverse lookup ---
ReverseLookupModelString = 1 << 19, ReverseLookupModelString = 1 << 25,
ReverseLookupDefault = ReverseLookupModelString, ReverseLookupSwiftLiveryIds = 1 << 26,
ReverseLookupDefault = ReverseLookupModelString | ReverseLookupSwiftLiveryIds,
// --- score based matching ---
ScoreIgnoreZeros = 1 << 28, //!< zero scores are ignored
ScorePreferColorLiveries = 1 << 29, //!< prefer color liveries
// --- others --- // --- others ---
ModeNone = 0, ModeNone = 0,
@@ -77,7 +81,7 @@ namespace BlackMisc
ModeDefaultSet = ModelSetRemoveFailedModel | ModelVerificationAtStartup | ModelFailoverIfNoModelCanBeAdded, ModeDefaultSet = ModelSetRemoveFailedModel | ModelVerificationAtStartup | ModelFailoverIfNoModelCanBeAdded,
// default depending on algorithm // default depending on algorithm
ModeDefaultScore = ScoreIgnoreZeros | ScorePreferColorLiveries | ExcludeDefault | ReverseLookupDefault, ModeDefaultScore = ScoreIgnoreZeros | ScorePreferColorLiveries | ExcludeDefault | ReverseLookupDefault,
ModeDefaultReduce = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ByAirlineGroupIfNoAirline | ReverseLookupDefault | ExcludeDefault | ByLivery, ModeDefaultReduce = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ByAirlineGroupIfNoAirline | ReverseLookupDefault | ExcludeDefault | ByLivery,
ModeDefaultReducePlusScore = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ByAirlineGroupIfNoAirline | ReverseLookupDefault | ExcludeDefault | ModeDefaultScore, ModeDefaultReducePlusScore = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ByAirlineGroupIfNoAirline | ReverseLookupDefault | ExcludeDefault | ModeDefaultScore,
}; };
@@ -185,9 +189,6 @@ namespace BlackMisc
//! Set the strategy //! Set the strategy
void setPickStrategy(PickSimilarStrategy strategy) { m_strategy = static_cast<int>(strategy); } void setPickStrategy(PickSimilarStrategy strategy) { m_strategy = static_cast<int>(strategy); }
//! Set reverse lookup flags
void setReverseLookup(bool useModelLookup);
//! Airline group behaviour //! Airline group behaviour
void setAirlineGroupBehaviour(bool ifNoAirline, bool sameAsAirline); void setAirlineGroupBehaviour(bool ifNoAirline, bool sameAsAirline);
@@ -222,10 +223,11 @@ namespace BlackMisc
static const QString &strategyToString(PickSimilarStrategy strategy); static const QString &strategyToString(PickSimilarStrategy strategy);
//! Mode by flags //! Mode by flags
static MatchingMode matchingMode(bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, static MatchingMode matchingMode(bool revModelString, bool revLiveryIds,
bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st,
bool byFamily, bool byLivery, bool byCombinedType, bool byFamily, bool byLivery, bool byCombinedType,
bool byForceMilitary, bool byForceCivilian, bool byForceMilitary, bool byForceCivilian,
bool byVtol, bool byGliderCategory, bool byMilitaryCategory, bool byVtol, bool byGliderCategory, bool byMilitaryCategory, bool bySmallAircraftCategory,
bool scoreIgnoreZeros, bool scorePreferColorLiveries, bool excludeNoDbData, bool excludeNoExcluded, bool scoreIgnoreZeros, bool scorePreferColorLiveries, bool excludeNoDbData, bool excludeNoExcluded,
bool modelVerification, bool modelVerificationWarnError, bool modelSetRemoveFailedModel, bool modelFailover); bool modelVerification, bool modelVerificationWarnError, bool modelSetRemoveFailedModel, bool modelFailover);