diff --git a/CMakeLists.txt b/CMakeLists.txt index d2723d2..614f00e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,10 @@ set(CMAKE_AUTORCC ON) find_package(Qt5Core) find_package(Qt5Quick) +find_package(Qt5Network) find_package(Qt5Sensors) find_package(Qt5Svg) find_package(Qt5Xml) add_executable(accelbubble main.cpp accelbubble.qrc) -target_link_libraries(accelbubble Qt5::Quick Qt5::Sensors Qt5::Svg Qt5::Xml) +target_link_libraries(accelbubble Qt5::Network Qt5::Quick Qt5::Sensors Qt5::Svg Qt5::Xml) diff --git a/accelbubble.pro b/accelbubble.pro index d3b20a9..39941b0 100644 --- a/accelbubble.pro +++ b/accelbubble.pro @@ -1,6 +1,6 @@ TEMPLATE = app TARGET = accelbubble -QT += quick sensors svg xml +QT += network quick sensors svg xml SOURCES = main.cpp RESOURCES += \ diff --git a/accelbubble.qml b/accelbubble.qml index c2cfd73..511edac 100644 --- a/accelbubble.qml +++ b/accelbubble.qml @@ -48,8 +48,8 @@ ** ****************************************************************************/ - import QtQuick 2.1 +import QtQuick.Layouts 1.3 import QtQuick.Controls 2.4 import org.kde.kirigami 2.4 as Kirigami @@ -74,8 +74,13 @@ Kirigami.ApplicationWindow { title: mainWindow.title } - Label { - text: "Using QQC2 and Kirigami" + ColumnLayout { + Label { + text: "Using QQC2 and Kirigami" + } + Label { + text: "IP-Address: " + ipAddr + } } //! [1] diff --git a/main.cpp b/main.cpp index e7ccc07..a5e61cc 100644 --- a/main.cpp +++ b/main.cpp @@ -51,11 +51,31 @@ #include #include +#include +#include +#include + +void ignoreSslErrors(QNetworkReply *reply, const QList &errors) +{ + reply->ignoreSslErrors(errors); +} int main(int argc, char *argv[]) { QGuiApplication app(argc,argv); - QQmlApplicationEngine engine(QUrl("qrc:///accelbubble.qml")); + + QNetworkAccessManager networkAccessManager; + QObject::connect(&networkAccessManager, &QNetworkAccessManager::sslErrors, &ignoreSslErrors); + auto *const reply = networkAccessManager.get(QNetworkRequest(QUrl(QStringLiteral("https://192.168.2.2/website/ip.php")))); + + QQmlApplicationEngine engine; + QQmlContext *const context(engine.rootContext()); + + QObject::connect(reply, &QNetworkReply::finished, [&] { + const auto ipAddr(QString::fromUtf8(reply->readAll())); + context->setContextProperty(QStringLiteral("ipAddr"), ipAddr); + engine.load(QUrl("qrc:///accelbubble.qml")); + }); return app.exec(); }