Add a loading spinner while loading zigbee networks
parent
3882f367ff
commit
8ebeff8a94
|
|
@ -78,6 +78,11 @@ Engine *ZigbeeManager::engine() const
|
|||
return m_engine;
|
||||
}
|
||||
|
||||
bool ZigbeeManager::fetchingData() const
|
||||
{
|
||||
return m_fetchingData;
|
||||
}
|
||||
|
||||
QStringList ZigbeeManager::availableBackends() const
|
||||
{
|
||||
return m_availableBackends;
|
||||
|
|
@ -99,7 +104,6 @@ int ZigbeeManager::addNetwork(const QString &serialPort, uint baudRate, const QS
|
|||
params.insert("serialPort", serialPort);
|
||||
params.insert("baudRate", baudRate);
|
||||
params.insert("backend", backend);
|
||||
qWarning() << "************ channel mask!" << channels;
|
||||
if (m_engine->jsonRpcClient()->ensureServerVersion("5.8")) {
|
||||
params.insert("channelMask", static_cast<uint>(channels));
|
||||
}
|
||||
|
|
@ -148,6 +152,9 @@ int ZigbeeManager::removeNode(const QUuid &networkUuid, const QString &ieeeAddre
|
|||
|
||||
void ZigbeeManager::init()
|
||||
{
|
||||
m_fetchingData = true;
|
||||
emit fetchingDataChanged();
|
||||
|
||||
m_adapters->clear();
|
||||
m_networks->clear();
|
||||
m_availableBackends.clear();
|
||||
|
|
@ -193,6 +200,10 @@ void ZigbeeManager::getNetworksResponse(int commandId, const QVariantMap ¶ms
|
|||
|
||||
// Get nodes from this network
|
||||
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_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(ZigbeeAdapters *adapters READ adapters CONSTANT)
|
||||
|
|
@ -81,6 +82,8 @@ public:
|
|||
void setEngine(Engine *engine);
|
||||
Engine *engine() const;
|
||||
|
||||
bool fetchingData() const;
|
||||
|
||||
QStringList availableBackends() const;
|
||||
ZigbeeAdapters *adapters() const;
|
||||
ZigbeeNetworks *networks() const;
|
||||
|
|
@ -95,6 +98,7 @@ public:
|
|||
|
||||
signals:
|
||||
void engineChanged();
|
||||
void fetchingDataChanged();
|
||||
void availableBackendsChanged();
|
||||
void addNetworkReply(int commandId, const QString &error, const QUuid &networkUuid);
|
||||
void removeNodeReply(int commandId, const QString &error);
|
||||
|
|
@ -118,6 +122,7 @@ private:
|
|||
|
||||
private:
|
||||
Engine* m_engine = nullptr;
|
||||
bool m_fetchingData = false;
|
||||
QStringList m_availableBackends;
|
||||
ZigbeeAdapters *m_adapters = nullptr;
|
||||
ZigbeeNetworks *m_networks = nullptr;
|
||||
|
|
|
|||
|
|
@ -61,12 +61,20 @@ SettingsPageBase {
|
|||
engine: _engine
|
||||
}
|
||||
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
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 {
|
||||
visible: !zigbeeManager.fetchingData && zigbeeManager.networks.count == 0
|
||||
width: parent.width - app.margins * 2
|
||||
anchors.centerIn: parent
|
||||
title: qsTr("ZigBee")
|
||||
|
|
|
|||
Loading…
Reference in New Issue