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_CategoryGlider, 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;
ui->rb_Reduction->setEnabled(enabled);
@@ -68,17 +72,16 @@ namespace BlackGui
ui->rb_ScoreOnly->setEnabled(enabled);
ui->rb_ByIcaoDataAircraft1st->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_AirlineGroupIfNoAirline->setEnabled(enabled);
ui->rb_PickFirst->setEnabled(enabled);
ui->rb_PickByOrder->setEnabled(enabled);
ui->rb_PickRandom->setEnabled(enabled);
ui->le_MsReverseLookup->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
@@ -113,6 +116,7 @@ namespace BlackGui
ui->cb_ByForceCivilian->setChecked(mode.testFlag(CAircraftMatcherSetup::ByForceCivilian));
ui->cb_CategoryGlider->setChecked(mode.testFlag(CAircraftMatcherSetup::ByCategoryGlider));
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_ScoreIgnoreZeros->setChecked(mode.testFlag(CAircraftMatcherSetup::ScoreIgnoreZeros));
ui->cb_ScorePreferColorLiveries->setChecked(mode.testFlag(CAircraftMatcherSetup::ScorePreferColorLiveries));
@@ -122,6 +126,8 @@ namespace BlackGui
ui->cb_ModelFailedFailover->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelFailoverIfNoModelCanBeAdded));
ui->cb_ModelSetVerification->setChecked(mode.testFlag(CAircraftMatcherSetup::ModelVerificationAtStartup));
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->setPickStrategy(setup);
@@ -187,6 +193,7 @@ namespace BlackGui
CAircraftMatcherSetup::MatchingMode CMatchingForm::matchingMode() const
{
return CAircraftMatcherSetup::matchingMode(
ui->cb_ReverseUseModelString->isChecked(), ui->cb_ReverseUseSwiftLiveryIds->isChecked(),
ui->cb_ByModelString->isChecked(),
ui->rb_ByIcaoDataAircraft1st->isChecked(), ui->rb_ByIcaoDataAirline1st->isChecked(),
ui->cb_ByFamily->isChecked(), ui->cb_ByLivery->isChecked(),
@@ -196,6 +203,7 @@ namespace BlackGui
ui->cb_ByVtol->isChecked(),
ui->cb_CategoryGlider->isChecked(),
ui->cb_CategoryMilitaryAircraft->isChecked(),
ui->cb_CategorySmallAircraft->isChecked(),
ui->cb_ScoreIgnoreZeros->isChecked(), ui->cb_ScorePreferColorLiveries->isChecked(),
ui->cb_ExclNoDbData->isChecked(), ui->cb_ExclNoExcludedModels->isChecked(),
ui->cb_ModelSetVerification->isChecked(), ui->cb_ModelSetVerificationOnlyErrorWarning->isChecked(),

View File

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

View File

@@ -68,13 +68,6 @@ namespace BlackMisc
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)
{
MatchingMode m = this->getMatchingMode();
@@ -201,13 +194,16 @@ namespace BlackMisc
static const QString modelFailedAdded("Replace models failed to be added");
static const QString categoryGlider("glider categories");
static const QString categoryMilitary("military categories");
static const QString categorySmallAircraft("small aircraft categories");
static const QString revModelString("reverse model lookup");
static const QString revLiveryIds("reverse livery ids");
static const QString agSameAsAirline("group as airline");
static const QString agIfNoAirline("group if no airline");
switch (modeFlag)
{
case ReverseLookupModelString: return revModelString;
case ReverseLookupSwiftLiveryIds: return revLiveryIds;
case ByModelString: return ms;
case ByIcaoData: return icao;
case ByFamily: return family;
@@ -220,6 +216,7 @@ namespace BlackMisc
case ByVtol: return vtol;
case ByCategoryGlider: return categoryGlider;
case ByCategoryMilitary: return categoryMilitary;
case ByCategorySmallAircraft: return categorySmallAircraft;
case ScoreIgnoreZeros: return noZeros;
case ScorePreferColorLiveries: return preferColorLiveries;
case ExcludeNoDbData: return exNoDb;
@@ -241,6 +238,7 @@ namespace BlackMisc
{
QStringList modes;
if (mode.testFlag(ReverseLookupModelString)) { modes << modeFlagToString(ReverseLookupModelString); }
if (mode.testFlag(ReverseLookupSwiftLiveryIds)) { modes << modeFlagToString(ReverseLookupSwiftLiveryIds); }
if (mode.testFlag(ByModelString)) { modes << modeFlagToString(ByModelString); }
if (mode.testFlag(ByIcaoData)) { modes << modeFlagToString(ByIcaoData); }
if (mode.testFlag(ByIcaoOrderAircraftFirst)) { modes << modeFlagToString(ByIcaoOrderAircraftFirst); }
@@ -252,6 +250,7 @@ namespace BlackMisc
if (mode.testFlag(ByForceMilitary)) { modes << modeFlagToString(ByForceMilitary); }
if (mode.testFlag(ByCategoryGlider)) { modes << modeFlagToString(ByCategoryGlider); }
if (mode.testFlag(ByCategoryMilitary)) { modes << modeFlagToString(ByCategoryMilitary); }
if (mode.testFlag(ByCategorySmallAircraft)) { modes << modeFlagToString(ByCategorySmallAircraft); }
if (mode.testFlag(ByVtol)) { modes << modeFlagToString(ByVtol); }
if (mode.testFlag(ScoreIgnoreZeros)) { modes << modeFlagToString(ScoreIgnoreZeros); }
if (mode.testFlag(ScorePreferColorLiveries)) { modes << modeFlagToString(ScorePreferColorLiveries); }
@@ -283,9 +282,10 @@ namespace BlackMisc
}
CAircraftMatcherSetup::MatchingMode CAircraftMatcherSetup::matchingMode(
bool revModelString, bool revLiveryIds,
bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, bool byFamily, bool byLivery, bool byCombinedType,
bool byForceMilitary, bool byForceCivilian, bool byVtol,
bool byGliderCategory, bool byMilitaryCategory,
bool byGliderCategory, bool byMilitaryCategory, bool bySmallAircraftCategory,
bool scoreIgnoreZeros, bool scorePreferColorLiveries,
bool excludeNoDbData, bool excludeNoExcluded,
bool modelVerification, bool modelVerificationWarnError,
@@ -304,6 +304,7 @@ namespace BlackMisc
if (byVtol) { mode |= ByVtol; }
if (byGliderCategory) { mode |= ByCategoryGlider; }
if (byMilitaryCategory) { mode |= ByCategoryMilitary; }
if (bySmallAircraftCategory) { mode |= ByCategorySmallAircraft; }
if (scoreIgnoreZeros) { mode |= ScoreIgnoreZeros; }
if (scorePreferColorLiveries) { mode |= ScorePreferColorLiveries; }
if (excludeNoDbData) { mode |= ExcludeNoDbData; }
@@ -312,6 +313,8 @@ namespace BlackMisc
if (modelVerification) { mode |= ModelVerificationAtStartup; }
if (modelVerificationWarnError) { mode |= ModelVerificationOnlyWarnError; }
if (modelFailover) { mode |= ModelFailoverIfNoModelCanBeAdded; }
if (revModelString) { mode |= ReverseLookupModelString; }
if (revLiveryIds) { mode |= ReverseLookupSwiftLiveryIds; }
return mode;
}
} // namespace

View File

@@ -47,12 +47,6 @@ namespace BlackMisc
ByIcaoOrderAirlineFirst = (1 << 10) | ByIcaoData,
ByAirlineGroupSameAsAirline = (1 << 11) | 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 ---
ExcludeNoDbData = 1 << 13,
@@ -62,12 +56,22 @@ namespace BlackMisc
// --- model set ---
ModelSetRemoveFailedModel = 1 << 15,
ModelVerificationAtStartup = 1 << 16,
ModelVerificationOnlyWarnError = 1 << 18, // later added, hence 18
ModelFailoverIfNoModelCanBeAdded = 1 << 17,
ModelVerificationOnlyWarnError = 1 << 18, // later added, hence 18
// --- categories ---
ByCategoryGlider = 1 << 20,
ByCategoryMilitary = 1 << 21,
ByCategorySmallAircraft = 1 << 22,
// --- reverse lookup ---
ReverseLookupModelString = 1 << 19,
ReverseLookupDefault = ReverseLookupModelString,
ReverseLookupModelString = 1 << 25,
ReverseLookupSwiftLiveryIds = 1 << 26,
ReverseLookupDefault = ReverseLookupModelString | ReverseLookupSwiftLiveryIds,
// --- score based matching ---
ScoreIgnoreZeros = 1 << 28, //!< zero scores are ignored
ScorePreferColorLiveries = 1 << 29, //!< prefer color liveries
// --- others ---
ModeNone = 0,
@@ -185,9 +189,6 @@ namespace BlackMisc
//! Set the strategy
void setPickStrategy(PickSimilarStrategy strategy) { m_strategy = static_cast<int>(strategy); }
//! Set reverse lookup flags
void setReverseLookup(bool useModelLookup);
//! Airline group behaviour
void setAirlineGroupBehaviour(bool ifNoAirline, bool sameAsAirline);
@@ -222,10 +223,11 @@ namespace BlackMisc
static const QString &strategyToString(PickSimilarStrategy strategy);
//! 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 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 modelVerification, bool modelVerificationWarnError, bool modelSetRemoveFailedModel, bool modelFailover);