refs #356 Moved CPropertyIndexVariantMap/CValueObject operators from CValueObject to CPropertyIndexVariantMap.

This commit is contained in:
Mathew Sutcliffe
2014-12-15 18:23:13 +00:00
parent 22d6b93f10
commit 50bf5690f9
4 changed files with 53 additions and 53 deletions

View File

@@ -43,6 +43,47 @@ namespace BlackMisc
return !(b == a); 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 * Convert to string
*/ */

View File

@@ -97,6 +97,18 @@ namespace BlackMisc
//! Equal operator, required if maps are directly compared, not with CValueObject //! Equal operator, required if maps are directly compared, not with CValueObject
friend bool operator !=(const CPropertyIndexVariantMap &a, const CPropertyIndexVariantMap &b); 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 //! Map
const QMap<CPropertyIndex, CVariant> &map() const { return this->m_values; } const QMap<CPropertyIndex, CVariant> &map() const { return this->m_values; }

View File

@@ -169,47 +169,6 @@ namespace BlackMisc
return this->toIcon().toPixmap(); 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 * from DBus
*/ */

View File

@@ -102,18 +102,6 @@ namespace BlackMisc
//! Marshalling operator <<, object to DBus //! Marshalling operator <<, object to DBus
friend QDBusArgument &operator<<(QDBusArgument &argument, const CValueObject &valueObject); 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 * Compares two instances of related classes
* and returns an integer less than, equal to, or greater than zero * and returns an integer less than, equal to, or greater than zero