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)) { if (!roles.contains(QTOZW_UserRoles::ModelDataChanged)) {
return; 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 */ /* get the Node Number */
quint64 vidKey = this->m_valueModel->data(topLeft.siblingAtColumn(QTOZW_ValueIds::ValueIdColumns::ValueIDKey), Qt::DisplayRole).value<quint64>(); 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 { try {
OpenZWave::ValueID vid(this->homeId(), vidKey); OpenZWave::ValueID vid(this->homeId(), vidKey);
switch (static_cast<OpenZWave::ValueID::ValueType>(vid.GetType())) { 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())) { switch (static_cast<ValueIdColumns>(index.column())) {
case Value: case Value:
if (this->m_valueData.at(index.row())[static_cast<ValueIdColumns>(index.column())] != 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; QVector<int> roles;
roles << Qt::DisplayRole << QTOZW_UserRoles::ModelDataChanged; roles << Qt::DisplayRole << QTOZW_UserRoles::ModelDataChanged;
this->dataChanged(index, index, roles); this->dataChanged(index, index, roles);
} }
break; break;
default: default:
qCWarning(valueModel) << "got a setData for a Column other than Value. Ignoring" << index.column();
return false; return false;
} }
return true; return true;

View file

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

View file

@ -236,7 +236,7 @@ bool mqttValueIDModel::encodeValue(rapidjson::Document &value, quint64 vidKey) {
} }
bool mqttValueIDModel::setData(quint64 vidKey, QVariant data) { 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"); 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>(); QBitArray flags = this->getValueData(vidKey, QTOZW_ValueIds::ValueIdColumns::ValueFlags).value<QBitArray>();
if (flags[QTOZW_ValueIds::ValueIDFlags::ReadOnly] == true) { if (flags[QTOZW_ValueIds::ValueIDFlags::ReadOnly] == true) {
return this->sendSimpleStatus(false, "ValueID is Read Only"); 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?"; qCWarning(ozwmcsv) << "Data is undefined for setValue... Json Conversion Failed?";
return this->sendSimpleStatus(false, "JSON Conversion Failed"); return this->sendSimpleStatus(false, "JSON Conversion Failed");
} }
qCInfo(ozwmcsv) << "Setting " << vidKey << " to Value " << data;
return this->sendSimpleStatus(this->setValue(vidKey, data)); return this->sendSimpleStatus(this->setValue(vidKey, data));
} }