From f347a5d9367d0cb733aab95aba039b8ef96c90bc Mon Sep 17 00:00:00 2001 From: talksik Date: Thu, 8 Feb 2024 13:33:01 -0800 Subject: [PATCH] making it work --- Main.qml | 19 ++++++++++++++----- NetworkScanner.cpp | 11 ++++++++++- NetworkScanner.h | 3 +++ main.cpp | 25 +++++++++++++++++-------- 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/Main.qml b/Main.qml index e2e1cbc..7e749b9 100644 --- a/Main.qml +++ b/Main.qml @@ -1,13 +1,14 @@ import QtQuick import QtQuick.Controls -Rectangle { +Window { id: window width: 640 height: 480 visible: true + title: "WIFI Picker" - required property var networksModel + property var model signal scanNetworks() @@ -19,9 +20,17 @@ Rectangle { ListView { id: listview - objectName: "listview" - model: parent.networksModel - delegate: Rectangle { + model: window.model + width: 100 + height: 200 + // model: ListModel { + // ListElement { name: "Item 1"; value: 10 } + // ListElement { name: "Item 2"; value: 20 } + // ListElement { name: "Item 3"; value: 30 } + // } + + delegate: Item { + height: 20 required property string name Text { diff --git a/NetworkScanner.cpp b/NetworkScanner.cpp index 340c553..f4dac2e 100644 --- a/NetworkScanner.cpp +++ b/NetworkScanner.cpp @@ -18,7 +18,9 @@ NetworksModel::NetworksModel(QObject *parent) : QAbstractListModel(parent) { - + QList networks; + networks.append(Network("Gita test")); + this->m_networks = networks; } int NetworksModel::rowCount(const QModelIndex &parent) const @@ -53,6 +55,13 @@ void NetworksModel::scan() this->m_networks = networks; } +QHash NetworksModel::roleNames() const +{ + QHash roles; + roles[NetworksModel::NetworkRoles::NameRole] = "name"; + return roles; +} + Network::Network(const QString &name) : m_name(name) { diff --git a/NetworkScanner.h b/NetworkScanner.h index 9d97ab5..2b34981 100644 --- a/NetworkScanner.h +++ b/NetworkScanner.h @@ -39,6 +39,9 @@ public: public slots: void scan(); +protected: + QHash roleNames() const; + private: QList m_networks; NetworkScanner m_networkScanner; diff --git a/main.cpp b/main.cpp index 890a81b..8ad8207 100644 --- a/main.cpp +++ b/main.cpp @@ -10,20 +10,29 @@ int main(int argc, char *argv[]) QGuiApplication app(argc, argv); NetworksModel model; + qDebug() << "now has " << model.rowCount() << Qt::endl; - QQuickView view; - view.setResizeMode(QQuickView::SizeRootObjectToView); - view.setInitialProperties({{"networksModel", QVariant::fromValue(&model)}}); - view.setSource(QUrl("qrc:/wifipicker/Main.qml")); - view.show(); + QQmlApplicationEngine engine; + const QUrl url(u"qrc:/wifipicker/Main.qml"_qs); + QObject::connect( + &engine, + &QQmlApplicationEngine::objectCreationFailed, + &app, + []() { QCoreApplication::exit(-1); }, + Qt::QueuedConnection); + engine.load(url); - if (!view.rootObject()) + + QObject *rootObject = engine.rootObjects().first(); + if (!rootObject) { - qDebug() << "No root object found" << Qt::endl; + qDebug() << "Problem in finding root object" << Qt::endl; return -1; } - QObject *rootObject = view.rootObject(); + engine.setInitialProperties({{"model", QVariant::fromValue(&model)}}); + rootObject->setProperty("model", QVariant::fromValue(&model)); + QObject::connect(rootObject, SIGNAL(scanNetworks()), &model, SLOT(scan()));