Ref T776, matching flag "ForceModeFlag"

This commit is contained in:
Klaus Basan
2020-03-18 23:20:23 +01:00
committed by Mat Sutcliffe
parent fd3ad207bd
commit 6841297c6e
2 changed files with 72 additions and 9 deletions

View File

@@ -97,9 +97,10 @@ namespace BlackMisc
QString CAircraftMatcherSetup::convertToQString(bool i18n) const QString CAircraftMatcherSetup::convertToQString(bool i18n) const
{ {
Q_UNUSED(i18n); Q_UNUSED(i18n)
return u"algorithm: '" % this->getMatchingAlgorithmAsString() % return u"algorithm: '" % this->getMatchingAlgorithmAsString() %
u"' mode: '" % this->getMatchingModeAsString() % u"' mode: '" % this->getMatchingModeAsString() %
u"' force: '" % this->getForceModeAsString() %
u"' strategy: '" % this->getPickStrategyAsString() % u"' strategy: '" % this->getPickStrategyAsString() %
u"\' matching script: " % boolToOnOff(m_msReverseEnabled) % u'/' % boolToOnOff(m_msMatchingEnabled); u"\' matching script: " % boolToOnOff(m_msReverseEnabled) % u'/' % boolToOnOff(m_msMatchingEnabled);
} }
@@ -113,6 +114,7 @@ namespace BlackMisc
case IndexMatchingAlgorithm: return CVariant::fromValue(m_algorithm); case IndexMatchingAlgorithm: return CVariant::fromValue(m_algorithm);
case IndexMatchingMode: return CVariant::fromValue(m_mode); case IndexMatchingMode: return CVariant::fromValue(m_mode);
case IndexPickStrategy: return CVariant::fromValue(m_strategy); case IndexPickStrategy: return CVariant::fromValue(m_strategy);
case IndexForceMode: return CVariant::fromValue(m_force);
case IndexMsNetworkEntryFile: return CVariant::fromValue(m_msReverseLookupFile); case IndexMsNetworkEntryFile: return CVariant::fromValue(m_msReverseLookupFile);
case IndexMsMatchingStageFile: return CVariant::fromValue(m_msMatchingStageFile); case IndexMsMatchingStageFile: return CVariant::fromValue(m_msMatchingStageFile);
case IndexMsNetworkEnabled: return CVariant::fromValue(m_msReverseEnabled); case IndexMsNetworkEnabled: return CVariant::fromValue(m_msReverseEnabled);
@@ -130,6 +132,7 @@ namespace BlackMisc
{ {
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 IndexForceMode: m_force = 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;
@@ -280,6 +283,36 @@ namespace BlackMisc
return modes.join(", "); return modes.join(", ");
} }
const QString &CAircraftMatcherSetup::forceFlagToString(CAircraftMatcherSetup::ForceModeFlag forceFlag)
{
static const QString t("type");
static const QString ec("engine count");
static const QString e("engine");
static const QString n("nothing");
switch (forceFlag)
{
case ForceType: return t;
case ForceEnginecount: return ec;
case ForceEngine: return e;
case ForceNothing:
default:
break;
}
return n;
}
const QString CAircraftMatcherSetup::forceToString(ForceMode force)
{
if (force.testFlag(ForceNothing)) { return QStringLiteral("nothing"); }
QStringList forces;
if (force.testFlag(ForceType)) { forces << forceToString(ForceType); }
if (force.testFlag(ForceEnginecount)) { forces << forceToString(ForceEnginecount); }
if (force.testFlag(ForceEngine)) { forces << forceToString(ForceEngine); }
return forces.join(", ");
}
const QString &CAircraftMatcherSetup::strategyToString(CAircraftMatcherSetup::PickSimilarStrategy strategy) const QString &CAircraftMatcherSetup::strategyToString(CAircraftMatcherSetup::PickSimilarStrategy strategy)
{ {
static const QString f("first"); static const QString f("first");

View File

@@ -87,6 +87,16 @@ namespace BlackMisc
}; };
Q_DECLARE_FLAGS(MatchingMode, MatchingModeFlag) Q_DECLARE_FLAGS(MatchingMode, MatchingModeFlag)
//! Force values
enum ForceModeFlag
{
ForceNothing = 0,
ForceType = 1 << 0,
ForceEnginecount = 1 << 1,
ForceEngine = 1 << 2
};
Q_DECLARE_FLAGS(ForceMode, ForceModeFlag)
//! How to pick among similar candiates //! How to pick among similar candiates
enum PickSimilarStrategy enum PickSimilarStrategy
{ {
@@ -100,6 +110,7 @@ namespace BlackMisc
{ {
IndexMatchingAlgorithm = CPropertyIndex::GlobalIndexCAircraftMatcherSetup, IndexMatchingAlgorithm = CPropertyIndex::GlobalIndexCAircraftMatcherSetup,
IndexMatchingMode, IndexMatchingMode,
IndexForceMode,
IndexPickStrategy, IndexPickStrategy,
IndexMsNetworkEntryFile, IndexMsNetworkEntryFile,
IndexMsMatchingStageFile, IndexMsMatchingStageFile,
@@ -128,6 +139,15 @@ namespace BlackMisc
//! Matching mode //! Matching mode
MatchingMode getMatchingMode() const { return static_cast<MatchingMode>(m_mode); } MatchingMode getMatchingMode() const { return static_cast<MatchingMode>(m_mode); }
//! Force mode
ForceMode getForceMode() const { return static_cast<ForceMode>(m_force); }
//! Force mode
void setForceMode(ForceMode fm) { m_force = static_cast<int>(fm); }
//! Force mode as string
QString getForceModeAsString() const { return forceToString(this->getForceMode()); }
//! Reverse lookup @{ //! Reverse lookup @{
bool isReverseLookupModelString() const; bool isReverseLookupModelString() const;
bool isReverseLookupSwiftLiveryIds() const; bool isReverseLookupSwiftLiveryIds() const;
@@ -228,6 +248,12 @@ namespace BlackMisc
//! Enumeration as string //! Enumeration as string
static QString modeToString(MatchingMode mode); static QString modeToString(MatchingMode mode);
//! Force flag to string
static const QString &forceFlagToString(ForceModeFlag forceFlag);
//! Force to string
static const QString forceToString(ForceMode force);
//! Strategy to string //! Strategy to string
static const QString &strategyToString(PickSimilarStrategy strategy); static const QString &strategyToString(PickSimilarStrategy strategy);
@@ -244,6 +270,7 @@ namespace BlackMisc
int m_algorithm = static_cast<int>(MatchingStepwiseReducePlusScoreBased); int m_algorithm = static_cast<int>(MatchingStepwiseReducePlusScoreBased);
int m_mode = static_cast<int>(ModeDefaultReducePlusScore); int m_mode = static_cast<int>(ModeDefaultReducePlusScore);
int m_strategy = static_cast<int>(PickByOrder); int m_strategy = static_cast<int>(PickByOrder);
int m_force = static_cast<int>(ForceNothing);
QString m_msReverseLookupFile; //!< network entry matching script file QString m_msReverseLookupFile; //!< network entry matching script file
QString m_msMatchingStageFile; //!< matching stage matching script file QString m_msMatchingStageFile; //!< matching stage matching script file
bool m_msReverseEnabled = false; //!< enable network matching script bool m_msReverseEnabled = false; //!< enable network matching script
@@ -254,6 +281,7 @@ namespace BlackMisc
BLACK_METAMEMBER(algorithm), BLACK_METAMEMBER(algorithm),
BLACK_METAMEMBER(mode), BLACK_METAMEMBER(mode),
BLACK_METAMEMBER(strategy), BLACK_METAMEMBER(strategy),
BLACK_METAMEMBER(force),
BLACK_METAMEMBER(msReverseLookupFile), BLACK_METAMEMBER(msReverseLookupFile),
BLACK_METAMEMBER(msMatchingStageFile), BLACK_METAMEMBER(msMatchingStageFile),
BLACK_METAMEMBER(msReverseEnabled), BLACK_METAMEMBER(msReverseEnabled),
@@ -267,6 +295,8 @@ Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingAlgorithm) Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingAlgorithm)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingMode) Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingMode)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingModeFlag) Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingModeFlag)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::ForceMode)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::ForceModeFlag)
Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::PickSimilarStrategy) Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftMatcherSetup::PickSimilarStrategy)
Q_DECLARE_OPERATORS_FOR_FLAGS(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingMode) Q_DECLARE_OPERATORS_FOR_FLAGS(BlackMisc::Simulation::CAircraftMatcherSetup::MatchingMode)