diff --git a/src/blackmisc/aviation/callsignobjectlist.cpp b/src/blackmisc/aviation/callsignobjectlist.cpp index b965017cc..348190e32 100644 --- a/src/blackmisc/aviation/callsignobjectlist.cpp +++ b/src/blackmisc/aviation/callsignobjectlist.cpp @@ -14,6 +14,7 @@ #include "blackmisc/aviation/aircraftsituationlist.h" #include "blackmisc/aviation/flightplanlist.h" #include "blackmisc/network/clientlist.h" +#include "blackmisc/network/userlist.h" #include "blackmisc/predicates.h" #include @@ -303,6 +304,7 @@ namespace BlackMisc template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList; template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList; + template class BLACKMISC_EXPORT_DEFINE_TEMPLATE ICallsignObjectList; //! \endcond } // namespace diff --git a/src/blackmisc/aviation/callsignobjectlist.h b/src/blackmisc/aviation/callsignobjectlist.h index f0d69a875..276178911 100644 --- a/src/blackmisc/aviation/callsignobjectlist.h +++ b/src/blackmisc/aviation/callsignobjectlist.h @@ -43,6 +43,8 @@ namespace BlackMisc { class CClient; class CClientList; + class CUser; + class CUserList; } namespace Aviation @@ -142,6 +144,7 @@ namespace BlackMisc extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList; extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList; + extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList; //! \endcond } //namespace diff --git a/src/blackmisc/network/user.cpp b/src/blackmisc/network/user.cpp index aa38bf132..e0a1a5610 100644 --- a/src/blackmisc/network/user.cpp +++ b/src/blackmisc/network/user.cpp @@ -63,10 +63,12 @@ namespace BlackMisc return this->getId(); } - void CUser::setCallsign(const CCallsign &callsign) + bool CUser::setCallsign(const CCallsign &callsign) { + if (m_callsign == callsign) { return false; } m_callsign = callsign; this->deriveHomeBaseFromCallsign(); + return true; } QString CUser::convertToQString(bool i18n) const diff --git a/src/blackmisc/network/user.h b/src/blackmisc/network/user.h index 6298036ad..46bbf7423 100644 --- a/src/blackmisc/network/user.h +++ b/src/blackmisc/network/user.h @@ -146,7 +146,7 @@ namespace BlackMisc const Aviation::CCallsign &getCallsign() const { return m_callsign; } //! Set associated callsign - void setCallsign(const Aviation::CCallsign &callsign); + bool setCallsign(const Aviation::CCallsign &callsign); //! \copydoc BlackMisc::Mixin::Icon::toIcon() CIcon toIcon() const { return this->getCallsign().toIcon(); } diff --git a/src/blackmisc/network/userlist.h b/src/blackmisc/network/userlist.h index a5fef9c57..2267b3d57 100644 --- a/src/blackmisc/network/userlist.h +++ b/src/blackmisc/network/userlist.h @@ -11,11 +11,13 @@ #ifndef BLACKMISC_NETWORK_USERLIST_H #define BLACKMISC_NETWORK_USERLIST_H -#include "blackmisc/blackmiscexport.h" -#include "blackmisc/collection.h" +#include "blackmisc/aviation/callsignobjectlist.h" #include "blackmisc/network/user.h" +#include "blackmisc/collection.h" #include "blackmisc/sequence.h" #include "blackmisc/variant.h" +#include "blackmisc/blackmiscexport.h" + #include namespace BlackMisc @@ -25,7 +27,8 @@ namespace BlackMisc //! Value object encapsulating a list of voice rooms. class BLACKMISC_EXPORT CUserList : public CSequence, - public BlackMisc::Mixin::MetaType + public Aviation::ICallsignObjectList, + public Mixin::MetaType { public: BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CUserList)