mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
refs #247 Using CVariant in blackgui.
This commit is contained in:
@@ -162,11 +162,11 @@ namespace BlackGui
|
||||
QObject *sender = QObject::sender();
|
||||
if (sender == this->ui->pb_SettingsTnRemoveServer)
|
||||
{
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdRemove(), server.toQVariant());
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdRemove(), server.toCVariant());
|
||||
}
|
||||
else if (sender == this->ui->pb_SettingsTnSaveServer)
|
||||
{
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), server.toQVariant());
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), server.toCVariant());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace BlackGui
|
||||
void CSettingsComponent::ps_saveHotkeys()
|
||||
{
|
||||
const QString path = CSettingUtilities::appendPaths(IContextSettings::PathRoot(), IContextSettings::PathHotkeys());
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), this->ui->tvp_SettingsMiscHotkeys->derivedModel()->getContainer().toQVariant());
|
||||
this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), this->ui->tvp_SettingsMiscHotkeys->derivedModel()->getContainer().toCVariant());
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "blacksim/setsimulator.h"
|
||||
#include "blackmisc/settingutilities.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/variant.h"
|
||||
|
||||
#include <QComboBox>
|
||||
|
||||
@@ -135,7 +136,7 @@ namespace BlackGui
|
||||
if (sender == this->ui->cb_TimeSync)
|
||||
{
|
||||
bool timeSync = this->ui->cb_TimeSync->isChecked();
|
||||
this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTime()), CSettingUtilities::CmdUpdate(), QVariant(timeSync));
|
||||
this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTime()), CSettingUtilities::CmdUpdate(), CVariant::from(timeSync));
|
||||
}
|
||||
else if (sender == this->ui->le_TimeSyncOffset)
|
||||
{
|
||||
@@ -151,7 +152,7 @@ namespace BlackGui
|
||||
}
|
||||
else
|
||||
{
|
||||
this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTimeOffset()), CSettingUtilities::CmdUpdate(), ost.toQVariant());
|
||||
this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTimeOffset()), CSettingUtilities::CmdUpdate(), ost.toCVariant());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,57 +20,57 @@ namespace BlackGui
|
||||
namespace Models
|
||||
{
|
||||
|
||||
QVariant CDefaultFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CDefaultFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
// seems to be absurd, but calls the correct methods on CValueObjects
|
||||
// so QVariant -> QString -> QVariant is correct
|
||||
if (static_cast<QMetaType::Type>(dataQVariant.type()) == QMetaType::QString) return dataQVariant; // shortcut
|
||||
return BlackMisc::qVariantToString(dataQVariant, m_useI18n);
|
||||
// so QVariant -> QString -> CVariant is correct
|
||||
if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QString) return dataCVariant; // shortcut
|
||||
return dataCVariant.toQString(m_useI18n);
|
||||
}
|
||||
|
||||
QVariant CDefaultFormatter::decorationRole(const QVariant &dataQVariant) const
|
||||
CVariant CDefaultFormatter::decorationRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
// direct return if type is already correct
|
||||
if (static_cast<QMetaType::Type>(dataQVariant.type()) == QMetaType::QPixmap)
|
||||
if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QPixmap)
|
||||
{
|
||||
return dataQVariant;
|
||||
return dataCVariant;
|
||||
}
|
||||
else if (static_cast<QMetaType::Type>(dataQVariant.type()) == QMetaType::QIcon)
|
||||
else if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QIcon)
|
||||
{
|
||||
return dataQVariant;
|
||||
return dataCVariant;
|
||||
}
|
||||
|
||||
// convert to pixmap
|
||||
if (static_cast<QMetaType::Type>(dataQVariant.type()) == QMetaType::QImage)
|
||||
if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QImage)
|
||||
{
|
||||
QImage img = dataQVariant.value<QImage>();
|
||||
return QPixmap::fromImage(img);
|
||||
QImage img = dataCVariant.value<QImage>();
|
||||
return CVariant::from(QPixmap::fromImage(img));
|
||||
}
|
||||
|
||||
// Our CIcon class
|
||||
if (dataQVariant.canConvert<BlackMisc::CIcon>())
|
||||
if (dataCVariant.canConvert<BlackMisc::CIcon>())
|
||||
{
|
||||
BlackMisc::CIcon i = dataQVariant.value<BlackMisc::CIcon>();
|
||||
return i.toPixmap();
|
||||
BlackMisc::CIcon i = dataCVariant.value<BlackMisc::CIcon>();
|
||||
return CVariant::from(i.toPixmap());
|
||||
}
|
||||
|
||||
// nope
|
||||
return QPixmap();
|
||||
return CVariant::from(QPixmap());
|
||||
}
|
||||
|
||||
QVariant CDefaultFormatter::alignmentRole() const
|
||||
CVariant CDefaultFormatter::alignmentRole() const
|
||||
{
|
||||
if (!this->hasAlignment())
|
||||
{
|
||||
return QVariant(alignDefault()); // default
|
||||
return CVariant::from(alignDefault()); // default
|
||||
}
|
||||
else
|
||||
{
|
||||
return QVariant(m_alignment);
|
||||
return CVariant::from(m_alignment);
|
||||
}
|
||||
}
|
||||
|
||||
QVariant CDefaultFormatter::data(int role, const QVariant &inputData) const
|
||||
CVariant CDefaultFormatter::data(int role, const CVariant &inputData) const
|
||||
{
|
||||
Qt::ItemDataRole roleEnum = static_cast<Qt::ItemDataRole>(role);
|
||||
|
||||
@@ -78,8 +78,8 @@ namespace BlackGui
|
||||
if (roleEnum == Qt::TextAlignmentRole) return { alignmentRole() };
|
||||
|
||||
// checked
|
||||
if (this->m_supportedRoles.isEmpty()) return QVariant();
|
||||
if (!this->m_supportedRoles.contains(role)) return QVariant();
|
||||
if (this->m_supportedRoles.isEmpty()) return CVariant();
|
||||
if (!this->m_supportedRoles.contains(role)) return CVariant();
|
||||
switch (roleEnum)
|
||||
{
|
||||
case Qt::DisplayRole:
|
||||
@@ -94,52 +94,44 @@ namespace BlackGui
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
QVariant CPixmapFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CPixmapFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
Q_UNUSED(dataQVariant);
|
||||
Q_UNUSED(dataCVariant);
|
||||
Q_ASSERT_X(false, "CPixmapFormatter", "this role should be disabled with pixmaps");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
QVariant CPixmapFormatter::tooltipRole(const QVariant &dataQVariant) const
|
||||
CVariant CPixmapFormatter::tooltipRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.isNull()) return "";
|
||||
if (dataQVariant.canConvert<BlackMisc::CIcon>())
|
||||
if (dataCVariant.isNull()) return "";
|
||||
if (dataCVariant.canConvert<BlackMisc::CIcon>())
|
||||
{
|
||||
BlackMisc::CIcon icon = dataQVariant.value<BlackMisc::CIcon>();
|
||||
BlackMisc::CIcon icon = dataCVariant.value<BlackMisc::CIcon>();
|
||||
return icon.getDescriptiveText();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
QVariant CValueObjectFormatter::displayRole(const QVariant &valueObject) const
|
||||
CVariant CValueObjectFormatter::displayRole(const CVariant &valueObject) const
|
||||
{
|
||||
if (valueObject.isNull()) return QVariant();
|
||||
const BlackMisc::CValueObject *cvo = BlackMisc::CValueObject::fromQVariant(valueObject);
|
||||
Q_ASSERT(cvo);
|
||||
if (!cvo) return QVariant();
|
||||
return QVariant(cvo->toQString(m_useI18n));
|
||||
return CVariant(valueObject.toQString(m_useI18n));
|
||||
}
|
||||
|
||||
QVariant CValueObjectFormatter::decorationRole(const QVariant &valueObject) const
|
||||
CVariant CValueObjectFormatter::decorationRole(const CVariant &valueObject) const
|
||||
{
|
||||
if (valueObject.isNull()) return "";
|
||||
const BlackMisc::CValueObject *cvo = BlackMisc::CValueObject::fromQVariant(valueObject);
|
||||
Q_ASSERT(cvo);
|
||||
if (!cvo) return QPixmap();
|
||||
return QVariant(cvo->toPixmap());
|
||||
return CVariant(valueObject.toPixmap());
|
||||
}
|
||||
|
||||
CDateTimeFormatter::CDateTimeFormatter(const QString formatString, int alignment, bool i18n) :
|
||||
CDateTimeFormatter::CDateTimeFormatter(const QString &formatString, int alignment, bool i18n) :
|
||||
CDefaultFormatter(alignment, i18n, { Qt::DisplayRole }), m_formatString(formatString)
|
||||
{
|
||||
// void
|
||||
}
|
||||
|
||||
QVariant CDateTimeFormatter::displayRole(const QVariant &dateTime) const
|
||||
CVariant CDateTimeFormatter::displayRole(const CVariant &dateTime) const
|
||||
{
|
||||
if (dateTime.isNull()) return "";
|
||||
if (static_cast<QMetaType::Type>(dateTime.type()) == QMetaType::QDateTime)
|
||||
@@ -164,15 +156,15 @@ namespace BlackGui
|
||||
}
|
||||
}
|
||||
|
||||
QVariant CAirspaceDistanceFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CAirspaceDistanceFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<BlackMisc::PhysicalQuantities::CLength>())
|
||||
if (dataCVariant.canConvert<BlackMisc::PhysicalQuantities::CLength>())
|
||||
{
|
||||
// special treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CLength l = dataQVariant.value<BlackMisc::PhysicalQuantities::CLength>();
|
||||
BlackMisc::PhysicalQuantities::CLength l = dataCVariant.value<BlackMisc::PhysicalQuantities::CLength>();
|
||||
if (!l.isNull() && (l.isPositiveWithEpsilonConsidered() || l.isZeroEpsilonConsidered()))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataQVariant);
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -186,15 +178,15 @@ namespace BlackGui
|
||||
}
|
||||
}
|
||||
|
||||
QVariant CComFrequencyFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CComFrequencyFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<BlackMisc::PhysicalQuantities::CFrequency>())
|
||||
if (dataCVariant.canConvert<BlackMisc::PhysicalQuantities::CFrequency>())
|
||||
{
|
||||
// speical treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CFrequency f = dataQVariant.value<BlackMisc::PhysicalQuantities::CFrequency>();
|
||||
BlackMisc::PhysicalQuantities::CFrequency f = dataCVariant.value<BlackMisc::PhysicalQuantities::CFrequency>();
|
||||
if (BlackMisc::Aviation::CComSystem::isValidComFrequency(f))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataQVariant);
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -208,13 +200,13 @@ namespace BlackGui
|
||||
}
|
||||
}
|
||||
|
||||
QVariant CAircraftSpeedFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CAircraftSpeedFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
// special treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CSpeed s = dataQVariant.value<BlackMisc::PhysicalQuantities::CSpeed>();
|
||||
BlackMisc::PhysicalQuantities::CSpeed s = dataCVariant.value<BlackMisc::PhysicalQuantities::CSpeed>();
|
||||
if (!s.isNull() && (s.isPositiveWithEpsilonConsidered() || s.isZeroEpsilonConsidered()))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataQVariant);
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -222,22 +214,22 @@ namespace BlackGui
|
||||
}
|
||||
}
|
||||
|
||||
QVariant CStringFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CStringFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<QString>()) { return dataQVariant; }
|
||||
if (dataCVariant.canConvert<QString>()) { return dataCVariant; }
|
||||
Q_ASSERT_X(false, "CStringFormatter", "no string value");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
QVariant CBoolTextFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CBoolTextFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<bool>())
|
||||
if (dataCVariant.canConvert<bool>())
|
||||
{
|
||||
bool v = dataQVariant.toBool();
|
||||
return v ? QVariant(m_trueName) : QVariant(m_falseName);
|
||||
bool v = dataCVariant.toBool();
|
||||
return v ? CVariant(m_trueName) : CVariant(m_falseName);
|
||||
}
|
||||
Q_ASSERT_X(false, "CBoolTextFormatter", "no boolean value");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
CBoolLedFormatter::CBoolLedFormatter(int alignment) : CBoolLedFormatter("on", "off", alignment)
|
||||
@@ -254,22 +246,22 @@ namespace BlackGui
|
||||
delete led;
|
||||
}
|
||||
|
||||
QVariant CBoolLedFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CBoolLedFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
Q_UNUSED(dataQVariant);
|
||||
Q_UNUSED(dataCVariant);
|
||||
Q_ASSERT_X(false, "CBoolLedFormatter", "this role should be disabled with led boolean");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
QVariant CBoolLedFormatter::decorationRole(const QVariant &dataQVariant) const
|
||||
CVariant CBoolLedFormatter::decorationRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<bool>())
|
||||
if (dataCVariant.canConvert<bool>())
|
||||
{
|
||||
bool v = dataQVariant.toBool();
|
||||
return v ? m_pixmapOnLed : m_pixmapOffLed;
|
||||
bool v = dataCVariant.toBool();
|
||||
return CVariant::from(v ? m_pixmapOnLed : m_pixmapOffLed);
|
||||
}
|
||||
Q_ASSERT_X(false, "CBoolLedFormatter", "no boolean value");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
CBoolIconFormatter::CBoolIconFormatter(int alignment) :
|
||||
@@ -287,22 +279,22 @@ namespace BlackGui
|
||||
this->m_iconOff.setDescriptiveText(offName);
|
||||
}
|
||||
|
||||
QVariant CBoolIconFormatter::displayRole(const QVariant &dataQVariant) const
|
||||
CVariant CBoolIconFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
Q_UNUSED(dataQVariant);
|
||||
Q_UNUSED(dataCVariant);
|
||||
Q_ASSERT_X(false, "CBoolIconFormatter", "this role should be disabled with icon boolean");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
|
||||
QVariant CBoolIconFormatter::decorationRole(const QVariant &dataQVariant) const
|
||||
CVariant CBoolIconFormatter::decorationRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataQVariant.canConvert<bool>())
|
||||
if (dataCVariant.canConvert<bool>())
|
||||
{
|
||||
bool v = dataQVariant.toBool();
|
||||
return v ? m_iconOn.toPixmap() : m_iconOff.toPixmap();
|
||||
bool v = dataCVariant.toBool();
|
||||
return CVariant::from(v ? m_iconOn.toPixmap() : m_iconOff.toPixmap());
|
||||
}
|
||||
Q_ASSERT_X(false, "CBoolIconFormatter", "no boolean value");
|
||||
return QVariant();
|
||||
return CVariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,29 +36,29 @@ namespace BlackGui
|
||||
//! Virtual destructor
|
||||
virtual ~CDefaultFormatter() {}
|
||||
|
||||
//! Value provided as QVariant, formatter converts to QString.
|
||||
//! Value provided as CVariant, formatter converts to QString.
|
||||
//! Used with Qt::DisplayRole displaying a text.
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const;
|
||||
|
||||
//! Value provided as QVariant, formatter converts to QString.
|
||||
//! Value provided as CVariant, formatter converts to QString.
|
||||
//! Used with Qt::ToolTipRole displaying a text.
|
||||
virtual QVariant tooltipRole(const QVariant &value) const
|
||||
virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &value) const
|
||||
{
|
||||
return displayRole(value);
|
||||
}
|
||||
|
||||
//! Value provided as QVariant, formatted as icon (Qt docu: "The data to be rendered as a decoration in the form of an icon").
|
||||
//! Value provided as CVariant, formatted as icon (Qt docu: "The data to be rendered as a decoration in the form of an icon").
|
||||
//! Used with Qt::DecorationRole displaying an icon, method returns pixmap, icon, or color (see docu)
|
||||
virtual QVariant decorationRole(const QVariant &dataQVariant) const;
|
||||
virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const;
|
||||
|
||||
//! Qt::Alignment (as QVariant)
|
||||
virtual QVariant alignmentRole() const;
|
||||
//! Qt::Alignment (as CVariant)
|
||||
virtual BlackMisc::CVariant alignmentRole() const;
|
||||
|
||||
//! Alignment available?
|
||||
virtual bool hasAlignment() const { return m_alignment >= 0; }
|
||||
|
||||
//! Receives QVariant of column data, and returns QVariant wrapping string, pixmap, or other values depending on role
|
||||
virtual QVariant data(int role, const QVariant &inputData) const;
|
||||
//! Receives CVariant of column data, and returns CVariant wrapping string, pixmap, or other values depending on role
|
||||
virtual BlackMisc::CVariant data(int role, const BlackMisc::CVariant &inputData) const;
|
||||
|
||||
//! Default value
|
||||
static int alignDefault() { return alignLeftVCenter(); }
|
||||
@@ -92,10 +92,10 @@ namespace BlackGui
|
||||
CPixmapFormatter(int alignment = alignDefault(), const QList<int> &supportedRoles = roleDecorationAndToolTip()) : CDefaultFormatter(alignment, false, supportedRoles) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
//! \copydoc CDefaultFormatter::tooltipRole
|
||||
virtual QVariant tooltipRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
};
|
||||
|
||||
//! String formatter, if known the variant already contains the appropriate string
|
||||
@@ -106,7 +106,7 @@ namespace BlackGui
|
||||
CStringFormatter(int alignment = alignDefault()) : CDefaultFormatter(alignment, false, roleDisplay()) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
};
|
||||
|
||||
//! Bool value, format as text
|
||||
@@ -118,7 +118,7 @@ namespace BlackGui
|
||||
CDefaultFormatter(alignment, false, supportedRoles), m_trueName(trueName), m_falseName(falseName) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
protected:
|
||||
QString m_trueName = "true"; //!< displayed when true
|
||||
@@ -137,15 +137,15 @@ namespace BlackGui
|
||||
CBoolLedFormatter(const QString &onName, const QString &offName, int alignment = alignDefault());
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
//! Display the LED
|
||||
virtual QVariant decorationRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
//! \copydoc CDefaultFormatter::tooltipRole
|
||||
virtual QVariant tooltipRole(const QVariant &dataQVariant) const override
|
||||
virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override
|
||||
{
|
||||
return CBoolTextFormatter::displayRole(dataQVariant);
|
||||
return CBoolTextFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
|
||||
//! Default LED
|
||||
@@ -174,15 +174,15 @@ namespace BlackGui
|
||||
CBoolIconFormatter(BlackMisc::CIcons::IconIndex onIcon, BlackMisc::CIcons::IconIndex offIcon, const QString &onName, const QString &offName, int alignment = alignDefault());
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
//! Display the icon
|
||||
virtual QVariant decorationRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
|
||||
//! \copydoc CDefaultFormatter::tooltipRole
|
||||
virtual QVariant tooltipRole(const QVariant &dataQVariant) const override
|
||||
virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override
|
||||
{
|
||||
return CBoolTextFormatter::displayRole(dataQVariant);
|
||||
return CBoolTextFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -198,10 +198,10 @@ namespace BlackGui
|
||||
CValueObjectFormatter(int alignment = alignDefault(), bool i18n = true, QList<int> supportedRoles = {Qt::DisplayRole}) : CDefaultFormatter(alignment, i18n, supportedRoles) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &valueObject) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &valueObject) const override;
|
||||
|
||||
//! \copydoc CDefaultFormatter::asPixmap
|
||||
virtual QVariant decorationRole(const QVariant &valueObject) const;
|
||||
virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &valueObject) const;
|
||||
};
|
||||
|
||||
//! Formatter when column contains QDateTime, QDate or QTime
|
||||
@@ -209,10 +209,10 @@ namespace BlackGui
|
||||
{
|
||||
public:
|
||||
//! Constructor
|
||||
CDateTimeFormatter(const QString formatString = formatYmd(), int alignment = alignDefault(), bool i18n = true);
|
||||
CDateTimeFormatter(const QString &formatString = formatYmd(), int alignment = alignDefault(), bool i18n = true);
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dateTime) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dateTime) const override;
|
||||
|
||||
//! Year month day
|
||||
static const QString &formatYmd() { static const QString f = "yyyy-MM-dd"; return f; }
|
||||
@@ -238,7 +238,7 @@ namespace BlackGui
|
||||
CPhysiqalQuantiyFormatter(MU unit = MU::defaultUnit(), int digits = 2, int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true, QList<int> supportedRoles = { Qt::DisplayRole }) : CValueObjectFormatter(alignment, i18n, supportedRoles), m_unit(unit), m_digits(digits), m_withUnit(withUnit) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &physicalQuantity) const override
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &physicalQuantity) const override
|
||||
{
|
||||
if (physicalQuantity.canConvert<PQ>())
|
||||
{
|
||||
@@ -279,7 +279,7 @@ namespace BlackGui
|
||||
CComFrequencyFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz(), 3, alignment, withUnit, i18n) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
};
|
||||
|
||||
//! Angle in degrees
|
||||
@@ -306,7 +306,7 @@ namespace BlackGui
|
||||
CAirspaceDistanceFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CLengthUnit::NM(), 1, alignment, withUnit, i18n) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
};
|
||||
|
||||
//! Airspace distance
|
||||
@@ -317,7 +317,7 @@ namespace BlackGui
|
||||
CAircraftSpeedFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CSpeedUnit::kts(), 0, alignment, withUnit, i18n) {}
|
||||
|
||||
//! \copydoc CDefaultFormatter::displayRole
|
||||
virtual QVariant displayRole(const QVariant &dataQVariant) const override;
|
||||
virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -55,8 +55,8 @@ namespace BlackGui
|
||||
//! Formatter
|
||||
const CDefaultFormatter *getFormatter() const { return this->m_formatter.data(); }
|
||||
|
||||
//! Aligment as QVariant
|
||||
QVariant getAlignment() const;
|
||||
//! Aligment as CVariant
|
||||
BlackMisc::CVariant getAlignment() const;
|
||||
|
||||
//! Column name
|
||||
QString getColumnName(bool i18n = false) const;
|
||||
@@ -149,8 +149,8 @@ namespace BlackGui
|
||||
return column >= 0 && column < this->m_columns.size();
|
||||
}
|
||||
|
||||
//! Aligment as QVariant
|
||||
QVariant getAlignment(const QModelIndex &index) const;
|
||||
//! Aligment as CVariant
|
||||
BlackMisc::CVariant getAlignment(const QModelIndex &index) const;
|
||||
|
||||
//! Translation context
|
||||
const QString &getTranslationContext() const { return m_translationContext; }
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace BlackGui
|
||||
//! Formatted data
|
||||
ObjectType obj = this->m_container[index.row()];
|
||||
BlackMisc::CPropertyIndex propertyIndex = this->columnToPropertyIndex(index.column());
|
||||
return formatter->data(role, obj.propertyByIndex(propertyIndex));
|
||||
return formatter->data(role, obj.propertyByIndex(propertyIndex)).toQVariant();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -171,7 +171,7 @@ namespace BlackGui
|
||||
{
|
||||
ContainerType sortedContainer = this->sortContainerByColumn(container, sortColumn, sortOrder);
|
||||
QMetaObject::invokeMethod(this, "updateContainer",
|
||||
Q_ARG(QVariant, sortedContainer.toQVariant()), Q_ARG(bool, false));
|
||||
Q_ARG(BlackMisc::CVariant, sortedContainer.toCVariant()), Q_ARG(bool, false));
|
||||
});
|
||||
worker->then(this, &CListModelBase::asyncUpdateFinished);
|
||||
return worker;
|
||||
@@ -265,10 +265,10 @@ namespace BlackGui
|
||||
/*
|
||||
* Update on container
|
||||
*/
|
||||
template <typename ObjectType, typename ContainerType> int CListModelBase<ObjectType, ContainerType>::performUpdateContainer(const QVariant &variant, bool sort)
|
||||
template <typename ObjectType, typename ContainerType> int CListModelBase<ObjectType, ContainerType>::performUpdateContainer(const BlackMisc::CVariant &variant, bool sort)
|
||||
{
|
||||
ContainerType c;
|
||||
c.convertFromQVariant(variant);
|
||||
c.convertFromCVariant(variant);
|
||||
return this->update(c, sort);
|
||||
}
|
||||
|
||||
@@ -303,10 +303,9 @@ namespace BlackGui
|
||||
// sort the values
|
||||
const auto p = [ = ](const ObjectType & a, const ObjectType & b) -> bool
|
||||
{
|
||||
QVariant aQv = a.propertyByIndex(propertyIndex);
|
||||
QVariant bQv = b.propertyByIndex(propertyIndex);
|
||||
int compare = BlackMisc::compareQVariants(aQv, bQv);
|
||||
return (order == Qt::AscendingOrder) ? (compare < 0) : (compare > 0);
|
||||
BlackMisc::CVariant aQv = a.propertyByIndex(propertyIndex);
|
||||
BlackMisc::CVariant bQv = b.propertyByIndex(propertyIndex);
|
||||
return (order == Qt::AscendingOrder) ? (aQv < bQv) : (bQv < aQv);
|
||||
};
|
||||
|
||||
// KWB: qDebug() will be removed soon
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace BlackGui
|
||||
//! Helper method with template free signature
|
||||
//! \param variant container is transferred in variant
|
||||
//! \param sort
|
||||
int updateContainer(const QVariant &variant, bool sort)
|
||||
int updateContainer(const BlackMisc::CVariant &variant, bool sort)
|
||||
{
|
||||
return this->performUpdateContainer(variant, sort);
|
||||
}
|
||||
@@ -109,7 +109,7 @@ namespace BlackGui
|
||||
}
|
||||
|
||||
//! Helper method with template free signature
|
||||
virtual int performUpdateContainer(const QVariant &variant, bool sort) = 0;
|
||||
virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort) = 0;
|
||||
|
||||
CColumns m_columns; //!< columns metadata
|
||||
int m_sortedColumn; //!< current sort column
|
||||
@@ -208,7 +208,7 @@ namespace BlackGui
|
||||
{ }
|
||||
|
||||
//! \copydoc CModelBaseNonTemplate::performUpdateContainer
|
||||
virtual int performUpdateContainer(const QVariant &variant, bool sort) override;
|
||||
virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort) override;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace BlackGui
|
||||
this->m_sortOrder = Qt::AscendingOrder;
|
||||
}
|
||||
|
||||
bool CNameVariantPairModel::addOrUpdateByName(const QString &name, const QVariant &value, const CIcon &icon, bool skipEqualValues)
|
||||
bool CNameVariantPairModel::addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const CIcon &icon, bool skipEqualValues)
|
||||
{
|
||||
int index = this->getRowIndexForName(name);
|
||||
CNameVariantPair pair(name, value, icon);
|
||||
@@ -79,13 +79,13 @@ namespace BlackGui
|
||||
return this->m_container.containsName(name);
|
||||
}
|
||||
|
||||
bool CNameVariantPairModel::containsNameValue(const QString &name, const QVariant &value) const
|
||||
bool CNameVariantPairModel::containsNameValue(const QString &name, const BlackMisc::CVariant &value) const
|
||||
{
|
||||
int rowIndex = this->getRowIndexForName(name);
|
||||
if (rowIndex < 0) return false;
|
||||
QModelIndex i = this->index(rowIndex, 0);
|
||||
const CNameVariantPair cv = this->at(i);
|
||||
return BlackMisc::equalQVariants(value, cv.toQVariant());
|
||||
return value == cv.toCVariant();
|
||||
}
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
@@ -46,10 +46,10 @@ namespace BlackGui
|
||||
bool containsName(const QString &name) const;
|
||||
|
||||
//! Contains name / value?
|
||||
bool containsNameValue(const QString &name, const QVariant &value) const;
|
||||
bool containsNameValue(const QString &name, const BlackMisc::CVariant &value) const;
|
||||
|
||||
//! Add our update a value
|
||||
bool addOrUpdateByName(const QString &name, const QVariant &value, const BlackMisc::CIcon &icon, bool skipEqualValues);
|
||||
bool addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const BlackMisc::CIcon &icon, bool skipEqualValues);
|
||||
|
||||
//! Current row index of given name
|
||||
int getRowIndexForName(const QString &name) const;
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace BlackGui
|
||||
this->m_model->setIconMode(withIcon);
|
||||
}
|
||||
|
||||
bool CNameVariantPairView::addOrUpdateByName(const QString &name, const QVariant &value, const CIcon &icon, bool resize, bool skipEqualValues)
|
||||
bool CNameVariantPairView::addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const CIcon &icon, bool resize, bool skipEqualValues)
|
||||
{
|
||||
Q_ASSERT(this->m_model);
|
||||
bool changed = this->m_model->addOrUpdateByName(name, value, icon, skipEqualValues);
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace BlackGui
|
||||
void setIconMode(bool withIcon);
|
||||
|
||||
//! Update or add value, QVariant version
|
||||
bool addOrUpdateByName(const QString &name, const QVariant &value, const BlackMisc::CIcon &icon = BlackMisc::CIcon(), bool performResizing = true, bool skipEqualValues = true);
|
||||
bool addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const BlackMisc::CIcon &icon = BlackMisc::CIcon(), bool performResizing = true, bool skipEqualValues = true);
|
||||
|
||||
//! Remove by name
|
||||
void removeByName(const QString &name, bool performResizing = true);
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace BlackGui
|
||||
{
|
||||
ContainerType sortedContainer = model->sortContainerByColumn(container, sortColumn, sortOrder);
|
||||
QMetaObject::invokeMethod(this, "updateContainer",
|
||||
Q_ARG(QVariant, sortedContainer.toQVariant()), Q_ARG(bool, false), Q_ARG(bool, resize));
|
||||
Q_ARG(BlackMisc::CVariant, sortedContainer.toCVariant()), Q_ARG(bool, false), Q_ARG(bool, resize));
|
||||
});
|
||||
worker->then(this, &CViewBase::asyncUpdateFinished);
|
||||
return worker;
|
||||
@@ -250,10 +250,10 @@ namespace BlackGui
|
||||
}
|
||||
}
|
||||
|
||||
template <class ModelClass, class ContainerType> int CViewBase<ModelClass, ContainerType>::performUpdateContainer(const QVariant &variant, bool sort, bool resize)
|
||||
template <class ModelClass, class ContainerType> int CViewBase<ModelClass, ContainerType>::performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool resize)
|
||||
{
|
||||
ContainerType c;
|
||||
c.convertFromQVariant(variant);
|
||||
c.convertFromCVariant(variant);
|
||||
return this->updateContainer(c, sort, resize);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "blackmisc/icons.h"
|
||||
#include "blackmisc/worker.h"
|
||||
#include "blackmisc/variant.h"
|
||||
#include <QTableView>
|
||||
#include <QHeaderView>
|
||||
#include <QMenu>
|
||||
@@ -101,7 +102,7 @@ namespace BlackGui
|
||||
//! \param variant contains the container
|
||||
//! \param sort
|
||||
//! \param performResizing
|
||||
virtual int performUpdateContainer(const QVariant &variant, bool sort, bool performResizing) = 0;
|
||||
virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool performResizing) = 0;
|
||||
|
||||
//! Skip resizing because of size?
|
||||
virtual bool reachedResizeThreshold() const = 0;
|
||||
@@ -122,7 +123,7 @@ namespace BlackGui
|
||||
|
||||
protected slots:
|
||||
//! Helper method with template free signature serving as callback from threaded worker
|
||||
int updateContainer(const QVariant &variant, bool sort, bool resize)
|
||||
int updateContainer(const BlackMisc::CVariant &variant, bool sort, bool resize)
|
||||
{
|
||||
return this->performUpdateContainer(variant, sort, resize);
|
||||
}
|
||||
@@ -214,7 +215,7 @@ namespace BlackGui
|
||||
virtual void performResizeToContents() override;
|
||||
|
||||
//! \copydoc CViewBaseNonTemplate::performUpdateContainer
|
||||
virtual int performUpdateContainer(const QVariant &variant, bool sort, bool performResizing) override;
|
||||
virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool performResizing) override;
|
||||
|
||||
};
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user