Add a loading spinner while loading zigbee networks
This commit is contained in:
parent
3882f367ff
commit
8ebeff8a94
@ -78,6 +78,11 @@ Engine *ZigbeeManager::engine() const
|
|||||||
return m_engine;
|
return m_engine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ZigbeeManager::fetchingData() const
|
||||||
|
{
|
||||||
|
return m_fetchingData;
|
||||||
|
}
|
||||||
|
|
||||||
QStringList ZigbeeManager::availableBackends() const
|
QStringList ZigbeeManager::availableBackends() const
|
||||||
{
|
{
|
||||||
return m_availableBackends;
|
return m_availableBackends;
|
||||||
@ -99,7 +104,6 @@ int ZigbeeManager::addNetwork(const QString &serialPort, uint baudRate, const QS
|
|||||||
params.insert("serialPort", serialPort);
|
params.insert("serialPort", serialPort);
|
||||||
params.insert("baudRate", baudRate);
|
params.insert("baudRate", baudRate);
|
||||||
params.insert("backend", backend);
|
params.insert("backend", backend);
|
||||||
qWarning() << "************ channel mask!" << channels;
|
|
||||||
if (m_engine->jsonRpcClient()->ensureServerVersion("5.8")) {
|
if (m_engine->jsonRpcClient()->ensureServerVersion("5.8")) {
|
||||||
params.insert("channelMask", static_cast<uint>(channels));
|
params.insert("channelMask", static_cast<uint>(channels));
|
||||||
}
|
}
|
||||||
@ -148,6 +152,9 @@ int ZigbeeManager::removeNode(const QUuid &networkUuid, const QString &ieeeAddre
|
|||||||
|
|
||||||
void ZigbeeManager::init()
|
void ZigbeeManager::init()
|
||||||
{
|
{
|
||||||
|
m_fetchingData = true;
|
||||||
|
emit fetchingDataChanged();
|
||||||
|
|
||||||
m_adapters->clear();
|
m_adapters->clear();
|
||||||
m_networks->clear();
|
m_networks->clear();
|
||||||
m_availableBackends.clear();
|
m_availableBackends.clear();
|
||||||
@ -193,6 +200,10 @@ void ZigbeeManager::getNetworksResponse(int commandId, const QVariantMap ¶ms
|
|||||||
|
|
||||||
// Get nodes from this network
|
// Get nodes from this network
|
||||||
getNodes(network->networkUuid());
|
getNodes(network->networkUuid());
|
||||||
|
|
||||||
|
// In theory this should only change after nodes have been fetched... but this will do for now...
|
||||||
|
m_fetchingData = false;
|
||||||
|
emit fetchingDataChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -46,6 +46,7 @@ class ZigbeeManager : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(Engine* engine READ engine WRITE setEngine NOTIFY engineChanged)
|
Q_PROPERTY(Engine* engine READ engine WRITE setEngine NOTIFY engineChanged)
|
||||||
|
Q_PROPERTY(bool fetchingData READ fetchingData NOTIFY fetchingDataChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QStringList availableBackends READ availableBackends NOTIFY availableBackendsChanged)
|
Q_PROPERTY(QStringList availableBackends READ availableBackends NOTIFY availableBackendsChanged)
|
||||||
Q_PROPERTY(ZigbeeAdapters *adapters READ adapters CONSTANT)
|
Q_PROPERTY(ZigbeeAdapters *adapters READ adapters CONSTANT)
|
||||||
@ -81,6 +82,8 @@ public:
|
|||||||
void setEngine(Engine *engine);
|
void setEngine(Engine *engine);
|
||||||
Engine *engine() const;
|
Engine *engine() const;
|
||||||
|
|
||||||
|
bool fetchingData() const;
|
||||||
|
|
||||||
QStringList availableBackends() const;
|
QStringList availableBackends() const;
|
||||||
ZigbeeAdapters *adapters() const;
|
ZigbeeAdapters *adapters() const;
|
||||||
ZigbeeNetworks *networks() const;
|
ZigbeeNetworks *networks() const;
|
||||||
@ -95,6 +98,7 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void engineChanged();
|
void engineChanged();
|
||||||
|
void fetchingDataChanged();
|
||||||
void availableBackendsChanged();
|
void availableBackendsChanged();
|
||||||
void addNetworkReply(int commandId, const QString &error, const QUuid &networkUuid);
|
void addNetworkReply(int commandId, const QString &error, const QUuid &networkUuid);
|
||||||
void removeNodeReply(int commandId, const QString &error);
|
void removeNodeReply(int commandId, const QString &error);
|
||||||
@ -118,6 +122,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Engine* m_engine = nullptr;
|
Engine* m_engine = nullptr;
|
||||||
|
bool m_fetchingData = false;
|
||||||
QStringList m_availableBackends;
|
QStringList m_availableBackends;
|
||||||
ZigbeeAdapters *m_adapters = nullptr;
|
ZigbeeAdapters *m_adapters = nullptr;
|
||||||
ZigbeeNetworks *m_networks = nullptr;
|
ZigbeeNetworks *m_networks = nullptr;
|
||||||
|
|||||||
@ -61,12 +61,20 @@ SettingsPageBase {
|
|||||||
engine: _engine
|
engine: _engine
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: root.height
|
Layout.preferredHeight: root.height
|
||||||
visible: zigbeeManager.networks.count == 0
|
visible: zigbeeManager.fetchingData || zigbeeManager.networks.count == 0
|
||||||
|
|
||||||
|
BusyIndicator {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
visible: zigbeeManager.fetchingData
|
||||||
|
running: visible
|
||||||
|
}
|
||||||
|
|
||||||
EmptyViewPlaceholder {
|
EmptyViewPlaceholder {
|
||||||
|
visible: !zigbeeManager.fetchingData && zigbeeManager.networks.count == 0
|
||||||
width: parent.width - app.margins * 2
|
width: parent.width - app.margins * 2
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
title: qsTr("ZigBee")
|
title: qsTr("ZigBee")
|
||||||
|
|||||||
Reference in New Issue
Block a user