refs #678, using QString for queried string, not full model anymore

This commit is contained in:
Klaus Basan
2016-06-23 20:05:41 +02:00
parent a132972f27
commit 12d06aceef
3 changed files with 31 additions and 23 deletions

View File

@@ -36,10 +36,10 @@ namespace BlackGui
this->m_columns.addColumn(CColumn("client", CClient::IndexIcon)); this->m_columns.addColumn(CColumn("client", CClient::IndexIcon));
this->m_columns.addColumn(CColumn::standardValueObject("callsign", CClient::IndexCallsign)); this->m_columns.addColumn(CColumn::standardValueObject("callsign", CClient::IndexCallsign));
this->m_columns.addColumn(CColumn::standardString("realname", { CClient::IndexUser, CUser::IndexRealName })); this->m_columns.addColumn(CColumn::standardString("realname", { CClient::IndexUser, CUser::IndexRealName }));
this->m_columns.addColumn(CColumn("vo.", "voice capabilities", CClient::IndexVoiceCapabilitiesIcon,new CPixmapFormatter())); this->m_columns.addColumn(CColumn("vo.", "voice capabilities", CClient::IndexVoiceCapabilitiesIcon, new CPixmapFormatter()));
this->m_columns.addColumn(CColumn::standardString("capabilities", CClient::IndexCapabilitiesString)); this->m_columns.addColumn(CColumn::standardString("capabilities", CClient::IndexCapabilitiesString));
this->m_columns.addColumn(CColumn::standardString("model", {CClient::IndexModel, CAircraftModel::IndexModelString})); this->m_columns.addColumn(CColumn::standardString("model", CClient::IndexModelString));
this->m_columns.addColumn(CColumn("q.?", "queried", {CClient::IndexModel, CAircraftModel::IndexHasQueriedModelString}, this->m_columns.addColumn(CColumn("q.?", "queried", {CClient::IndexModelString, CAircraftModel::IndexHasQueriedModelString},
new CBoolIconFormatter("queried", "not queried"))); new CBoolIconFormatter("queried", "not queried")));
this->m_columns.addColumn(CColumn::standardString("server", CClient::IndexServer)); this->m_columns.addColumn(CColumn::standardString("server", CClient::IndexServer));
@@ -47,14 +47,14 @@ namespace BlackGui
(void)QT_TRANSLATE_NOOP("ViewClientList", "callsign"); (void)QT_TRANSLATE_NOOP("ViewClientList", "callsign");
(void)QT_TRANSLATE_NOOP("ViewClientList", "realname"); (void)QT_TRANSLATE_NOOP("ViewClientList", "realname");
(void)QT_TRANSLATE_NOOP("ViewClientList", "userid"); (void)QT_TRANSLATE_NOOP("ViewClientList", "userid");
(void)QT_TRANSLATE_NOOP("ViewClientList", "model"); (void)QT_TRANSLATE_NOOP("ViewClientList", "modelstring");
(void)QT_TRANSLATE_NOOP("ViewClientList", "server"); (void)QT_TRANSLATE_NOOP("ViewClientList", "server");
} }
QVariant CClientListModel::data(const QModelIndex &index, int role) const QVariant CClientListModel::data(const QModelIndex &index, int role) const
{ {
static const CPropertyIndex ms( {CClient::IndexModel, CAircraftModel::IndexModelString}); static const CPropertyIndex ms({CClient::IndexModelString, CAircraftModel::IndexModelString});
static const CPropertyIndex qf( {CClient::IndexModel, CAircraftModel::IndexHasQueriedModelString}); static const CPropertyIndex qf({CClient::IndexModelString, CAircraftModel::IndexHasQueriedModelString});
if (role != Qt::DisplayRole && role != Qt::DecorationRole) { return CListModelBase::data(index, role); } if (role != Qt::DisplayRole && role != Qt::DecorationRole) { return CListModelBase::data(index, role); }
CPropertyIndex pi = modelIndexToPropertyIndex(index); CPropertyIndex pi = modelIndexToPropertyIndex(index);
if (pi == ms && role == Qt::DisplayRole) if (pi == ms && role == Qt::DisplayRole)

View File

@@ -27,14 +27,19 @@ namespace BlackMisc
{ {
QString s = this->m_user.toQString(i18n); QString s = this->m_user.toQString(i18n);
s.append(" capabilites: ").append(this->getCapabilitiesAsString()); s.append(" capabilites: ").append(this->getCapabilitiesAsString());
s.append(" model: ").append(this->m_model.toQString(i18n)); s.append(" model: ").append(this->m_modelString);
if (!this->m_server.isEmpty()) if (!this->m_server.isEmpty()) { s.append(" server:").append(this->m_server); }
{
s.append(" server:").append(this->m_server);
}
return s; return s;
} }
CClient::CClient(const Aviation::CCallsign &callsign, const QString &modelString) :
m_user(CUser(callsign)), m_modelString(modelString.trimmed()) {}
bool CClient::isValid() const
{
return this->m_user.hasValidCallsign();
}
void CClient::setCapability(bool hasCapability, CClient::Capabilities capability) void CClient::setCapability(bool hasCapability, CClient::Capabilities capability)
{ {
this->m_capabilities.addValue(static_cast<int>(capability), hasCapability); this->m_capabilities.addValue(static_cast<int>(capability), hasCapability);
@@ -87,8 +92,8 @@ namespace BlackMisc
return this->getCallsign().propertyByIndex(index.copyFrontRemoved()); return this->getCallsign().propertyByIndex(index.copyFrontRemoved());
case IndexUser: case IndexUser:
return this->getUser().propertyByIndex(index.copyFrontRemoved()); return this->getUser().propertyByIndex(index.copyFrontRemoved());
case IndexModel: case IndexModelString:
return this->m_model.propertyByIndex(index.copyFrontRemoved()); return CVariant(this->m_modelString);
case IndexServer: case IndexServer:
return CVariant(this->m_server); return CVariant(this->m_server);
case IndexVoiceCapabilities: case IndexVoiceCapabilities:
@@ -113,8 +118,8 @@ namespace BlackMisc
case IndexCapabilities: case IndexCapabilities:
this->m_capabilities = variant.value<CPropertyIndexVariantMap>(); this->m_capabilities = variant.value<CPropertyIndexVariantMap>();
break; break;
case IndexModel: case IndexModelString:
this->m_model.setPropertyByIndex(index.copyFrontRemoved(), variant);; this->m_modelString = variant.toQString();
break; break;
case IndexServer: case IndexServer:
this->m_server = variant.toQString(); this->m_server = variant.toQString();

View File

@@ -40,7 +40,7 @@ namespace BlackMisc
{ {
IndexCapabilities = BlackMisc::CPropertyIndex::GlobalIndexCClient, IndexCapabilities = BlackMisc::CPropertyIndex::GlobalIndexCClient,
IndexCapabilitiesString, IndexCapabilitiesString,
IndexModel, IndexModelString,
IndexServer, IndexServer,
IndexUser, IndexUser,
IndexCallsign, IndexCallsign,
@@ -62,8 +62,8 @@ namespace BlackMisc
//! Default constructor. //! Default constructor.
CClient() = default; CClient() = default;
//! Construct by callsign //! Construct by callsign and optional model string
CClient(const BlackMisc::Aviation::CCallsign &callsign) : m_user(CUser(callsign)) {} CClient(const BlackMisc::Aviation::CCallsign &callsign, const QString &modelString = {});
//! Constructor. //! Constructor.
CClient(const CUser &user) : m_user(user) {} CClient(const CUser &user) : m_user(user) {}
@@ -74,6 +74,9 @@ namespace BlackMisc
//! ATC client //! ATC client
bool isAtc() const { return getCallsign().isAtcAlikeCallsign(); } bool isAtc() const { return getCallsign().isAtcAlikeCallsign(); }
//! Is valid
bool isValid() const;
//! Get capabilities //! Get capabilities
CPropertyIndexVariantMap getCapabilities() const { return this->m_capabilities; } CPropertyIndexVariantMap getCapabilities() const { return this->m_capabilities; }
@@ -117,13 +120,13 @@ namespace BlackMisc
void setServer(const QString &server) { this->m_server = server;} void setServer(const QString &server) { this->m_server = server;}
//! Model //! Model
const BlackMisc::Simulation::CAircraftModel &getAircraftModel() const { return this->m_model; } const QString &getQueriedModelString() const { return this->m_modelString; }
//! \copydoc Simulation::CAircraftModel::hasQueriedModelString //! \copydoc Simulation::CAircraftModel::hasQueriedModelString
bool hasQueriedModelString() const { return this->m_model.hasQueriedModelString(); } bool hasQueriedModelString() const { return !this->m_modelString.isEmpty(); }
//! Set model //! Set model
void setAircraftModel(const BlackMisc::Simulation::CAircraftModel &model) { this->m_model = model; } void setQueriedModelString(const QString &modelString) { this->m_modelString = modelString.trimmed(); }
//! \copydoc BlackMisc::Mixin::Icon::toIcon() //! \copydoc BlackMisc::Mixin::Icon::toIcon()
CIcon toIcon() const { return this->m_user.toIcon(); } CIcon toIcon() const { return this->m_user.toIcon(); }
@@ -139,15 +142,15 @@ namespace BlackMisc
private: private:
BlackMisc::Network::CUser m_user; BlackMisc::Network::CUser m_user;
BlackMisc::Simulation::CAircraftModel m_model;
BlackMisc::CPropertyIndexVariantMap m_capabilities; BlackMisc::CPropertyIndexVariantMap m_capabilities;
QString m_modelString;
QString m_server; QString m_server;
BlackMisc::Network::CVoiceCapabilities m_voiceCapabilities; BlackMisc::Network::CVoiceCapabilities m_voiceCapabilities;
BLACK_METACLASS( BLACK_METACLASS(
CClient, CClient,
BLACK_METAMEMBER(user), BLACK_METAMEMBER(user),
BLACK_METAMEMBER(model), BLACK_METAMEMBER(modelString),
BLACK_METAMEMBER(capabilities, 0, DisabledForComparison | DisabledForJson), BLACK_METAMEMBER(capabilities, 0, DisabledForComparison | DisabledForJson),
BLACK_METAMEMBER(server), BLACK_METAMEMBER(server),
BLACK_METAMEMBER(voiceCapabilities) BLACK_METAMEMBER(voiceCapabilities)