From a2272f9699a3c032339be59749659d8533e6c980 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 6 Feb 2019 12:07:00 +0100 Subject: [PATCH] bring back demo mode --- libnymea-app-core/connection/nymeaconnection.cpp | 4 ++++ libnymea-app-core/connection/nymeahost.cpp | 4 +--- libnymea-app-core/connection/nymeahosts.cpp | 12 ++++++++++++ libnymea-app-core/connection/nymeahosts.h | 1 + nymea-app/ui/connection/ConnectPage.qml | 6 ++++-- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/libnymea-app-core/connection/nymeaconnection.cpp b/libnymea-app-core/connection/nymeaconnection.cpp index 717e4ae3..2c3502d6 100644 --- a/libnymea-app-core/connection/nymeaconnection.cpp +++ b/libnymea-app-core/connection/nymeaconnection.cpp @@ -428,6 +428,8 @@ void NymeaConnection::connectInternal(NymeaHost *host) if (lanConnection) { qDebug() << "Best candidate LAN connection:" << lanConnection->url(); connectInternal(lanConnection); + } else { + qDebug() << "No available LAN connection to" << host->name(); } } @@ -436,6 +438,8 @@ void NymeaConnection::connectInternal(NymeaHost *host) if (wanConnection) { qDebug() << "Best candidate WAN connection:" << wanConnection->url(); connectInternal(wanConnection); + } else { + qDebug() << "No available WAN connection to" << host->name(); } } } diff --git a/libnymea-app-core/connection/nymeahost.cpp b/libnymea-app-core/connection/nymeahost.cpp index 1b920e6a..3c0b4f00 100644 --- a/libnymea-app-core/connection/nymeahost.cpp +++ b/libnymea-app-core/connection/nymeahost.cpp @@ -170,12 +170,10 @@ Connection* Connections::get(int index) const Connection *Connections::bestMatch(Connection::BearerTypes bearerTypes) const { - QList bearerPreference = {Connection::BearerTypeEthernet, Connection::BearerTypeWifi, Connection::BearerTypeCloud, Connection::BearerTypeBluetooth, Connection::BearerTypeNone}; Connection *best = nullptr; -// qDebug() << "Bestmatch" << m_connections.count(); foreach (Connection *c, m_connections) { // qDebug() << "have connection:" << bearerTypes << c->url() << bearerTypes.testFlag(c->bearerType()); - if (!bearerTypes.testFlag(c->bearerType())) { + if ((bearerTypes & c->bearerType()) == Connection::BearerTypeNone) { continue; } if (!best) { diff --git a/libnymea-app-core/connection/nymeahosts.cpp b/libnymea-app-core/connection/nymeahosts.cpp index 112e79cd..05b4fc2b 100644 --- a/libnymea-app-core/connection/nymeahosts.cpp +++ b/libnymea-app-core/connection/nymeahosts.cpp @@ -22,6 +22,7 @@ #include "connection/discovery/nymeadiscovery.h" #include "nymeahost.h" #include "connection/nymeaconnection.h" +#include NymeaHosts::NymeaHosts(QObject *parent) : QAbstractListModel(parent) @@ -83,6 +84,17 @@ void NymeaHosts::removeHost(NymeaHost *host) emit countChanged(); } +NymeaHost *NymeaHosts::createHost(const QString &name, const QUrl &url) +{ + NymeaHost *host = new NymeaHost(this); + host->setUuid(QUuid::createUuid()); + host->setName(name); + Connection *connection = new Connection(url, Connection::BearerTypeAll, false, url.toString(), host); + host->connections()->addConnection(connection); + addHost(host); + return host; +} + NymeaHost *NymeaHosts::get(int index) const { if (index < 0 || index >= m_hosts.count()) { diff --git a/libnymea-app-core/connection/nymeahosts.h b/libnymea-app-core/connection/nymeahosts.h index 664f64d9..01ae5fcb 100644 --- a/libnymea-app-core/connection/nymeahosts.h +++ b/libnymea-app-core/connection/nymeahosts.h @@ -49,6 +49,7 @@ public: void addHost(NymeaHost *host); void removeHost(NymeaHost *host); + Q_INVOKABLE NymeaHost* createHost(const QString &name, const QUrl &url); Q_INVOKABLE NymeaHost *get(int index) const; Q_INVOKABLE NymeaHost *find(const QUuid &uuid); diff --git a/nymea-app/ui/connection/ConnectPage.qml b/nymea-app/ui/connection/ConnectPage.qml index f2eaa5c7..b31c4816 100644 --- a/nymea-app/ui/connection/ConnectPage.qml +++ b/nymea-app/ui/connection/ConnectPage.qml @@ -60,7 +60,8 @@ Page { } onClicked: { if (index === 2) { - root.connectToHost("nymea://nymea.nymea.io:2222") + var host = discovery.nymeaHosts.createHost("Demo server", "nymea://nymea.nymea.io:2222") + engine.connection.connect(host) } else { pageStack.push(model.get(index).page, {nymeaDiscovery: discovery}); } @@ -266,7 +267,8 @@ Page { visible: discovery.nymeaHosts.count === 0 text: qsTr("Demo mode (online)") onClicked: { - root.connectToHost("nymea://nymea.nymea.io:2222") + var host = nymeaHosts.createHost("Demo server", "nymea://nymea.nymea.io:2222") + engine.connection.connect(host) } }