mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
refs #356 Moved CPropertyIndexVariantMap/CValueObject operators from CValueObject to CPropertyIndexVariantMap.
This commit is contained in:
@@ -43,6 +43,47 @@ namespace BlackMisc
|
||||
return !(b == a);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with CValueObject
|
||||
*/
|
||||
bool operator==(const CPropertyIndexVariantMap &indexMap, const CValueObject &valueObject)
|
||||
{
|
||||
if (indexMap.isEmpty()) return indexMap.isWildcard();
|
||||
const auto &map = indexMap.map();
|
||||
for (auto it = map.begin(); it != map.end(); ++it)
|
||||
{
|
||||
// QVariant cannot be compared directly
|
||||
CVariant p = valueObject.propertyByIndex(it.key()); // from value object
|
||||
CVariant v = it.value().toCVariant(); // from map
|
||||
if (p != v) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with CValueObject
|
||||
*/
|
||||
bool operator!=(const CPropertyIndexVariantMap &indexMap, const CValueObject &valueObject)
|
||||
{
|
||||
return !(indexMap == valueObject);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with CValueObject
|
||||
*/
|
||||
bool operator==(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap)
|
||||
{
|
||||
return valueMap == valueObject;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with CValueObject
|
||||
*/
|
||||
bool operator!=(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap)
|
||||
{
|
||||
return !(valueMap == valueObject);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert to string
|
||||
*/
|
||||
|
||||
@@ -97,6 +97,18 @@ namespace BlackMisc
|
||||
//! Equal operator, required if maps are directly compared, not with CValueObject
|
||||
friend bool operator !=(const CPropertyIndexVariantMap &a, const CPropertyIndexVariantMap &b);
|
||||
|
||||
//! Operator == with CValueObject
|
||||
friend bool operator ==(const CPropertyIndexVariantMap &valueMap, const CValueObject &valueObject);
|
||||
|
||||
//! Operator != with CValueObject
|
||||
friend bool operator !=(const CPropertyIndexVariantMap &valueMap, const CValueObject &valueObject);
|
||||
|
||||
//! Operator == with CValueObject
|
||||
friend bool operator ==(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
//! Operator != with CValueObject
|
||||
friend bool operator !=(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
//! Map
|
||||
const QMap<CPropertyIndex, CVariant> &map() const { return this->m_values; }
|
||||
|
||||
|
||||
@@ -169,47 +169,6 @@ namespace BlackMisc
|
||||
return this->toIcon().toPixmap();
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with value map
|
||||
*/
|
||||
bool operator==(const CPropertyIndexVariantMap &indexMap, const CValueObject &valueObject)
|
||||
{
|
||||
if (indexMap.isEmpty()) return indexMap.isWildcard();
|
||||
const auto &map = indexMap.map();
|
||||
for (auto it = map.begin(); it != map.end(); ++it)
|
||||
{
|
||||
// QVariant cannot be compared directly
|
||||
CVariant p = valueObject.propertyByIndex(it.key()); // from value object
|
||||
CVariant v = it.value().toCVariant(); // from map
|
||||
if (p != v) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with map
|
||||
*/
|
||||
bool operator!=(const CPropertyIndexVariantMap &indexMap, const CValueObject &valueObject)
|
||||
{
|
||||
return !(indexMap == valueObject);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with map
|
||||
*/
|
||||
bool operator==(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap)
|
||||
{
|
||||
return valueMap == valueObject;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare with map
|
||||
*/
|
||||
bool operator!=(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap)
|
||||
{
|
||||
return !(valueMap == valueObject);
|
||||
}
|
||||
|
||||
/*
|
||||
* from DBus
|
||||
*/
|
||||
|
||||
@@ -102,18 +102,6 @@ namespace BlackMisc
|
||||
//! Marshalling operator <<, object to DBus
|
||||
friend QDBusArgument &operator<<(QDBusArgument &argument, const CValueObject &valueObject);
|
||||
|
||||
//! Operator == with value map
|
||||
friend bool operator==(const CPropertyIndexVariantMap &valueMap, const CValueObject &valueObject);
|
||||
|
||||
//! Operator != with value map
|
||||
friend bool operator!=(const CPropertyIndexVariantMap &valueMap, const CValueObject &valueObject);
|
||||
|
||||
//! Operator == with value map
|
||||
friend bool operator==(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
//! Operator != with value map
|
||||
friend bool operator!=(const CValueObject &valueObject, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
/*!
|
||||
* Compares two instances of related classes
|
||||
* and returns an integer less than, equal to, or greater than zero
|
||||
|
||||
Reference in New Issue
Block a user