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::standardValueObject("callsign", CClient::IndexCallsign));
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("model", {CClient::IndexModel, CAircraftModel::IndexModelString}));
this->m_columns.addColumn(CColumn("q.?", "queried", {CClient::IndexModel, CAircraftModel::IndexHasQueriedModelString},
this->m_columns.addColumn(CColumn::standardString("model", CClient::IndexModelString));
this->m_columns.addColumn(CColumn("q.?", "queried", {CClient::IndexModelString, CAircraftModel::IndexHasQueriedModelString},
new CBoolIconFormatter("queried", "not queried")));
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", "realname");
(void)QT_TRANSLATE_NOOP("ViewClientList", "userid");
(void)QT_TRANSLATE_NOOP("ViewClientList", "model");
(void)QT_TRANSLATE_NOOP("ViewClientList", "modelstring");
(void)QT_TRANSLATE_NOOP("ViewClientList", "server");
}
QVariant CClientListModel::data(const QModelIndex &index, int role) const
{
static const CPropertyIndex ms( {CClient::IndexModel, CAircraftModel::IndexModelString});
static const CPropertyIndex qf( {CClient::IndexModel, CAircraftModel::IndexHasQueriedModelString});
static const CPropertyIndex ms({CClient::IndexModelString, CAircraftModel::IndexModelString});
static const CPropertyIndex qf({CClient::IndexModelString, CAircraftModel::IndexHasQueriedModelString});
if (role != Qt::DisplayRole && role != Qt::DecorationRole) { return CListModelBase::data(index, role); }
CPropertyIndex pi = modelIndexToPropertyIndex(index);
if (pi == ms && role == Qt::DisplayRole)

View File

@@ -27,14 +27,19 @@ namespace BlackMisc
{
QString s = this->m_user.toQString(i18n);
s.append(" capabilites: ").append(this->getCapabilitiesAsString());
s.append(" model: ").append(this->m_model.toQString(i18n));
if (!this->m_server.isEmpty())
{
s.append(" server:").append(this->m_server);
}
s.append(" model: ").append(this->m_modelString);
if (!this->m_server.isEmpty()) { s.append(" server:").append(this->m_server); }
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)
{
this->m_capabilities.addValue(static_cast<int>(capability), hasCapability);
@@ -87,8 +92,8 @@ namespace BlackMisc
return this->getCallsign().propertyByIndex(index.copyFrontRemoved());
case IndexUser:
return this->getUser().propertyByIndex(index.copyFrontRemoved());
case IndexModel:
return this->m_model.propertyByIndex(index.copyFrontRemoved());
case IndexModelString:
return CVariant(this->m_modelString);
case IndexServer:
return CVariant(this->m_server);
case IndexVoiceCapabilities:
@@ -113,8 +118,8 @@ namespace BlackMisc
case IndexCapabilities:
this->m_capabilities = variant.value<CPropertyIndexVariantMap>();
break;
case IndexModel:
this->m_model.setPropertyByIndex(index.copyFrontRemoved(), variant);;
case IndexModelString:
this->m_modelString = variant.toQString();
break;
case IndexServer:
this->m_server = variant.toQString();

View File

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