mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +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
|
||||
{
|
||||
if (this->isEmpty()) return "{}";
|
||||
if (this->isEmpty()) return QString("{wildcard: %1}").arg(this->m_wildcard ? "true" : "false");
|
||||
QString s;
|
||||
foreach(int index, this->m_values.keys())
|
||||
{
|
||||
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(qv.userType())).append(") ");
|
||||
QString qvs = BlackMisc::qVariantToString(qv, i18n);
|
||||
@@ -155,8 +159,10 @@ namespace BlackMisc
|
||||
*/
|
||||
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
|
||||
|
||||
@@ -61,6 +61,9 @@ namespace BlackMisc
|
||||
//! \brief Wildcard, only relevant when used in search
|
||||
bool isWildcard() const { return this->m_wildcard; }
|
||||
|
||||
//! \brief Wildcard, only relevant when used in search
|
||||
void setWildcard(bool wildcard) { this->m_wildcard = wildcard; }
|
||||
|
||||
//! clear
|
||||
void clear() { this->m_values.clear(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user