refactoring for better separation of concerns

This commit is contained in:
talksik
2024-02-08 16:24:08 -08:00
parent b83f80f7ec
commit dc74c0ede7
9 changed files with 86 additions and 54 deletions
+12 -3
View File
@@ -4,20 +4,28 @@ project(wifipicker VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.4 REQUIRED COMPONENTS Core Gui Qml Quick) find_package(Qt6 6.4 REQUIRED COMPONENTS
Core
Gui
Qml
Quick
Network
)
qt_standard_project_setup() qt_standard_project_setup()
qt_add_executable(appwifipicker qt_add_executable(appwifipicker
main.cpp main.cpp
NetworkScanner.h networkscanner.h
NetworkScanner.cpp networkscanner.cpp
) )
qt_add_qml_module(appwifipicker qt_add_qml_module(appwifipicker
URI wifipicker URI wifipicker
VERSION 1.0 VERSION 1.0
QML_FILES Main.qml QML_FILES Main.qml
SOURCES networksmodel.h networksmodel.cpp
SOURCES network.h network.cpp
) )
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
@@ -36,6 +44,7 @@ target_link_libraries(appwifipicker PRIVATE
Qt6::Gui Qt6::Gui
Qt6::Qml Qt6::Qml
Qt6::Quick Qt6::Quick
Qt6::Network
) )
include(GNUInstallDirs) include(GNUInstallDirs)
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 12.0.2, 2024-02-08T15:13:31. --> <!-- Written by QtCreator 12.0.2, 2024-02-08T16:17:09. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
+1 -3
View File
@@ -3,7 +3,7 @@
#include <qqml.h> #include <qqml.h>
#include <QtQuick/qquickitem.h> #include <QtQuick/qquickitem.h>
#include <QtQuick/qquickview.h> #include <QtQuick/qquickview.h>
#include <NetworkScanner.h> #include <networksmodel.h>
#include <QQmlContext> #include <QQmlContext>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
@@ -11,8 +11,6 @@ int main(int argc, char *argv[])
QGuiApplication app(argc, argv); QGuiApplication app(argc, argv);
NetworksModel model; NetworksModel model;
model.scan();
qDebug() << "now has " << model.rowCount() << Qt::endl;
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
const QUrl url(u"qrc:/wifipicker/Main.qml"_qs); const QUrl url(u"qrc:/wifipicker/Main.qml"_qs);
+11
View File
@@ -0,0 +1,11 @@
#include "network.h"
Network::Network(const QString &name)
: m_name(name)
{
}
QString Network::name() const
{
return this->m_name;
}
+16
View File
@@ -0,0 +1,16 @@
#ifndef NETWORK_H
#define NETWORK_H
#include <QObject>
class Network
{
public:
Network(const QString &name);
QString name() const;
private:
QString m_name;
};
#endif // NETWORK_H
+15
View File
@@ -0,0 +1,15 @@
#include "networkscanner.h"
#include <iostream>
#include <QAbstractListModel>
QList<Network> NetworkScanner::scanForNetworks()
{
std::cout << "Called the C++ Network scanner class" << std::endl;
QList<Network> networks;
Network example1 = Network("Gita 2.4Ghz");
networks.append(example1);
return networks;
}
+24
View File
@@ -0,0 +1,24 @@
#ifndef NETWORKSCANNER_H
#define NETWORKSCANNER_H
#include <QObject>
#include <QAbstractListModel>
class Network
{
public:
Network(const QString &name);
QString name() const;
private:
QString m_name;
};
class NetworkScanner : public QObject
{
Q_OBJECT
public:
QList<Network> scanForNetworks();
};
#endif // NETWORKSCANNER_H
+1 -25
View File
@@ -1,18 +1,4 @@
#include "NetworkScanner.h" #include "networksmodel.h"
#include <iostream>
#include <QAbstractListModel>
QList<Network> NetworkScanner::scanForNetworks()
{
std::cout << "Called the C++ Network scanner class" << std::endl;
QList<Network> networks;
Network example1 = Network("Gita 2.4Ghz");
networks.append(example1);
return networks;
}
NetworksModel::NetworksModel(QObject *parent) NetworksModel::NetworksModel(QObject *parent)
: :
@@ -70,13 +56,3 @@ QHash<int, QByteArray> NetworksModel::roleNames() const
roles[NetworksModel::NetworkRoles::NameRole] = "name"; roles[NetworksModel::NetworkRoles::NameRole] = "name";
return roles; return roles;
} }
Network::Network(const QString &name)
: m_name(name)
{
}
QString Network::name() const
{
return this->m_name;
}
+5 -22
View File
@@ -1,27 +1,8 @@
#ifndef NETWORKSCANNER_H #ifndef NETWORKSMODEL_H
#define NETWORKSCANNER_H #define NETWORKSMODEL_H
#endif // NETWORKSCANNER_H
#include <QObject>
#include <QAbstractListModel> #include <QAbstractListModel>
#include "networkscanner.h"
class Network
{
public:
Network(const QString &name);
QString name() const;
private:
QString m_name;
};
class NetworkScanner : public QObject
{
Q_OBJECT
public:
QList<Network> scanForNetworks();
};
class NetworksModel : public QAbstractListModel class NetworksModel : public QAbstractListModel
{ {
@@ -46,3 +27,5 @@ private:
QList<Network> m_networks; QList<Network> m_networks;
NetworkScanner m_networkScanner; NetworkScanner m_networkScanner;
}; };
#endif // NETWORKSMODEL_H