Fix basic setValue calls

This commit is contained in:
Justin Hammond 2019-12-27 13:00:52 +08:00
parent e0f7cb9410
commit b6fdb56eff
5 changed files with 11 additions and 6 deletions

View file

@ -1660,9 +1660,11 @@ void QTOZWManager_Internal::pvt_valueModelDataChanged(const QModelIndex &topLeft
if (!roles.contains(QTOZW_UserRoles::ModelDataChanged)) {
return;
}
qCDebug(valueModel) << "valueModel Changed!" << static_cast<QTOZW_ValueIds::ValueIdColumns>(topLeft.column()) << ": "<< topLeft.data();
qCDebug(valueModel) << "valueModel Changed!" << static_cast<QTOZW_ValueIds::ValueIdColumns>(topLeft.column())<< "-" << topLeft.row() << ": "<< topLeft.data();
/* get the Node Number */
quint64 vidKey = this->m_valueModel->data(topLeft.siblingAtColumn(QTOZW_ValueIds::ValueIdColumns::ValueIDKey), Qt::DisplayRole).value<quint64>();
QVariant data = this->m_valueModel->data(topLeft.siblingAtColumn(QTOZW_ValueIds::ValueIdColumns::Value), Qt::DisplayRole);
qCDebug(valueModel) << "valueModel Changed! vidKey:" << vidKey << data;
try {
OpenZWave::ValueID vid(this->homeId(), vidKey);
switch (static_cast<OpenZWave::ValueID::ValueType>(vid.GetType())) {

View file

@ -178,13 +178,15 @@ bool QTOZW_ValueIds::setData(const QModelIndex &index, const QVariant &value, in
switch (static_cast<ValueIdColumns>(index.column())) {
case Value:
if (this->m_valueData.at(index.row())[static_cast<ValueIdColumns>(index.column())] != value) {
this->m_valueData.value(index.row())[static_cast<ValueIdColumns>(index.column())] = value;
qCDebug(valueModel) << "setData Called for Row" << index.row() << " With Value" << value;
this->m_valueData[index.row()][static_cast<ValueIdColumns>(index.column())] = value;
QVector<int> roles;
roles << Qt::DisplayRole << QTOZW_UserRoles::ModelDataChanged;
this->dataChanged(index, index, roles);
}
break;
default:
qCWarning(valueModel) << "got a setData for a Column other than Value. Ignoring" << index.column();
return false;
}
return true;

View file

@ -109,7 +109,7 @@ int main(int argc, char *argv[])
"qt.remoteobjects.io.debug=true\n"
"default.debug=true");
#else
QLoggingCategory::setFilterRules("default.debug=true");
QLoggingCategory::setFilterRules("*.debug=true");
#endif
QStringList PossibleDBPaths;

View file

@ -236,7 +236,7 @@ bool mqttValueIDModel::encodeValue(rapidjson::Document &value, quint64 vidKey) {
}
bool mqttValueIDModel::setData(quint64 vidKey, QVariant data) {
return QTOZW_ValueIds::setData(this->index(this->getValueRow(vidKey), QTOZW_ValueIds::ValueIdColumns::Value), data, Qt::EditRole);
return QTOZW_ValueIds::setData(this->index(this->getValueRow(vidKey), QTOZW_ValueIds::ValueIdColumns::Value), data);
}

View file

@ -21,7 +21,7 @@ bool MqttCommand_SetValue::processMessage(rapidjson::Document &msg) {
return this->sendSimpleStatus(false, "Missing Field Value");
}
quint64 vidKey = msg["ValueIdKey"].GetUint();
quint64 vidKey = msg["ValueIDKey"].GetUint();
QBitArray flags = this->getValueData(vidKey, QTOZW_ValueIds::ValueIdColumns::ValueFlags).value<QBitArray>();
if (flags[QTOZW_ValueIds::ValueIDFlags::ReadOnly] == true) {
return this->sendSimpleStatus(false, "ValueID is Read Only");
@ -129,5 +129,6 @@ bool MqttCommand_SetValue::processMessage(rapidjson::Document &msg) {
qCWarning(ozwmcsv) << "Data is undefined for setValue... Json Conversion Failed?";
return this->sendSimpleStatus(false, "JSON Conversion Failed");
}
qCInfo(ozwmcsv) << "Setting " << vidKey << " to Value " << data;
return this->sendSimpleStatus(this->setValue(vidKey, data));
}