Ref T529, orderable status message list

This commit is contained in:
Klaus Basan
2019-02-04 17:56:42 +01:00
committed by Mat Sutcliffe
parent 3ba88c7c2f
commit 01e9519826
3 changed files with 20 additions and 0 deletions

View File

@@ -11,6 +11,7 @@
#include "blackmisc/predicates.h"
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/simulation/distributorlist.h"
#include "blackmisc/statusmessagelist.h"
#include <algorithm>
#include <type_traits>
@@ -140,6 +141,16 @@ namespace BlackMisc
}
}
template <class OBJ, class CONTAINER>
void IOrderableList<OBJ, CONTAINER>::freezeOrderReverse()
{
int c = this->container().size() - 1;
for (OBJ &obj : container())
{
obj.setOrder(c--);
}
}
template<class OBJ, class CONTAINER>
OBJ IOrderableList<OBJ, CONTAINER>::minOrderOrDefault() const
{
@@ -173,6 +184,7 @@ namespace BlackMisc
}
//! \cond PRIVATE
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE IOrderableList<BlackMisc::CStatusMessage, BlackMisc::CStatusMessageList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE IOrderableList<BlackMisc::Simulation::CAircraftModel, BlackMisc::Simulation::CAircraftModelList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE IOrderableList<BlackMisc::Simulation::CDistributor, BlackMisc::Simulation::CDistributorList>;
//! \endcond

View File

@@ -50,6 +50,9 @@ namespace BlackMisc
//! Current order of list will be new order values
void freezeOrder();
//! Current reverse order of list will be new order values
void freezeOrderReverse();
//! Object with min.order or default
OBJ minOrderOrDefault() const;
@@ -68,6 +71,9 @@ namespace BlackMisc
};
//! \cond PRIVATE
class CStatusMessage;
class CStatusMessageList;
namespace Simulation
{
class CDistributor;
@@ -76,6 +82,7 @@ namespace BlackMisc
class CAircraftModelList;
}
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE IOrderableList<BlackMisc::CStatusMessage, BlackMisc::CStatusMessageList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE IOrderableList<BlackMisc::Simulation::CAircraftModel, BlackMisc::Simulation::CAircraftModelList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE IOrderableList<BlackMisc::Simulation::CDistributor, BlackMisc::Simulation::CDistributorList>;
//! \endcond

View File

@@ -33,6 +33,7 @@ namespace BlackMisc
class BLACKMISC_EXPORT CStatusMessageList :
public CSequence<CStatusMessage>,
public ITimestampObjectList<CStatusMessage, CStatusMessageList>,
public IOrderableList<CStatusMessage, CStatusMessageList>,
public Mixin::MetaType<CStatusMessageList>
{
public: