check if new value was inserted

This commit is contained in:
RickyRister 2026-08-10 22:14:29 -07:00
parent 9716f7f2c3
commit 56ebaed8a4
3 changed files with 14 additions and 3 deletions

View file

@ -25,7 +25,11 @@ const QHash<QString, QString> &CardInfo::getPropertiesHash() const
void CardInfo::setProperty(const QString &_name, const QString &_value) void CardInfo::setProperty(const QString &_name, const QString &_value)
{ {
properties.insert(_name, _value); bool changed = properties.insert(_name, _value);
if (!changed) {
return;
}
emit cardInfoChanged(smartThis); emit cardInfoChanged(smartThis);
} }

View file

@ -76,10 +76,16 @@ QString LazyPropertiesHash::value(const QString &key) const
return properties.value(key); return properties.value(key);
} }
void LazyPropertiesHash::insert(const QString &key, const QString &value) bool LazyPropertiesHash::insert(const QString &key, const QString &value)
{ {
ensureMaterialized(); ensureMaterialized();
if (value == properties.value(key)) {
return false;
}
properties.insert(key, value); properties.insert(key, value);
return true;
} }
const QHash<QString, QString> &LazyPropertiesHash::getProperties() const const QHash<QString, QString> &LazyPropertiesHash::getProperties() const

View file

@ -60,8 +60,9 @@ public:
* @brief Inserts a value into the materialized properties hash * @brief Inserts a value into the materialized properties hash
* @param key The key * @param key The key
* @param value The value to insert * @param value The value to insert
* @return True if a new value was inserted; false if the new value is the same as the existing value
*/ */
void insert(const QString &key, const QString &value); bool insert(const QString &key, const QString &value);
/** /**
* @brief Gets a view of the materialized properties hash. * @brief Gets a view of the materialized properties hash.