1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-388 allow to bulk set data on UAVO without emitting update events

this addresses some uavo synchronous update calls issues where update requests were issued twice
This commit is contained in:
Philippe Renon 2016-08-22 23:14:15 +02:00 committed by Laurent Lalanne
parent 11cb9f7b8d
commit daba66d32f
2 changed files with 7 additions and 5 deletions

View File

@ -102,9 +102,9 @@ $(NAME)::DataFields $(NAME)::getData()
}
/**
* Set the object data fields
* Set the object data fields and (optionaly) emit object update events
*/
void $(NAME)::setData(const DataFields& data)
void $(NAME)::setData(const DataFields& data, bool emitUpdateEvents)
{
QMutexLocker locker(mutex);
// Get metadata
@ -112,8 +112,10 @@ void $(NAME)::setData(const DataFields& data)
// Update object if the access mode permits
if (UAVObject::GetGcsAccess(mdata) == ACCESS_READWRITE) {
this->data_ = data;
emit objectUpdatedAuto(this); // trigger object updated event
emit objectUpdated(this);
if (emitUpdateEvents) {
emit objectUpdatedAuto(this); // trigger object updated event
emit objectUpdated(this);
}
}
}

View File

@ -77,7 +77,7 @@ $(DATAFIELDINFO)
$(NAME)();
DataFields getData();
void setData(const DataFields& data);
void setData(const DataFields& data, bool emitUpdateEvents = true);
Metadata getDefaultMetadata();
UAVDataObject* clone(quint32 instID);
UAVDataObject* dirtyClone();