From dc74c0ede7252ee0a82a383b289a8bb65a1b3f77 Mon Sep 17 00:00:00 2001 From: talksik Date: Thu, 8 Feb 2024 16:24:08 -0800 Subject: [PATCH] refactoring for better separation of concerns --- CMakeLists.txt | 15 +++++++++++--- CMakeLists.txt.user | 2 +- main.cpp | 4 +--- network.cpp | 11 ++++++++++ network.h | 16 +++++++++++++++ networkscanner.cpp | 15 ++++++++++++++ networkscanner.h | 24 ++++++++++++++++++++++ NetworkScanner.cpp => networksmodel.cpp | 26 +----------------------- NetworkScanner.h => networksmodel.h | 27 +++++-------------------- 9 files changed, 86 insertions(+), 54 deletions(-) create mode 100644 network.cpp create mode 100644 network.h create mode 100644 networkscanner.cpp create mode 100644 networkscanner.h rename NetworkScanner.cpp => networksmodel.cpp (73%) rename NetworkScanner.h => networksmodel.h (62%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a27fb3a..e46bab6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,20 +4,28 @@ project(wifipicker VERSION 0.1 LANGUAGES CXX) 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_add_executable(appwifipicker main.cpp - NetworkScanner.h - NetworkScanner.cpp + networkscanner.h + networkscanner.cpp ) qt_add_qml_module(appwifipicker URI wifipicker VERSION 1.0 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. @@ -36,6 +44,7 @@ target_link_libraries(appwifipicker PRIVATE Qt6::Gui Qt6::Qml Qt6::Quick + Qt6::Network ) include(GNUInstallDirs) diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user index 877e4d4..36f7a98 100644 --- a/CMakeLists.txt.user +++ b/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/main.cpp b/main.cpp index 19a8638..41a7084 100644 --- a/main.cpp +++ b/main.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include int main(int argc, char *argv[]) @@ -11,8 +11,6 @@ int main(int argc, char *argv[]) QGuiApplication app(argc, argv); NetworksModel model; - model.scan(); - qDebug() << "now has " << model.rowCount() << Qt::endl; QQmlApplicationEngine engine; const QUrl url(u"qrc:/wifipicker/Main.qml"_qs); diff --git a/network.cpp b/network.cpp new file mode 100644 index 0000000..ebe08bf --- /dev/null +++ b/network.cpp @@ -0,0 +1,11 @@ +#include "network.h" + +Network::Network(const QString &name) + : m_name(name) +{ +} + +QString Network::name() const +{ + return this->m_name; +} diff --git a/network.h b/network.h new file mode 100644 index 0000000..ea358bb --- /dev/null +++ b/network.h @@ -0,0 +1,16 @@ +#ifndef NETWORK_H +#define NETWORK_H + +#include + +class Network +{ +public: + Network(const QString &name); + + QString name() const; +private: + QString m_name; +}; + +#endif // NETWORK_H diff --git a/networkscanner.cpp b/networkscanner.cpp new file mode 100644 index 0000000..2c5edf6 --- /dev/null +++ b/networkscanner.cpp @@ -0,0 +1,15 @@ +#include "networkscanner.h" +#include +#include + +QList NetworkScanner::scanForNetworks() +{ + std::cout << "Called the C++ Network scanner class" << std::endl; + + QList networks; + + Network example1 = Network("Gita 2.4Ghz"); + networks.append(example1); + + return networks; +} diff --git a/networkscanner.h b/networkscanner.h new file mode 100644 index 0000000..4540526 --- /dev/null +++ b/networkscanner.h @@ -0,0 +1,24 @@ +#ifndef NETWORKSCANNER_H +#define NETWORKSCANNER_H + +#include +#include + +class Network +{ +public: + Network(const QString &name); + + QString name() const; +private: + QString m_name; +}; + +class NetworkScanner : public QObject +{ + Q_OBJECT +public: + QList scanForNetworks(); +}; + +#endif // NETWORKSCANNER_H diff --git a/NetworkScanner.cpp b/networksmodel.cpp similarity index 73% rename from NetworkScanner.cpp rename to networksmodel.cpp index 37eaeeb..91a22dc 100644 --- a/NetworkScanner.cpp +++ b/networksmodel.cpp @@ -1,18 +1,4 @@ -#include "NetworkScanner.h" -#include -#include - -QList NetworkScanner::scanForNetworks() -{ - std::cout << "Called the C++ Network scanner class" << std::endl; - - QList networks; - - Network example1 = Network("Gita 2.4Ghz"); - networks.append(example1); - - return networks; -} +#include "networksmodel.h" NetworksModel::NetworksModel(QObject *parent) : @@ -70,13 +56,3 @@ QHash NetworksModel::roleNames() const roles[NetworksModel::NetworkRoles::NameRole] = "name"; return roles; } - -Network::Network(const QString &name) - : m_name(name) -{ -} - -QString Network::name() const -{ - return this->m_name; -} diff --git a/NetworkScanner.h b/networksmodel.h similarity index 62% rename from NetworkScanner.h rename to networksmodel.h index 2b34981..ac24182 100644 --- a/NetworkScanner.h +++ b/networksmodel.h @@ -1,27 +1,8 @@ -#ifndef NETWORKSCANNER_H -#define NETWORKSCANNER_H +#ifndef NETWORKSMODEL_H +#define NETWORKSMODEL_H -#endif // NETWORKSCANNER_H - -#include #include - -class Network -{ -public: - Network(const QString &name); - - QString name() const; -private: - QString m_name; -}; - -class NetworkScanner : public QObject -{ - Q_OBJECT -public: - QList scanForNetworks(); -}; +#include "networkscanner.h" class NetworksModel : public QAbstractListModel { @@ -46,3 +27,5 @@ private: QList m_networks; NetworkScanner m_networkScanner; }; + +#endif // NETWORKSMODEL_H