refs #247 Using CVariant in blackgui.

This commit is contained in:
Mathew Sutcliffe
2014-12-06 16:31:33 +00:00
parent 7db0587254
commit f80d7e27d1
13 changed files with 135 additions and 142 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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