diff --git a/src/blackgui/components/settingsmatchingcomponent.ui b/src/blackgui/components/settingsmatchingcomponent.ui
index d60192165..a8a177c6f 100644
--- a/src/blackgui/components/settingsmatchingcomponent.ui
+++ b/src/blackgui/components/settingsmatchingcomponent.ui
@@ -32,14 +32,6 @@
true
-
-
- 0
- 0
- 296
- 450
-
-
0
@@ -58,7 +50,7 @@
0
- 450
+ 550
diff --git a/src/blackgui/editors/matchingform.cpp b/src/blackgui/editors/matchingform.cpp
index c5a48941d..4d9d68c5b 100644
--- a/src/blackgui/editors/matchingform.cpp
+++ b/src/blackgui/editors/matchingform.cpp
@@ -27,7 +27,8 @@ namespace BlackGui
connect(ui->rb_Reduction, &QRadioButton::released, this, &CMatchingForm::onAlgorithmChanged, Qt::QueuedConnection);
connect(ui->rb_ScoreAndReduction, &QRadioButton::released, this, &CMatchingForm::onAlgorithmChanged, Qt::QueuedConnection);
connect(ui->rb_ScoreOnly, &QRadioButton::released, this, &CMatchingForm::onAlgorithmChanged, Qt::QueuedConnection);
- connect(ui->pb_Reset, &QPushButton::released, this, &CMatchingForm::clear, Qt::QueuedConnection);
+ connect(ui->pb_ResetAlgorithm, &QPushButton::released, this, &CMatchingForm::resetByAlgorithm, Qt::QueuedConnection);
+ connect(ui->pb_ResetAll, &QPushButton::released, this, &CMatchingForm::resetAll, Qt::QueuedConnection);
}
CMatchingForm::~CMatchingForm()
@@ -47,6 +48,8 @@ namespace BlackGui
CGuiUtility::checkBoxReadOnly(ui->cb_ModelSetRemoveFailed, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_ModelFailedFailover, readonly);
CGuiUtility::checkBoxReadOnly(ui->cb_ModelSetVerification, readonly);
+ CGuiUtility::checkBoxReadOnly(ui->cb_CategoryGlider, readonly);
+ CGuiUtility::checkBoxReadOnly(ui->cb_CategoryMilitaryAircraft, readonly);
const bool enabled = !readonly;
ui->rb_Reduction->setEnabled(enabled);
@@ -76,6 +79,8 @@ namespace BlackGui
ui->cb_ByFamily->setChecked(mode.testFlag(CAircraftMatcherSetup::ByFamily));
ui->cb_ByForceMilitary->setChecked(mode.testFlag(CAircraftMatcherSetup::ByForceMilitary));
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_ByVtol->setChecked(mode.testFlag(CAircraftMatcherSetup::ByVtol));
ui->cb_ScoreIgnoreZeros->setChecked(mode.testFlag(CAircraftMatcherSetup::ScoreIgnoreZeros));
ui->cb_ScorePreferColorLiveries->setChecked(mode.testFlag(CAircraftMatcherSetup::ScorePreferColorLiveries));
@@ -97,7 +102,18 @@ namespace BlackGui
void CMatchingForm::clear()
{
- const CAircraftMatcherSetup s(algorithm());
+ this->resetAll();
+ }
+
+ void CMatchingForm::resetByAlgorithm()
+ {
+ const CAircraftMatcherSetup s(this->algorithm());
+ this->setValue(s);
+ }
+
+ void CMatchingForm::resetAll()
+ {
+ const CAircraftMatcherSetup s;
this->setValue(s);
}
@@ -118,6 +134,8 @@ namespace BlackGui
ui->cb_ByForceMilitary->isChecked(),
ui->cb_ByForceCivilian->isChecked(),
ui->cb_ByVtol->isChecked(),
+ ui->cb_CategoryGlider->isChecked(),
+ ui->cb_CategoryMilitaryAircraft->isChecked(),
ui->cb_ScoreIgnoreZeros->isChecked(), ui->cb_ScorePreferColorLiveries->isChecked(),
ui->cb_ExclNoDbData->isChecked(), ui->cb_ExclNoExcludedModels->isChecked(),
ui->cb_ModelSetVerification->isChecked(), ui->cb_ModelSetRemoveFailed->isChecked(),
@@ -172,5 +190,6 @@ namespace BlackGui
const CAircraftMatcherSetup setup = this->value();
this->setValue(setup);
}
+
} // ns
} // ns
diff --git a/src/blackgui/editors/matchingform.h b/src/blackgui/editors/matchingform.h
index 0ad0f763a..cb987323a 100644
--- a/src/blackgui/editors/matchingform.h
+++ b/src/blackgui/editors/matchingform.h
@@ -66,6 +66,11 @@ namespace BlackGui
//! Algorithm has been toggled
void onAlgorithmChanged();
+ //! Reset @{
+ void resetByAlgorithm();
+ void resetAll();
+ //! }
+
QScopedPointer ui;
};
} // ns
diff --git a/src/blackgui/editors/matchingform.ui b/src/blackgui/editors/matchingform.ui
index 018e8667f..3214d11b7 100644
--- a/src/blackgui/editors/matchingform.ui
+++ b/src/blackgui/editors/matchingform.ui
@@ -2,14 +2,6 @@
CMatchingForm
-
-
- 0
- 0
- 293
- 465
-
-
Matching form
@@ -26,6 +18,13 @@
5
+ -
+
+
+ reset (all)
+
+
+
-
@@ -54,9 +53,9 @@
-
-
+
- reset
+ reset (by algorithm)
@@ -187,6 +186,29 @@
+ -
+
+
+ Matching by categories
+
+
+
-
+
+
+ Glider
+
+
+
+ -
+
+
+ military aircraft
+
+
+
+
+
+
-
@@ -278,7 +300,7 @@
rb_Reduction
rb_ScoreOnly
rb_ScoreAndReduction
- pb_Reset
+ pb_ResetAlgorithm
rb_PickFirst
rb_PickRandom
rb_PickByOrder
@@ -291,6 +313,8 @@
cb_ByVtol
cb_ByForceMilitary
cb_ByForceCivilian
+ cb_CategoryGlider
+ cb_CategoryMilitaryAircraft
cb_ModelSetVerification
cb_ModelSetRemoveFailed
cb_ModelFailedFailover
diff --git a/src/blackmisc/simulation/aircraftmatchersetup.cpp b/src/blackmisc/simulation/aircraftmatchersetup.cpp
index 2869fa547..d723c4f8d 100644
--- a/src/blackmisc/simulation/aircraftmatchersetup.cpp
+++ b/src/blackmisc/simulation/aircraftmatchersetup.cpp
@@ -15,7 +15,7 @@ namespace BlackMisc
{
CAircraftMatcherSetup::CAircraftMatcherSetup()
{
- this->reset(MatchingStepwiseReducePlusScoreBased);
+ this->reset();
}
CAircraftMatcherSetup::CAircraftMatcherSetup(CAircraftMatcherSetup::MatchingAlgorithm algorithm)
@@ -88,6 +88,11 @@ namespace BlackMisc
CValueObject::setPropertyByIndex(index, variant);
}
+ void CAircraftMatcherSetup::reset()
+ {
+ this->reset(MatchingStepwiseReducePlusScoreBased);
+ }
+
void CAircraftMatcherSetup::reset(CAircraftMatcherSetup::MatchingAlgorithm algorithm)
{
m_algorithm = static_cast(algorithm);
@@ -101,6 +106,8 @@ namespace BlackMisc
mode = ModeDefaultReducePlusScore;
break;
}
+ mode |= ModeDefaultSet; // add set default
+
this->setMatchingMode(mode);
this->setPickStrategy(PickByOrder);
}
@@ -139,6 +146,8 @@ namespace BlackMisc
static const QString removeFromModelSet("rem.from model set");
static const QString verification("Verify models at startup");
static const QString modelFailedAdded("Replace models failed to be added");
+ static const QString categoryGlider("glider categories");
+ static const QString categoryMilitary("military categories");
switch (modeFlag)
{
@@ -152,6 +161,8 @@ namespace BlackMisc
case ByForceCivilian: return forceCiv;
case ByForceMilitary: return forceMil;
case ByVtol: return vtol;
+ case ByCategoryGlider: return categoryGlider;
+ case ByCategoryMilitary: return categoryMilitary;
case ScoreIgnoreZeros: return noZeros;
case ScorePreferColorLiveries: return preferColorLiveries;
case ExcludeNoDbData: return exNoDb;
@@ -178,6 +189,8 @@ namespace BlackMisc
if (mode.testFlag(ByCombinedType)) { modes << modeFlagToString(ByCombinedType); }
if (mode.testFlag(ByForceCivilian)) { modes << modeFlagToString(ByForceCivilian); }
if (mode.testFlag(ByForceMilitary)) { modes << modeFlagToString(ByForceMilitary); }
+ if (mode.testFlag(ByCategoryGlider)) { modes << modeFlagToString(ByCategoryGlider); }
+ if (mode.testFlag(ByCategoryMilitary)) { modes << modeFlagToString(ByCategoryMilitary); }
if (mode.testFlag(ByVtol)) { modes << modeFlagToString(ByVtol); }
if (mode.testFlag(ScoreIgnoreZeros)) { modes << modeFlagToString(ScoreIgnoreZeros); }
if (mode.testFlag(ScorePreferColorLiveries)) { modes << modeFlagToString(ScorePreferColorLiveries); }
@@ -206,12 +219,13 @@ namespace BlackMisc
return unknown;
}
- CAircraftMatcherSetup::MatchingMode CAircraftMatcherSetup::matchingMode(bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, bool byFamily, bool byLivery, bool byCombinedType,
- bool byForceMilitary, bool byForceCivilian,
- bool byVtol,
- bool scoreIgnoreZeros, bool scorePreferColorLiveries,
- bool excludeNoDbData, bool excludeNoExcluded,
- bool modelVerification, bool modelSetRemoveFailedModel, bool modelFailover)
+ CAircraftMatcherSetup::MatchingMode CAircraftMatcherSetup::matchingMode(
+ bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st, bool byFamily, bool byLivery, bool byCombinedType,
+ bool byForceMilitary, bool byForceCivilian, bool byVtol,
+ bool byGliderCategory, bool byMilitaryCategory,
+ bool scoreIgnoreZeros, bool scorePreferColorLiveries,
+ bool excludeNoDbData, bool excludeNoExcluded,
+ bool modelVerification, bool modelSetRemoveFailedModel, bool modelFailover)
{
if (modelFailover) { modelSetRemoveFailedModel = true; } // otherwise this does not make sense
@@ -224,6 +238,8 @@ namespace BlackMisc
if (byForceMilitary) { mode |= ByForceMilitary; }
if (byForceCivilian) { mode |= ByForceCivilian; }
if (byVtol) { mode |= ByVtol; }
+ if (byGliderCategory) { mode |= ByCategoryGlider; }
+ if (byMilitaryCategory) { mode |= ByCategoryMilitary; }
if (scoreIgnoreZeros) { mode |= ScoreIgnoreZeros; }
if (scorePreferColorLiveries) { mode |= ScorePreferColorLiveries; }
if (excludeNoDbData) { mode |= ExcludeNoDbData; }
diff --git a/src/blackmisc/simulation/aircraftmatchersetup.h b/src/blackmisc/simulation/aircraftmatchersetup.h
index 2f055fd5a..691ea0ecb 100644
--- a/src/blackmisc/simulation/aircraftmatchersetup.h
+++ b/src/blackmisc/simulation/aircraftmatchersetup.h
@@ -28,14 +28,14 @@ namespace BlackMisc
{
MatchingScoreBased,
MatchingStepwiseReducePlusScoreBased,
- MatchingStepwiseReduce
+ MatchingStepwiseReduce,
};
//! Enabled matching mode flags
enum MatchingModeFlag
{
ByModelString = 1 << 0, //!< allow exact model string match
- ByIcaoData = 1 << 1,
+ ByIcaoData = 1 << 1, //!< ICAO airline and aircraft codes
ByFamily = 1 << 2,
ByLivery = 1 << 3,
ByCombinedType = 1 << 4,
@@ -46,6 +46,9 @@ namespace BlackMisc
ByVtol = 1 << 8,
ByIcaoOrderAircraftFirst = (1 << 9) | ByIcaoData,
ByIcaoOrderAirlineFirst = (1 << 10) | ByIcaoData,
+ ByCategoryGlider = 1 << 20,
+ ByCategoryMilitary = 1 << 21,
+
// --- score based matching ---
ScoreIgnoreZeros = 1 << 11, //!< zero scores are ignored
ScorePreferColorLiveries = 1 << 12, //!< prefer color liveries
@@ -57,15 +60,18 @@ namespace BlackMisc
ModelSetRemoveFailedModel = 1 << 15,
ModelVerificationAtStartup = 1 << 16,
ModelFailoverIfNoModelCanBeAdded = 1 << 17,
+
// --- others ---
ModeNone = 0,
ModeByFLags = ByMilitary | ByVtol,
+
+ // default mode for set handling
ModeDefaultSet = ModelSetRemoveFailedModel | ModelVerificationAtStartup | ModelFailoverIfNoModelCanBeAdded,
- // ModeDefaultSet = ModelSetRemoveFailedModel | ModelFailoverIfNoModelCanBeAdded,
+
+ // default depending on algorithm
ModeDefaultScore = ScoreIgnoreZeros | ScorePreferColorLiveries | ExcludeDefault,
ModeDefaultReduce = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ByLivery | ExcludeDefault,
ModeDefaultReducePlusScore = ModeByFLags | ByModelString | ByFamily | ByManufacturer | ByCombinedType | ByIcaoOrderAircraftFirst | ModeDefaultScore | ExcludeDefault,
- ModeDefault = ModeDefaultReducePlusScore | ModeDefaultSet
};
Q_DECLARE_FLAGS(MatchingMode, MatchingModeFlag)
@@ -144,6 +150,9 @@ namespace BlackMisc
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
void setPropertyByIndex(const BlackMisc::CPropertyIndex &index, const BlackMisc::CVariant &variant);
+ //! Reset
+ void reset();
+
//! Reset
void reset(MatchingAlgorithm algorithm);
@@ -163,12 +172,12 @@ namespace BlackMisc
static MatchingMode matchingMode(bool byModelString, bool byIcaoDataAircraft1st, bool byIcaoDataAirline1st,
bool byFamily, bool byLivery, bool byCombinedType,
bool byForceMilitary, bool byForceCivilian,
- bool byVtol,
+ bool byVtol, bool byGliderCategory, bool byMilitaryCategory,
bool scoreIgnoreZeros, bool scorePreferColorLiveries, bool excludeNoDbData, bool excludeNoExcluded,
bool modelVerification, bool modelSetRemoveFailedModel, bool modelFailover);
private:
- int m_algorithm = static_cast(ModeDefault);
+ int m_algorithm = static_cast(MatchingStepwiseReducePlusScoreBased);
int m_mode = static_cast(ModeDefaultReducePlusScore);
int m_strategy = static_cast(PickByOrder);