Add setupDisplayMessage
This commit is contained in:
parent
f2fe43573d
commit
b18dcc5b00
@ -84,6 +84,8 @@ QVariant Devices::data(const QModelIndex &index, int role) const
|
||||
return device->parentDeviceId().toString();
|
||||
case RoleSetupStatus:
|
||||
return device->setupStatus();
|
||||
case RoleSetupDisplayMessage:
|
||||
return device->setupDisplayMessage();
|
||||
case RoleInterfaces:
|
||||
return device->deviceClass()->interfaces();
|
||||
case RoleBaseInterface:
|
||||
@ -107,7 +109,7 @@ void Devices::addDevice(Device *device)
|
||||
connect(device, &Device::setupStatusChanged, this, [device, this]() {
|
||||
int idx = m_devices.indexOf(device);
|
||||
if (idx < 0) return;
|
||||
emit dataChanged(index(idx), index(idx), {RoleSetupStatus});
|
||||
emit dataChanged(index(idx), index(idx), {RoleSetupStatus, RoleSetupDisplayMessage});
|
||||
});
|
||||
connect(device->states(), &States::dataChanged, this, [device, this]() {
|
||||
int idx = m_devices.indexOf(device);
|
||||
@ -145,6 +147,7 @@ QHash<int, QByteArray> Devices::roleNames() const
|
||||
roles[RoleDeviceClass] = "deviceClassId";
|
||||
roles[RoleParentDeviceId] = "parentDeviceId";
|
||||
roles[RoleSetupStatus] = "setupStatus";
|
||||
roles[RoleSetupDisplayMessage] = "setupDisplayMessage";
|
||||
roles[RoleInterfaces] = "interfaces";
|
||||
roles[RoleBaseInterface] = "baseInterface";
|
||||
return roles;
|
||||
|
||||
@ -47,6 +47,7 @@ public:
|
||||
RoleParentDeviceId,
|
||||
RoleDeviceClass,
|
||||
RoleSetupStatus,
|
||||
RoleSetupDisplayMessage,
|
||||
RoleInterfaces,
|
||||
RoleBaseInterface
|
||||
};
|
||||
|
||||
@ -243,9 +243,10 @@ Device* JsonTypes::unpackDevice(const QVariantMap &deviceMap, DeviceClasses *dev
|
||||
// As of JSONRPC 4.2 setupComplete is deprecated and setupStatus is new
|
||||
if (deviceMap.contains("setupStatus")) {
|
||||
QMetaEnum setupStatusEnum = QMetaEnum::fromType<Device::DeviceSetupStatus>();
|
||||
device->setSetupStatus(static_cast<Device::DeviceSetupStatus>(setupStatusEnum.keyToValue(deviceMap.value("setupStatus").toByteArray().data())));
|
||||
device->setSetupStatus(static_cast<Device::DeviceSetupStatus>(setupStatusEnum.keyToValue(deviceMap.value("setupStatus").toByteArray().data())),
|
||||
deviceMap.value("setupDisplayMessage").toString());
|
||||
} else {
|
||||
device->setSetupStatus(deviceMap.value("setupComplete").toBool() ? Device::DeviceSetupStatusComplete : Device::DeviceSetupStatusNone);
|
||||
device->setSetupStatus(deviceMap.value("setupComplete").toBool() ? Device::DeviceSetupStatusComplete : Device::DeviceSetupStatusNone, QString());
|
||||
}
|
||||
|
||||
Params *params = device->params();
|
||||
|
||||
@ -81,10 +81,16 @@ Device::DeviceSetupStatus Device::setupStatus() const
|
||||
return m_setupStatus;
|
||||
}
|
||||
|
||||
void Device::setSetupStatus(Device::DeviceSetupStatus setupStatus)
|
||||
QString Device::setupDisplayMessage() const
|
||||
{
|
||||
if (m_setupStatus != setupStatus) {
|
||||
return m_setupDisplayMessage;
|
||||
}
|
||||
|
||||
void Device::setSetupStatus(Device::DeviceSetupStatus setupStatus, const QString &displayMessage)
|
||||
{
|
||||
if (m_setupStatus != setupStatus || m_setupDisplayMessage != displayMessage) {
|
||||
m_setupStatus = setupStatus;
|
||||
m_setupDisplayMessage = displayMessage;
|
||||
emit setupStatusChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@ class Device : public QObject
|
||||
Q_PROPERTY(bool isChild READ isChild CONSTANT)
|
||||
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
|
||||
Q_PROPERTY(DeviceSetupStatus setupStatus READ setupStatus NOTIFY setupStatusChanged)
|
||||
Q_PROPERTY(QString setupDisplayMessage READ setupDisplayMessage NOTIFY setupStatusChanged)
|
||||
Q_PROPERTY(Params *params READ params NOTIFY paramsChanged)
|
||||
Q_PROPERTY(Params *settings READ settings NOTIFY settingsChanged)
|
||||
Q_PROPERTY(States *states READ states NOTIFY statesChanged)
|
||||
@ -76,7 +77,8 @@ public:
|
||||
bool isChild() const;
|
||||
|
||||
DeviceSetupStatus setupStatus() const;
|
||||
void setSetupStatus(DeviceSetupStatus setupStatus);
|
||||
QString setupDisplayMessage() const;
|
||||
void setSetupStatus(DeviceSetupStatus setupStatus, const QString &displayMessage);
|
||||
|
||||
Params *params() const;
|
||||
void setParams(Params *params);
|
||||
@ -109,6 +111,7 @@ private:
|
||||
QUuid m_id;
|
||||
QUuid m_parentDeviceId;
|
||||
DeviceSetupStatus m_setupStatus;
|
||||
QString m_setupDisplayMessage;
|
||||
Params *m_params = nullptr;
|
||||
Params *m_settings = nullptr;
|
||||
States *m_states = nullptr;
|
||||
|
||||
@ -240,7 +240,7 @@ Page {
|
||||
text: infoPane.setupInProgress ?
|
||||
qsTr("Thing is being set up...")
|
||||
: infoPane.setupFailure ?
|
||||
qsTr("Thing setup failed!")
|
||||
(root.device.setupDisplayMessage.length > 0 ? root.device.setupDisplayMessage : qsTr("Thing setup failed!"))
|
||||
: (infoPane.connectedState !== null && infoPane.connectedState.value === false) ?
|
||||
qsTr("Thing is not connected!")
|
||||
: qsTr("Thing runs out of battery!")
|
||||
|
||||
Reference in New Issue
Block a user