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/flightplanlist.h"
#include "blackmisc/network/clientlist.h"
#include "blackmisc/network/userlist.h"
#include "blackmisc/predicates.h"
#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::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::CUser, BlackMisc::Network::CUserList>;
//! \endcond
} // namespace

View File

@@ -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<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::Network::CClient, BlackMisc::Network::CClientList>;
extern template class BLACKMISC_EXPORT_DECLARE_TEMPLATE ICallsignObjectList<BlackMisc::Network::CUser, BlackMisc::Network::CUserList>;
//! \endcond
} //namespace

View File

@@ -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

View File

@@ -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(); }

View File

@@ -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 <QMetaType>
namespace BlackMisc
@@ -25,7 +27,8 @@ namespace BlackMisc
//! Value object encapsulating a list of voice rooms.
class BLACKMISC_EXPORT CUserList :
public CSequence<CUser>,
public BlackMisc::Mixin::MetaType<CUserList>
public Aviation::ICallsignObjectList<CUser, CUserList>,
public Mixin::MetaType<CUserList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CUserList)