diff --git a/src/blackgui/models/aircraftpartslistmodel.h b/src/blackgui/models/aircraftpartslistmodel.h index e92b56679..9fad49331 100644 --- a/src/blackgui/models/aircraftpartslistmodel.h +++ b/src/blackgui/models/aircraftpartslistmodel.h @@ -25,7 +25,7 @@ namespace BlackGui { namespace Models { - //! Client list model + //! Aircraft parts list model class BLACKGUI_EXPORT CAircraftPartsListModel : public CListModelTimestampWithOffsetObjects { public: @@ -37,4 +37,5 @@ namespace BlackGui }; } // namespace } // namespace + #endif // guard diff --git a/src/blackgui/models/aircraftsituationchangelistmodel..cpp b/src/blackgui/models/aircraftsituationchangelistmodel..cpp new file mode 100644 index 000000000..9fefb1a53 --- /dev/null +++ b/src/blackgui/models/aircraftsituationchangelistmodel..cpp @@ -0,0 +1,47 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "blackgui/models/aircraftsituationchangelistmodel.h" +#include "blackgui/models/columnformatters.h" +#include "blackgui/models/columns.h" +#include "blackmisc/aviation/aircraftsituationchangelist.h" +#include "blackmisc/propertyindex.h" + +#include +#include + +using namespace BlackMisc; +using namespace BlackMisc::Aviation; + +namespace BlackGui +{ + namespace Models + { + CAircraftSituationChangeListModel::CAircraftSituationChangeListModel(QObject *parent) : + CListModelTimestampWithOffsetObjects("ViewAircraftPartsList", parent) + { + this->addTimestampOffsetColumns(); + + m_columns.addColumn(CColumn::standardString("situations", CAircraftSituationChange::IndexSituationsCount)); + m_columns.addColumn(CColumn("null", CAircraftSituationChange::IndexIsNull, new CBoolIconFormatter("null", "not null"))); + m_columns.addColumn(CColumn("gnd.", CAircraftSituationChange::IndexConstOnGround, new CBoolIconFormatter("const on gnd.", "not const on gnd."))); + m_columns.addColumn(CColumn("not gnd.", CAircraftSituationChange::IndexConstNotOnGround, new CBoolIconFormatter("const not on gnd.", "not const not on gnd."))); + m_columns.addColumn(CColumn("asc.", CAircraftSituationChange::IndexConstAscending, new CBoolIconFormatter("const ascending", "not const ascending"))); + m_columns.addColumn(CColumn("desc", CAircraftSituationChange::IndexConstDescending, new CBoolIconFormatter("const decending", "not const decending"))); + m_columns.addColumn(CColumn("push", CAircraftSituationChange::IndexContainsPushBack, new CBoolIconFormatter("contains pushback", "no pushback"))); + m_columns.addColumn(CColumn("to.", CAircraftSituationChange::IndexJustTakingOff, new CBoolIconFormatter("just takeoff", "no takeoff"))); + m_columns.addColumn(CColumn("td.", CAircraftSituationChange::IndexJustTouchingDown, new CBoolIconFormatter("just touching down", "no touchdown"))); + + m_columns.addColumn(CColumn("alt.mean", CAircraftSituationChange::IndexAltitudeMean, new CAltitudeFormatter())); + m_columns.addColumn(CColumn("alt.dev.", CAircraftSituationChange::IndexAltitudeStdDev, new CAltitudeFormatter())); + m_columns.addColumn(CColumn("elv.mean", CAircraftSituationChange::IndexElevationMean, new CAltitudeFormatter())); + m_columns.addColumn(CColumn("elv.dev.", CAircraftSituationChange::IndexElevationStdDev, new CAltitudeFormatter())); + } + } // namespace +} // namespace diff --git a/src/blackgui/models/aircraftsituationchangelistmodel.h b/src/blackgui/models/aircraftsituationchangelistmodel.h new file mode 100644 index 000000000..3a6429e1d --- /dev/null +++ b/src/blackgui/models/aircraftsituationchangelistmodel.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKGUI_MODELS_AIRCRAFTSITUATIONCHANGELISTMODEL_H +#define BLACKGUI_MODELS_AIRCRAFTSITUATIONCHANGELISTMODEL_H + +#include "blackgui/blackguiexport.h" +#include "blackgui/models/listmodeltimestampobjects.h" +#include "blackmisc/aviation/aircraftsituationchangelist.h" + +#include + +class QModelIndex; +class QObject; + +namespace BlackGui +{ + namespace Models + { + //! Aircraft situation changes list model + class BLACKGUI_EXPORT CAircraftSituationChangeListModel : public CListModelTimestampWithOffsetObjects + { + public: + //! Constructor + explicit CAircraftSituationChangeListModel(QObject *parent = nullptr); + + //! Destructor + virtual ~CAircraftSituationChangeListModel() {} + }; + } // namespace +} // namespace + +#endif // guard diff --git a/src/blackgui/models/allmodelcontainers.h b/src/blackgui/models/allmodelcontainers.h index 52db51f3b..f56c16377 100644 --- a/src/blackgui/models/allmodelcontainers.h +++ b/src/blackgui/models/allmodelcontainers.h @@ -21,6 +21,7 @@ #include "blackmisc/aviation/atcstationlist.h" #include "blackmisc/aviation/aircraftpartslist.h" #include "blackmisc/aviation/aircraftsituationlist.h" +#include "blackmisc/aviation/aircraftsituationchangelist.h" #include "blackmisc/aviation/liverylist.h" #include "blackmisc/network/clientlist.h" #include "blackmisc/network/serverlist.h" diff --git a/src/blackgui/models/allmodels.h b/src/blackgui/models/allmodels.h index b8a3e8e04..e18182c3c 100644 --- a/src/blackgui/models/allmodels.h +++ b/src/blackgui/models/allmodels.h @@ -15,6 +15,7 @@ #include "blackgui/models/aircraftmodellistmodel.h" #include "blackgui/models/aircraftpartslistmodel.h" #include "blackgui/models/aircraftsituationlistmodel.h" +#include "blackgui/models/aircraftsituationchangelistmodel.h" #include "blackgui/models/airlineicaolistmodel.h" #include "blackgui/models/airportlistmodel.h" #include "blackgui/models/applicationinfolistmodel.h" diff --git a/src/blackgui/models/listmodelbase.cpp b/src/blackgui/models/listmodelbase.cpp index 9a8e2f1d1..801db6252 100644 --- a/src/blackgui/models/listmodelbase.cpp +++ b/src/blackgui/models/listmodelbase.cpp @@ -770,6 +770,7 @@ namespace BlackGui template class CListModelBase; template class CListModelBase; template class CListModelBase; + template class CListModelBase; template class CListModelBase; template class CListModelBase; template class CListModelBase; diff --git a/src/blackgui/models/listmodeltimestampobjects.cpp b/src/blackgui/models/listmodeltimestampobjects.cpp index 6cf138e00..f212a467a 100644 --- a/src/blackgui/models/listmodeltimestampobjects.cpp +++ b/src/blackgui/models/listmodeltimestampobjects.cpp @@ -35,6 +35,7 @@ namespace BlackGui template class CListModelTimestampObjects; template class CListModelTimestampObjects; template class CListModelTimestampObjects; + template class CListModelTimestampObjects; template CListModelTimestampWithOffsetObjects::CListModelTimestampWithOffsetObjects(const QString &translationContext, QObject *parent) : @@ -59,5 +60,6 @@ namespace BlackGui template class CListModelTimestampWithOffsetObjects; template class CListModelTimestampWithOffsetObjects; + template class CListModelTimestampWithOffsetObjects; } // namespace } // namespace diff --git a/src/blackgui/views/aircraftsituationchangeview.cpp b/src/blackgui/views/aircraftsituationchangeview.cpp new file mode 100644 index 000000000..611918d72 --- /dev/null +++ b/src/blackgui/views/aircraftsituationchangeview.cpp @@ -0,0 +1,25 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "blackgui/views/aircraftsituationchangeview.h" + +using namespace BlackGui::Models; + +namespace BlackGui +{ + namespace Views + { + CAircraftSituationChangeView::CAircraftSituationChangeView(QWidget *parent) : + CViewWithTimestampWithOffsetObjects(parent) + { + this->standardInit(new CAircraftSituationChangeListModel(this)); + this->setMenu(MenuDefault); + } + } // ns +} // ns diff --git a/src/blackgui/views/aircraftsituationchangeview.h b/src/blackgui/views/aircraftsituationchangeview.h new file mode 100644 index 000000000..2fb6aa562 --- /dev/null +++ b/src/blackgui/views/aircraftsituationchangeview.h @@ -0,0 +1,36 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKGUI_VIEWS_AIRCRAFTSITUATIONCHANGEVIEW_H +#define BLACKGUI_VIEWS_AIRCRAFTSITUATIONCHANGEVIEW_H + +#include "blackgui/views/viewtimestampobjects.h" +#include "blackgui/models/aircraftsituationchangelistmodel.h" +#include "blackgui/blackguiexport.h" +#include "blackmisc/aviation/aircraftsituationchangelist.h" + +class QWidget; + +namespace BlackGui +{ + namespace Views + { + //! Aircraft situation change view + class BLACKGUI_EXPORT CAircraftSituationChangeView : public CViewWithTimestampWithOffsetObjects + { + public: + //! Constructor + explicit CAircraftSituationChangeView(QWidget *parent = nullptr); + }; + } // ns +} // ns + +#endif // guard diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp index 8a1942d84..5d15ac081 100644 --- a/src/blackgui/views/viewbase.cpp +++ b/src/blackgui/views/viewbase.cpp @@ -1708,6 +1708,7 @@ namespace BlackGui template class CViewBase; template class CViewBase; template class CViewBase; + template class CViewBase; template class CViewBase; template class CViewBase; template class CViewBase; diff --git a/src/blackgui/views/viewtimestampobjects.cpp b/src/blackgui/views/viewtimestampobjects.cpp index f5331339f..8a3609d08 100644 --- a/src/blackgui/views/viewtimestampobjects.cpp +++ b/src/blackgui/views/viewtimestampobjects.cpp @@ -10,6 +10,7 @@ #include "blackgui/views/viewtimestampobjects.h" #include "blackgui/models/aircraftpartslistmodel.h" #include "blackgui/models/aircraftsituationlistmodel.h" +#include "blackgui/models/aircraftsituationchangelistmodel.h" #include using namespace BlackMisc; @@ -36,6 +37,7 @@ namespace BlackGui template class CViewWithTimestampWithOffsetObjects; template class CViewWithTimestampWithOffsetObjects; + template class CViewWithTimestampWithOffsetObjects; } // namespace } // namespace diff --git a/src/blackmisc/aviation/aircraftsituationchange.cpp b/src/blackmisc/aviation/aircraftsituationchange.cpp index 5db15d19d..dc35934bb 100644 --- a/src/blackmisc/aviation/aircraftsituationchange.cpp +++ b/src/blackmisc/aviation/aircraftsituationchange.cpp @@ -14,6 +14,7 @@ #include "blackmisc/pq/angle.h" #include "blackmisc/pq/units.h" #include "blackmisc/math/mathutils.h" +#include "blackmisc/comparefunctions.h" #include "blackmisc/propertyindex.h" #include "blackmisc/variant.h" #include "blackmisc/verify.h" @@ -113,22 +114,27 @@ namespace BlackMisc CVariant CAircraftSituationChange::propertyByIndex(const CPropertyIndex &index) const { - if (index.isMyself()) { return CVariant::from(*this); } + if (index.isMyself()) { return CVariant::fromValue(*this); } if (ITimestampWithOffsetBased::canHandleIndex(index)) { return ITimestampWithOffsetBased::propertyByIndex(index); } const ColumnIndex i = index.frontCasted(); switch (i) { case IndexCallsign: return m_correspondingCallsign.propertyByIndex(index.copyFrontRemoved()); - case IndexConstAscending: return CVariant::from(m_constAscending); - case IndexConstDescending: return CVariant::from(m_constDescending); - case IndexConstNotOnGround: return CVariant::from(m_constNotOnGround); - case IndexConstOnGround: return CVariant::from(m_constOnGround); - case IndexIsNull: return CVariant::from(this->isNull()); - case IndexJustTakingOff: return CVariant::from(m_justTakeoff); - case IndexJustTouchingDown: return CVariant::from(m_justTouchdown); - case IndexRotatingUp: return CVariant::from(m_rotateUp); - case IndexContainsPushBack: return CVariant::from(m_containsPushBack); + case IndexSituationsCount: return CVariant::fromValue(m_situationsCount); + case IndexConstAscending: return CVariant::fromValue(m_constAscending); + case IndexConstDescending: return CVariant::fromValue(m_constDescending); + case IndexConstNotOnGround: return CVariant::fromValue(m_constNotOnGround); + case IndexConstOnGround: return CVariant::fromValue(m_constOnGround); + case IndexIsNull: return CVariant::fromValue(this->isNull()); + case IndexJustTakingOff: return CVariant::fromValue(m_justTakeoff); + case IndexJustTouchingDown: return CVariant::fromValue(m_justTouchdown); + case IndexRotatingUp: return CVariant::fromValue(m_rotateUp); + case IndexContainsPushBack: return CVariant::fromValue(m_containsPushBack); + case IndexAltitudeMean: return CVariant::fromValue(m_altMean); + case IndexAltitudeStdDev: return CVariant::fromValue(m_altStdDev); + case IndexElevationMean: return CVariant::fromValue(m_elvMean); + case IndexElevationStdDev: return CVariant::fromValue(m_elvStdDev); default: return CValueObject::propertyByIndex(index); } } @@ -142,6 +148,7 @@ namespace BlackMisc switch (i) { case IndexCallsign: m_correspondingCallsign.setPropertyByIndex(index.copyFrontRemoved(), variant); break; + case IndexSituationsCount: m_situationsCount = variant.toInt(); break; case IndexConstAscending: m_constAscending = variant.toBool(); break; case IndexConstDescending: m_constDescending = variant.toBool(); break; case IndexConstNotOnGround: m_constNotOnGround = variant.toBool(); break; @@ -150,11 +157,45 @@ namespace BlackMisc case IndexJustTouchingDown: m_justTouchdown = variant.toBool(); break; case IndexRotatingUp: m_rotateUp = variant.toBool(); break; case IndexContainsPushBack: m_containsPushBack = variant.toBool(); break; - case IndexIsNull: break; + case IndexIsNull: + case IndexAltitudeMean: + case IndexAltitudeStdDev: + case IndexElevationMean: + case IndexElevationStdDev: + break; // read only default: CValueObject::setPropertyByIndex(index, variant); break; } } + int CAircraftSituationChange::comparePropertyByIndex(const CPropertyIndex &index, const CAircraftSituationChange &compareValue) const + { + if (index.isMyself()) { return ITimestampWithOffsetBased::comparePropertyByIndex(CPropertyIndex(), compareValue); } + if (ITimestampWithOffsetBased::canHandleIndex(index)) { return ITimestampWithOffsetBased::comparePropertyByIndex(index, compareValue); } + + const ColumnIndex i = index.frontCasted(); + switch (i) + { + case IndexCallsign: return m_correspondingCallsign.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getCallsign()); + case IndexSituationsCount: return Compare::compare(this->getSituationsCount(), compareValue.getSituationsCount()); + case IndexConstAscending: return Compare::compare(this->isConstAscending(), compareValue.isConstAscending()); + case IndexConstDescending: return Compare::compare(this->isConstDescending(), compareValue.isConstDescending()); + case IndexConstNotOnGround: return Compare::compare(this->isConstNotOnGround(), compareValue.isConstNotOnGround()); + case IndexConstOnGround: return Compare::compare(this->isConstOnGround(), compareValue.isConstOnGround()); + case IndexJustTakingOff: return Compare::compare(this->isJustTakingOff(), compareValue.isJustTakingOff()); + case IndexJustTouchingDown: return Compare::compare(this->isJustTouchingDown(), compareValue.isJustTouchingDown()); + case IndexRotatingUp: return Compare::compare(this->isRotatingUp(), compareValue.isRotatingUp()); + case IndexContainsPushBack: return Compare::compare(this->containsPushBack(), compareValue.containsPushBack()); + case IndexIsNull: return Compare::compare(this->isNull(), compareValue.isNull()); + case IndexAltitudeMean: return m_altMean.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_altMean); + case IndexAltitudeStdDev: return m_altStdDev.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_altStdDev); + case IndexElevationMean: return m_elvMean.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_elvMean); + case IndexElevationStdDev: return m_elvStdDev.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_elvStdDev); + default: return CValueObject::comparePropertyByIndex(index, *this); + } + Q_ASSERT_X(false, Q_FUNC_INFO, "No comparison"); + return 0; + } + bool CAircraftSituationChange::calculateStdDeviations(const CAircraftSituationList &situations, const CLength &cg) { if (situations.isEmpty()) { return false; } diff --git a/src/blackmisc/aviation/aircraftsituationchange.h b/src/blackmisc/aviation/aircraftsituationchange.h index 3df028acc..42d2f9d7a 100644 --- a/src/blackmisc/aviation/aircraftsituationchange.h +++ b/src/blackmisc/aviation/aircraftsituationchange.h @@ -50,7 +50,11 @@ namespace BlackMisc IndexJustTakingOff, IndexJustTouchingDown, IndexRotatingUp, - IndexContainsPushBack + IndexContainsPushBack, + IndexAltitudeMean, + IndexAltitudeStdDev, + IndexElevationMean, + IndexElevationStdDev, }; //! Hint about the guessed scenery deviation @@ -157,6 +161,9 @@ namespace BlackMisc //! \copydoc Mixin::Index::setPropertyByIndex void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant); + //! \copydoc Mixin::Index::comparePropertyByIndex + int comparePropertyByIndex(const CPropertyIndex &index, const CAircraftSituationChange &compareValue) const; + //! Calculate the standard deviiations bool calculateStdDeviations(const CAircraftSituationList &situations, const PhysicalQuantities::CLength &cg); diff --git a/src/blackmisc/aviation/aircraftsituationchangelist.cpp b/src/blackmisc/aviation/aircraftsituationchangelist.cpp new file mode 100644 index 000000000..142e7ea09 --- /dev/null +++ b/src/blackmisc/aviation/aircraftsituationchangelist.cpp @@ -0,0 +1,28 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "blackmisc/aviation/aircraftsituationchangelist.h" + +#include + +namespace BlackMisc +{ + namespace Aviation + { + CAircraftSituationChangeList::CAircraftSituationChangeList() { } + + CAircraftSituationChangeList::CAircraftSituationChangeList(const CSequence &other) : + CSequence(other) + { } + + CAircraftSituationChangeList::CAircraftSituationChangeList(std::initializer_list il) : + CSequence(il) + { } + } // namespace +} // namespace diff --git a/src/blackmisc/aviation/aircraftsituationchangelist.h b/src/blackmisc/aviation/aircraftsituationchangelist.h new file mode 100644 index 000000000..9ad345e2a --- /dev/null +++ b/src/blackmisc/aviation/aircraftsituationchangelist.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKMISC_AVIATION_AIRCRAFTSITUATIONCHANGELIST_H +#define BLACKMISC_AVIATION_AIRCRAFTSITUATIONCHANGELIST_H + +#include "blackmisc/blackmiscexport.h" +#include "blackmisc/collection.h" +#include "blackmisc/sequence.h" +#include "blackmisc/aviation/aircraftsituationchange.h" +#include "blackmisc/timestampobjectlist.h" +#include "blackmisc/variant.h" + +#include + +namespace BlackMisc +{ + namespace Aviation + { + //! Value object encapsulating a list of aircraft parts. + class BLACKMISC_EXPORT CAircraftSituationChangeList : + public CSequence, + public ITimestampWithOffsetObjectList, + public Mixin::MetaType + { + public: + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftSituationChangeList) + + //! Default constructor. + CAircraftSituationChangeList(); + + //! Construct from a base class object. + CAircraftSituationChangeList(const CSequence &other); + + //! Construct from initializer list. + CAircraftSituationChangeList(std::initializer_list il); + }; + } //namespace +} // namespace + +Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituationChangeList) +Q_DECLARE_METATYPE(BlackMisc::CCollection) +Q_DECLARE_METATYPE(BlackMisc::CSequence) + +#endif //guard diff --git a/src/blackmisc/timestampobjectlist.cpp b/src/blackmisc/timestampobjectlist.cpp index e2c1e2005..f8d7bef39 100644 --- a/src/blackmisc/timestampobjectlist.cpp +++ b/src/blackmisc/timestampobjectlist.cpp @@ -9,6 +9,7 @@ #include "blackmisc/aviation/aircraftsituationlist.h" #include "blackmisc/aviation/aircraftpartslist.h" +#include "blackmisc/aviation/aircraftsituationchangelist.h" #include "blackmisc/aviation/liverylist.h" #include "blackmisc/aviation/aircrafticaocodelist.h" #include "blackmisc/aviation/airlineicaocodelist.h" @@ -574,8 +575,10 @@ namespace BlackMisc template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampObjectList; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampObjectList; + template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampObjectList; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampWithOffsetObjectList; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampWithOffsetObjectList; + template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ITimestampWithOffsetObjectList; //! \endcond } // namespace diff --git a/src/blackmisc/timestampobjectlist.h b/src/blackmisc/timestampobjectlist.h index eb99212e7..1c54bb1d2 100644 --- a/src/blackmisc/timestampobjectlist.h +++ b/src/blackmisc/timestampobjectlist.h @@ -213,6 +213,8 @@ namespace BlackMisc { class CAircraftSituation; class CAircraftSituationList; + class CAircraftSituationChange; + class CAircraftSituationChangeList; class CAircraftParts; class CAircraftPartsList; class CAirport; @@ -277,10 +279,12 @@ namespace BlackMisc extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampObjectList; // for the derived version both templates are required - extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampObjectList; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampObjectList; - extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampWithOffsetObjectList; + extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampObjectList; + extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampObjectList; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampWithOffsetObjectList; + extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampWithOffsetObjectList; + extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ITimestampWithOffsetObjectList; //! \endcond } //namespace