Ref T632, make users a callsign object list

This commit is contained in:
Klaus Basan
2019-04-24 13:32:10 +02:00
parent 3294a78fc4
commit 7fee1cfcff
5 changed files with 15 additions and 5 deletions

View File

@@ -14,6 +14,7 @@
#include "blackmisc/aviation/aircraftsituationlist.h" #include "blackmisc/aviation/aircraftsituationlist.h"
#include "blackmisc/aviation/flightplanlist.h" #include "blackmisc/aviation/flightplanlist.h"
#include "blackmisc/network/clientlist.h" #include "blackmisc/network/clientlist.h"
#include "blackmisc/network/userlist.h"
#include "blackmisc/predicates.h" #include "blackmisc/predicates.h"
#include <QtGlobal> #include <QtGlobal>
@@ -303,6 +304,7 @@ namespace BlackMisc
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign, BlackMisc::Simulation::CInterpolationSetupList>; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign, BlackMisc::Simulation::CInterpolationSetupList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CUser, BlackMisc::Network::CUserList>;
//! \endcond //! \endcond
} // namespace } // namespace

View File

@@ -43,6 +43,8 @@ namespace BlackMisc
{ {
class CClient; class CClient;
class CClientList; class CClientList;
class CUser;
class CUserList;
} }
namespace Aviation namespace Aviation
@@ -142,6 +144,7 @@ namespace BlackMisc
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::Simulation::CSimulatedAircraftList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign, BlackMisc::Simulation::CInterpolationSetupList>; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign, BlackMisc::Simulation::CInterpolationSetupList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CUser, BlackMisc::Network::CUserList>;
//! \endcond //! \endcond
} //namespace } //namespace

View File

@@ -63,10 +63,12 @@ namespace BlackMisc
return this->getId(); return this->getId();
} }
void CUser::setCallsign(const CCallsign &callsign) bool CUser::setCallsign(const CCallsign &callsign)
{ {
if (m_callsign == callsign) { return false; }
m_callsign = callsign; m_callsign = callsign;
this->deriveHomeBaseFromCallsign(); this->deriveHomeBaseFromCallsign();
return true;
} }
QString CUser::convertToQString(bool i18n) const QString CUser::convertToQString(bool i18n) const

View File

@@ -146,7 +146,7 @@ namespace BlackMisc
const Aviation::CCallsign &getCallsign() const { return m_callsign; } const Aviation::CCallsign &getCallsign() const { return m_callsign; }
//! Set associated callsign //! Set associated callsign
void setCallsign(const Aviation::CCallsign &callsign); bool setCallsign(const Aviation::CCallsign &callsign);
//! \copydoc BlackMisc::Mixin::Icon::toIcon() //! \copydoc BlackMisc::Mixin::Icon::toIcon()
CIcon toIcon() const { return this->getCallsign().toIcon(); } CIcon toIcon() const { return this->getCallsign().toIcon(); }

View File

@@ -11,11 +11,13 @@
#ifndef BLACKMISC_NETWORK_USERLIST_H #ifndef BLACKMISC_NETWORK_USERLIST_H
#define BLACKMISC_NETWORK_USERLIST_H #define BLACKMISC_NETWORK_USERLIST_H
#include "blackmisc/blackmiscexport.h" #include "blackmisc/aviation/callsignobjectlist.h"
#include "blackmisc/collection.h"
#include "blackmisc/network/user.h" #include "blackmisc/network/user.h"
#include "blackmisc/collection.h"
#include "blackmisc/sequence.h" #include "blackmisc/sequence.h"
#include "blackmisc/variant.h" #include "blackmisc/variant.h"
#include "blackmisc/blackmiscexport.h"
#include <QMetaType> #include <QMetaType>
namespace BlackMisc namespace BlackMisc
@@ -25,7 +27,8 @@ namespace BlackMisc
//! Value object encapsulating a list of voice rooms. //! Value object encapsulating a list of voice rooms.
class BLACKMISC_EXPORT CUserList : class BLACKMISC_EXPORT CUserList :
public CSequence<CUser>, public CSequence<CUser>,
public BlackMisc::Mixin::MetaType<CUserList> public Aviation::ICallsignObjectList<CUser, CUserList>,
public Mixin::MetaType<CUserList>
{ {
public: public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CUserList) BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CUserList)