diff --git a/libnymea-app-core/wifisetup/wirelesssetupmanager.cpp b/libnymea-app-core/wifisetup/wirelesssetupmanager.cpp index ecfe31ca..ddeb07e1 100644 --- a/libnymea-app-core/wifisetup/wirelesssetupmanager.cpp +++ b/libnymea-app-core/wifisetup/wirelesssetupmanager.cpp @@ -140,7 +140,7 @@ void WirelessSetupManager::loadNetworks() m_readingResponse = true; m_inputDataStream.clear(); - setStatusText("WifiSetupManager: Loading wifi network list..."); + setStatusText("Loading wifi network list..."); m_working = true; emit workingChanged(); @@ -167,7 +167,7 @@ void WirelessSetupManager::loadCurrentConnection() m_readingResponse = false; m_inputDataStream.clear(); - setStatusText("WifiSetupManager: Loading current connection data"); + setStatusText("Loading current connection data"); m_working = true; emit workingChanged(); @@ -191,7 +191,7 @@ void WirelessSetupManager::performWifiScan() return; } - setStatusText("WifiSetupManager: Perform refresh..."); + setStatusText("Perform refresh..."); m_working = true; emit workingChanged(); diff --git a/nymea-app/ui/connection/wifisetup/BluetoothDiscoveryPage.qml b/nymea-app/ui/connection/wifisetup/BluetoothDiscoveryPage.qml index e9a3ac53..37022d68 100644 --- a/nymea-app/ui/connection/wifisetup/BluetoothDiscoveryPage.qml +++ b/nymea-app/ui/connection/wifisetup/BluetoothDiscoveryPage.qml @@ -22,26 +22,35 @@ Page { id: networkManager } - function setupDevice(btDeviceInfo) { + function connectDevice(btDeviceInfo) { networkManager.bluetoothDeviceInfo = btDeviceInfo networkManager.connectDevice(); - pageStack.push(connectingPageComponent) + print("**** connecting") + pageStack.push(connectingPageComponent, {deviceName: btDeviceInfo.name}) + } + + function setupDevice() { + pageStack.pop(root, StackView.Immediate) + if (networkManager.manager.currentConnection) { + print("***** pushing WirelessSetupPage with networkManager:", networkManager) + var page = pageStack.push(Qt.resolvedUrl("WirelessSetupPage.qml"), { networkManagerController: networkManager, nymeaDiscovery: root.nymeaDiscovery } ) + page.done.connect(function() { + pageStack.pop(root, StackView.Immediate); + pageStack.pop(); + }) + } else { + var page = pageStack.push(Qt.resolvedUrl("ConnectWiFiPage.qml"), { networkManagerController: networkManager } ) + page.connected.connect(function() { + setupDevice(); + }) + } } Connections { target: networkManager.manager onInitializedChanged: { if (networkManager.manager.initialized) { - if (networkManager.manager.currentConnection) { - print("***** pushing WirelessSetupPage with networkManager:", networkManager) - pageStack.replace(Qt.resolvedUrl("WirelessSetupPage.qml"), { networkManagerController: networkManager, nymeaDiscovery: root.nymeaDiscovery } ) - } else { - var page = pageStack.replace(Qt.resolvedUrl("ConnectWiFiPage.qml"), { networkManagerController: networkManager } ) - page.connected.connect(function() { - print("connected signal received") - pageStack.replace(page, Qt.resolvedUrl("WirelessSetupPage.qml", {NetworkManagerController: networkManager, nymeaDiscovery: root.nymeaDiscovery})) - }) - } + setupDevice() } else { pageStack.pop(root) } @@ -85,7 +94,7 @@ Page { subText: model.address onClicked: { - root.setupDevice(bluetoothDiscovery.deviceInfos.get(index)) + root.connectDevice(bluetoothDiscovery.deviceInfos.get(index)) } } } @@ -219,6 +228,8 @@ Page { onBackPressed: pageStack.pop() } + property string deviceName + ColumnLayout { anchors { left: parent.left; right: parent.right; verticalCenter: parent.verticalCenter; margins: app.margins } spacing: app.margins @@ -227,21 +238,11 @@ Page { Layout.alignment: Qt.AlignHCenter running: true } - - Label { - id: workingMessage - Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter - text: networkManager.manager.statusText - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - } - Label { id: initializingMessage Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter - text: networkManager.manager.initializing ? qsTr("Initializing services...") : "" + text: qsTr("Connecting to %1").arg(connectingPage.deviceName) horizontalAlignment: Text.AlignHCenter wrapMode: Text.WordWrap } diff --git a/nymea-app/ui/connection/wifisetup/WirelessSetupPage.qml b/nymea-app/ui/connection/wifisetup/WirelessSetupPage.qml index 5e45abd6..321d5b0c 100644 --- a/nymea-app/ui/connection/wifisetup/WirelessSetupPage.qml +++ b/nymea-app/ui/connection/wifisetup/WirelessSetupPage.qml @@ -10,6 +10,8 @@ Page { property var networkManagerController: null property var nymeaDiscovery: null + signal done() + header: GuhHeader { text: qsTr("Wireless network setup") onBackPressed: { @@ -101,6 +103,18 @@ Page { elide: Text.ElideRight } + RowLayout { + Layout.leftMargin: app.margins; Layout.rightMargin: app.margins + visible: !connectButton.visible + spacing: app.margins + Label { + Layout.fillWidth: true + text: qsTr("Waiting for the %1 box to appear in your network.").arg(app.systemName) + wrapMode: Text.WordWrap + } + BusyIndicator { } + } + Button { id: connectButton visible: url != "" @@ -130,8 +144,7 @@ Page { Layout.leftMargin: app.margins; Layout.rightMargin: app.margins text: qsTr("Close wireless setup") onClicked: { - pageStack.pop() - pageStack.pop() + root.done() } } }