mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 04:25:42 +08:00
refs #214, fixed hash for variant map
* hash based on convertToQString * fixed convertToQString
This commit is contained in:
@@ -38,12 +38,16 @@ namespace BlackMisc
|
|||||||
*/
|
*/
|
||||||
QString CIndexVariantMap::convertToQString(bool i18n) const
|
QString CIndexVariantMap::convertToQString(bool i18n) const
|
||||||
{
|
{
|
||||||
if (this->isEmpty()) return "{}";
|
if (this->isEmpty()) return QString("{wildcard: %1}").arg(this->m_wildcard ? "true" : "false");
|
||||||
QString s;
|
QString s;
|
||||||
foreach(int index, this->m_values.keys())
|
foreach(int index, this->m_values.keys())
|
||||||
{
|
{
|
||||||
QVariant qv = this->m_values.value(index);
|
QVariant qv = this->m_values.value(index);
|
||||||
s.isEmpty() ? s.append("{") : s.append(", ");
|
|
||||||
|
s.isEmpty() ?
|
||||||
|
s.append("{wildcard: ").append(this->m_wildcard ? "true" : "false").append(" ") :
|
||||||
|
s.append(", ");
|
||||||
|
|
||||||
s.append('{').append(QString::number(index)).append(": ");
|
s.append('{').append(QString::number(index)).append(": ");
|
||||||
s.append("(").append(QString::number(qv.userType())).append(") ");
|
s.append("(").append(QString::number(qv.userType())).append(") ");
|
||||||
QString qvs = BlackMisc::qVariantToString(qv, i18n);
|
QString qvs = BlackMisc::qVariantToString(qv, i18n);
|
||||||
@@ -155,8 +159,10 @@ namespace BlackMisc
|
|||||||
*/
|
*/
|
||||||
uint CIndexVariantMap::getValueHash() const
|
uint CIndexVariantMap::getValueHash() const
|
||||||
{
|
{
|
||||||
return qHash(this);
|
// there is no hash for map, so I use this workaround here
|
||||||
|
const QString s = this->toQString(false);
|
||||||
|
QList<uint> h;
|
||||||
|
h << qHash(s);
|
||||||
|
return BlackMisc::calculateHash(h, "CIndexVariantMap");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ namespace BlackMisc
|
|||||||
//! \brief Wildcard, only relevant when used in search
|
//! \brief Wildcard, only relevant when used in search
|
||||||
bool isWildcard() const { return this->m_wildcard; }
|
bool isWildcard() const { return this->m_wildcard; }
|
||||||
|
|
||||||
|
//! \brief Wildcard, only relevant when used in search
|
||||||
|
void setWildcard(bool wildcard) { this->m_wildcard = wildcard; }
|
||||||
|
|
||||||
//! clear
|
//! clear
|
||||||
void clear() { this->m_values.clear(); }
|
void clear() { this->m_values.clear(); }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user