refs #661, allow to sort by distributor order in builder

* some style changes
* pass distributors to builder
* distributor model mode
* flags
This commit is contained in:
Klaus Basan
2016-05-26 20:13:13 +02:00
parent c13b9ded55
commit 8ad640704c
9 changed files with 33 additions and 19 deletions

View File

@@ -26,15 +26,15 @@ namespace BlackCore
// void
}
CAircraftModelList CModelSetBuilder::buildModelSet(const CSimulatorInfo &simulator, const CAircraftModelList &models, const CAircraftModelList &currentSet, Builder oprions, const CDistributorList &onlyByDistributors) const
CAircraftModelList CModelSetBuilder::buildModelSet(const CSimulatorInfo &simulator, const CAircraftModelList &models, const CAircraftModelList &currentSet, Builder oprions, const CDistributorList &distributors) const
{
if (models.isEmpty()) { return CAircraftModelList(); }
CAircraftModelList modelSet;
// I avoid and empty distributor set wipes out everything
if (oprions.testFlag(FilterDistributos) && !onlyByDistributors.isEmpty())
if (oprions.testFlag(FilterDistributos) && !distributors.isEmpty())
{
modelSet = models.findByDistributors(onlyByDistributors);
modelSet = models.findByDistributors(distributors);
}
else
{
@@ -68,6 +68,12 @@ namespace BlackCore
}
modelSet.resetOrder();
if (oprions.testFlag(SortByDistributors))
{
modelSet.updateDistributorOrder(distributors);
modelSet.sortBy(&CAircraftModel::getDistributorOrder);
}
return modelSet;
}
} // ns

View File

@@ -38,7 +38,8 @@ namespace BlackCore
FilterDistributos = 1 << 0,
OnlyDbData = 1 << 1,
OnlyDbIcaoCodes = 1 << 2,
Incremental = 1 << 3
Incremental = 1 << 3,
SortByDistributors = 1 << 4
};
Q_DECLARE_FLAGS(Builder, BuilderFlag)