Item: propagate override flag via item update requests
This commit is contained in:
parent
51193a5d0b
commit
da50a89866
3 changed files with 33 additions and 7 deletions
|
|
@ -67,6 +67,8 @@ void ItemData::storeWithChanges(QJsonObject& json, const ItemFieldChanges& chang
|
|||
valueNamesArray.append(name);
|
||||
json["ValueNames"] = valueNamesArray;
|
||||
}
|
||||
if(changes.override)
|
||||
json["override"] = override_;
|
||||
}
|
||||
|
||||
void ItemData::load(const QJsonObject &json, const bool preserve)
|
||||
|
|
@ -107,6 +109,11 @@ ItemFieldChanges ItemData::loadWithChanges(const QJsonObject& json, const bool p
|
|||
valueNames_.push_back(valueNamesArray[i].toString());
|
||||
changes.valueNames = true;
|
||||
}
|
||||
if(json.contains("override"))
|
||||
{
|
||||
override_ = json["override"].toBool(false);
|
||||
changes.override = true;
|
||||
}
|
||||
itemId_ = static_cast<uint32_t>(json["ItemId"].toDouble(0));
|
||||
}
|
||||
return changes;
|
||||
|
|
@ -142,6 +149,8 @@ bool ItemData::hasChanged(const ItemData& other, const ItemFieldChanges& changes
|
|||
return true;
|
||||
if(changes.valueNames && other.getValueNames() != getValueNames())
|
||||
return true;
|
||||
if(changes.override && other.getOverride() != getOverride())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -197,6 +206,16 @@ QString ItemData::indexToValueName(int index) const
|
|||
return QString();
|
||||
}
|
||||
|
||||
bool ItemData::getOverride() const
|
||||
{
|
||||
return override_;
|
||||
}
|
||||
|
||||
void ItemData::setOverride(bool overrideVal)
|
||||
{
|
||||
override_ = overrideVal;
|
||||
}
|
||||
|
||||
//item
|
||||
|
||||
Item::Item(uint32_t itemIdIn, QString name, uint8_t value, QObject *parent): QObject(parent), ItemData (itemIdIn, name,
|
||||
|
|
@ -217,7 +236,6 @@ Item::~Item()
|
|||
void Item::store(QJsonObject &json)
|
||||
{
|
||||
ItemData::store(json);
|
||||
json["override"] = override_;
|
||||
if(!actors_.empty())
|
||||
{
|
||||
QJsonArray actorsArray;
|
||||
|
|
@ -237,7 +255,6 @@ void Item::store(QJsonObject &json)
|
|||
void Item::load(const QJsonObject &json, const bool preserve)
|
||||
{
|
||||
ItemData::load(json, preserve);
|
||||
override_ = json["override"].toBool(false);
|
||||
if(json.contains("Actors"))
|
||||
{
|
||||
const QJsonArray actorsArray(json["Actors"].toArray(QJsonArray()));
|
||||
|
|
@ -306,6 +323,8 @@ void Item::requestUpdate(ItemUpdateRequest update)
|
|||
}
|
||||
if(update.changes.valueNames)
|
||||
valueNames_ = update.payload.getValueNames();
|
||||
if(update.changes.override)
|
||||
override_ = update.payload.getOverride();
|
||||
update.payload = *this;
|
||||
updated(update);
|
||||
}
|
||||
|
|
@ -351,12 +370,12 @@ bool Item::removeActor(std::shared_ptr<Actor> actor)
|
|||
|
||||
void Item::setOverride(const bool in)
|
||||
{
|
||||
override_ = in;
|
||||
ItemData::setOverride(in);
|
||||
}
|
||||
|
||||
bool Item::getOverride()
|
||||
{
|
||||
return override_;
|
||||
return ItemData::getOverride();
|
||||
}
|
||||
|
||||
void Item::removeAllActors()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue