From cf6168ff9312738d8514dafde024130d9f209a1a Mon Sep 17 00:00:00 2001 From: Erin Harrington Date: Mon, 21 Nov 2022 15:24:54 -0600 Subject: [PATCH] Connected AboutPage Wifi address with NetworkManager for IP instead of QProcess --- CMakeLists.txt | 3 +- dbus/CMakeLists.txt | 3 +- ...g.freedesktop.NetworkManager.IP4Config.xml | 129 ++++ include/botui/NetworkManager.h | 2 + include/botui/NetworkManagerConnection.h | 2 + rc/icons.qrc | 2 + rc/icons/fontawesome/solid/apple-alt.svg | 2 +- rc/icons/wifi.png | Bin 0 -> 7392 bytes rc/icons/wrench1.png | Bin 0 -> 5010 bytes rc/tango/wifi.png | Bin 0 -> 7392 bytes src/AboutWidget.cpp | 86 +-- src/NetworkManager.cpp | 21 +- src/NetworkSettingsWidget.cpp | 21 +- ui/AboutWidget.ui | 20 +- ui/AdvancedSettingsWidget.ui | 2 +- ui/NetworkSettingsWidget.ui | 712 +++++++++--------- 16 files changed, 575 insertions(+), 430 deletions(-) create mode 100644 dbus/org.freedesktop.NetworkManager.IP4Config.xml create mode 100644 rc/icons/wifi.png create mode 100644 rc/icons/wrench1.png create mode 100644 rc/tango/wifi.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 85833d80..2f51b1cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ include_directories( -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Network Quick QuickWidgets QuickControls2) +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Network Quick QuickWidgets QuickControls2 SvgWidgets) @@ -103,6 +103,7 @@ target_link_libraries(botui Qt6::QuickWidgets Qt6::Widgets Qt6::QuickControls2 + Qt6::SvgWidgets network_manager_dbus pcompiler z diff --git a/dbus/CMakeLists.txt b/dbus/CMakeLists.txt index 76b70985..3a799358 100644 --- a/dbus/CMakeLists.txt +++ b/dbus/CMakeLists.txt @@ -6,6 +6,7 @@ set(NETWORK_MANAGER_INTERFACES org.freedesktop.NetworkManager.Settings.Connection org.freedesktop.NetworkManager.Settings org.freedesktop.NetworkManager.AccessPoint + org.freedesktop.NetworkManager.IP4Config org.freedesktop.NetworkManager ) @@ -20,4 +21,4 @@ endforeach() add_library(network_manager_dbus STATIC ${NETWORK_MANAGER_SOURCES}) target_link_libraries(network_manager_dbus PUBLIC Qt::DBus) -target_include_directories(network_manager_dbus PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) \ No newline at end of file +target_include_directories(network_manager_dbus PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/dbus/org.freedesktop.NetworkManager.IP4Config.xml b/dbus/org.freedesktop.NetworkManager.IP4Config.xml new file mode 100644 index 00000000..7f954c31 --- /dev/null +++ b/dbus/org.freedesktop.NetworkManager.IP4Config.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/include/botui/NetworkManager.h b/include/botui/NetworkManager.h index 4d38b6b1..a881c1ea 100644 --- a/include/botui/NetworkManager.h +++ b/include/botui/NetworkManager.h @@ -57,6 +57,8 @@ Q_OBJECT QString ipAddress() const; + QString ip4Address() const; + Connection createAPConfig() const ; public slots: diff --git a/include/botui/NetworkManagerConnection.h b/include/botui/NetworkManagerConnection.h index 798a4c32..367ec56e 100644 --- a/include/botui/NetworkManagerConnection.h +++ b/include/botui/NetworkManagerConnection.h @@ -11,9 +11,11 @@ typedef QMap StringVariantMap; typedef QMap Connection; +typedef QList ListStringVariantMap; //Connection = QMap> Q_DECLARE_METATYPE(StringVariantMap); Q_DECLARE_METATYPE(Connection); +Q_DECLARE_METATYPE(ListStringVariantMap); #endif diff --git a/rc/icons.qrc b/rc/icons.qrc index e57cc20e..ba4de72b 100644 --- a/rc/icons.qrc +++ b/rc/icons.qrc @@ -985,6 +985,7 @@ icons/webcam_delete.png icons/webcam_error.png icons/webcam.png + icons/wifi.png icons/world_add.png icons/world_delete.png icons/world_edit.png @@ -992,6 +993,7 @@ icons/world_link.png icons/world.png icons/wrench_orange.png + icons/wrench1.png icons/wrench.png icons/xhtml_add.png icons/xhtml_delete.png diff --git a/rc/icons/fontawesome/solid/apple-alt.svg b/rc/icons/fontawesome/solid/apple-alt.svg index 995d76e9..78088bdf 100644 --- a/rc/icons/fontawesome/solid/apple-alt.svg +++ b/rc/icons/fontawesome/solid/apple-alt.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/rc/icons/wifi.png b/rc/icons/wifi.png new file mode 100644 index 0000000000000000000000000000000000000000..6729ad75b01b437a4e9d1ff4d2fc647c42d7d8cc GIT binary patch literal 7392 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 literal 0 HcmV?d00001 diff --git a/rc/tango/wifi.png b/rc/tango/wifi.png new file mode 100644 index 0000000000000000000000000000000000000000..6729ad75b01b437a4e9d1ff4d2fc647c42d7d8cc GIT binary patch literal 7392 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 kKgUM=hrj*<2{(5hyK~4VFV(I5_l` #include AboutWidget::AboutWidget(Device *device, QWidget *parent) - : StandardWidget(device, parent), - ui(new Ui::AboutWidget) + : StandardWidget(device, parent), + ui(new Ui::AboutWidget) { - ui->setupUi(this); + ui->setupUi(this); - //Version Number - ui->version->setText("Version 27.0 (Quark)"); + // Version Number + ui->version->setText("Version 27.0 (Quark)"); - //ui->deviceName->setText(device->name() + " v" + device->version()); + // ui->deviceName->setText(device->name() + " v" + device->version()); - //Display Serial Number - const QString serial = device->serial(); - ui->deviceName->setText("Wombat-" + serial); + // Display Serial Number + const QString serial = device->serial(); + ui->deviceName->setText("Wombat-" + serial); - //Check if eth0 is active (/sys/class/net/eth0/carrier will output 1 if eth0 is active and 0 if it is not) - QProcess proc; - proc.start("cat /sys/class/net/eth0/carrier"); - proc.waitForFinished(); - QString output = proc.readAllStandardOutput(); + //QDBusObjectPath ip4Config = m_device.ip4Config(); + qDebug() << "IP Address: " << NetworkManager::ref().ip4Address(); - //If eth0 is active - if (output.toInt() == 1){ - //Pull network information - QProcess proc; - proc.start("hostname -I"); - proc.waitForFinished(); - QString output = proc.readAllStandardOutput(); - //Parse the output and set as text for IP addresses - QStringList list = output.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts); - ui->WiFiaddr->setText(list[1]); - ui->LANaddr->setText(list[0]); - } - else{ - ui->WiFiaddr->setText("192.168.125.1"); - ui->LANaddr->setText("0.0.0.0"); - } + // Check if eth0 is active (/sys/class/net/eth0/carrier will output 1 if eth0 is active and 0 if it is not) + QProcess proc; + proc.start("cat /sys/class/net/eth0/carrier"); + proc.waitForFinished(); + QString output = proc.readAllStandardOutput(); - //Old -#ifdef WALLABY - const QString id = device-> id(); - if(!id.isEmpty()) { + // If eth0 is active + if (output.toInt() == 1) + { + // Pull network information + QProcess proc; + proc.start("hostname -I"); + proc.waitForFinished(); + QString output = proc.readAllStandardOutput(); + + // Parse the output and set as text for IP addresses + QStringList list = output.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts); + ui->WiFiaddr->setText(list[1]); + ui->LANaddr->setText(list[0]); + } + else + { + ui->WiFiaddr->setText(NetworkManager::ref().ip4Address()); + ui->LANaddr->setText("0.0.0.0"); + } + + // Old + const QString id = device->id(); + if (!id.isEmpty()) + { const QString password = SystemUtils::sha256(id).left(6) + "00"; const QString ssid = device->serial() + "-wombat"; ui->ssid->setText(ssid); ui->password->setText(password); } - -#else - ui->wifiBox->hide(); -#endif - - //Setup the UI - performStandardSetup(tr("About")); + // Setup the UI + performStandardSetup(tr("About")); } AboutWidget::~AboutWidget() { - delete ui; + delete ui; } diff --git a/src/NetworkManager.cpp b/src/NetworkManager.cpp index 110841d4..778e1aa0 100644 --- a/src/NetworkManager.cpp +++ b/src/NetworkManager.cpp @@ -8,6 +8,7 @@ #include "org_freedesktop_NetworkManager_Device_Wireless.h" #include "org_freedesktop_NetworkManager_Settings.h" #include "org_freedesktop_NetworkManager_Settings_Connection.h" +#include "org_freedesktop_NetworkManager_IP4Config.h" #include @@ -177,7 +178,7 @@ void NetworkManager::addNetwork(const Network &network) { APExist = true; apPathConn = connectionPath; - //APuuid = detail["connection"]["uuid"].toString(); + // APuuid = detail["connection"]["uuid"].toString(); qDebug() << "AP Path Connection already exists"; break; } @@ -435,6 +436,21 @@ QString NetworkManager::ipAddress() const return ret; } +QString NetworkManager::ip4Address() const +{ + QString ipAddr; + QDBusObjectPath ip4Con = m_device->ip4Config(); // ip4Address path + qDebug() << "IP4 Config path: " << ip4Con.path(); + OrgFreedesktopNetworkManagerIP4ConfigInterface ip4Object( + NM_SERVICE, + ip4Con.path(), + QDBusConnection::systemBus()); + + QList> ip4conf = ip4Object.addressData(); + ipAddr = ip4conf.value(0).value("address").toString(); + return ipAddr; +} + NetworkManager::NetworkManager() : m_nm(new OrgFreedesktopNetworkManagerInterface( NM_SERVICE, @@ -446,11 +462,12 @@ NetworkManager::NetworkManager() // Register our metatype with dbus qDBusRegisterMetaType(); qDBusRegisterMetaType(); + qDBusRegisterMetaType(); OrgFreedesktopNetworkManagerSettingsInterface settings( NM_SERVICE, NM_OBJECT "/Settings", QDBusConnection::systemBus()); - + QDBusPendingReply> reply = m_nm->GetDevices(); if (reply.isError()) diff --git a/src/NetworkSettingsWidget.cpp b/src/NetworkSettingsWidget.cpp index 7d2207a0..b2b8eb19 100644 --- a/src/NetworkSettingsWidget.cpp +++ b/src/NetworkSettingsWidget.cpp @@ -31,16 +31,17 @@ NetworkSettingsWidget::NetworkSettingsWidget(Device *device, QWidget *parent) // ui->turnOn->setVisible(false); // ui->turnOff->setVisible(false); - ui->connect->setEnabled(false); - QObject::connect(ui->connect, SIGNAL(clicked()), SLOT(connect())); - QObject::connect(ui->manage, SIGNAL(clicked()), SLOT(manage())); + ui->ConnectButton->setEnabled(false); + //ui->ConnectButton->setIcon(QPixmap(":/tango/network-wireless-encrypted.svg")); + QObject::connect(ui->ConnectButton, SIGNAL(clicked()), SLOT(connect())); + QObject::connect(ui->ManageButton, SIGNAL(clicked()), SLOT(manage())); - QObject::connect(ui->tournamentMode, SIGNAL(clicked()), SLOT(TournamentMode())); - NetworkManager::ref().connect(ui->connectionMode, SIGNAL(currentIndexChanged(int)), this, SLOT(indexChanged(int))); + QObject::connect(ui->TournamentModeButton, SIGNAL(clicked()), SLOT(TournamentMode())); + NetworkManager::ref().connect(ui->connectionModeSelect, SIGNAL(currentIndexChanged(int)), this, SLOT(indexChanged(int))); // TODO: put back after we support client mode WiFi - ui->connect->setVisible(true); - ui->manage->setVisible(true); + ui->ConnectButton->setVisible(true); + ui->ManageButton->setVisible(true); ui->security->setVisible(false); ui->securityLabel->setVisible(false); @@ -68,19 +69,19 @@ void NetworkSettingsWidget::indexChanged(int index) if (index == 1) // AP mode { - ui->connect->setEnabled(false); + ui->ConnectButton->setEnabled(false); NetworkManager::ref().enableAP(); } else if (index == 2) // Wifi on (client mode) { NetworkManager::ref().disableAP(); NetworkManager::ref().turnOn(); - ui->connect->setEnabled(true); + ui->ConnectButton->setEnabled(true); } else if (index == 3) // Wifi off { NetworkManager::ref().turnOff(); - ui->connect->setEnabled(false); + ui->ConnectButton->setEnabled(false); } } diff --git a/ui/AboutWidget.ui b/ui/AboutWidget.ui index d5ab1e5b..9da5a409 100644 --- a/ui/AboutWidget.ui +++ b/ui/AboutWidget.ui @@ -167,6 +167,12 @@ + + + 389 + 16777215 + + 0 @@ -181,8 +187,8 @@ Developers - - + + @@ -194,7 +200,7 @@ - + @@ -206,7 +212,7 @@ - + @@ -218,21 +224,21 @@ - + Prithviraj Kadiyala - + Zachary Sasser - + Erin Harrington diff --git a/ui/AdvancedSettingsWidget.ui b/ui/AdvancedSettingsWidget.ui index 821e0a30..cf857ac7 100644 --- a/ui/AdvancedSettingsWidget.ui +++ b/ui/AdvancedSettingsWidget.ui @@ -127,7 +127,7 @@ - :/icons/fontawesome/solid/icons/fontawesome/solid/wifi.svg:/icons/fontawesome/solid/icons/fontawesome/solid/wifi.svg + :/icons/apple-tiny.svg:/icons/apple-tiny.svg diff --git a/ui/NetworkSettingsWidget.ui b/ui/NetworkSettingsWidget.ui index 8da7f4a1..a3a955d7 100644 --- a/ui/NetworkSettingsWidget.ui +++ b/ui/NetworkSettingsWidget.ui @@ -13,379 +13,361 @@ Network Settings - - - - 390 - 30 - 398 - 411 - - - - - 22 - - - - Network Information - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - 6 - - - 6 - - - 30 - - - 6 - - - 6 - - - - - - - - 22 - - - - Wifi is currently: - - - - - - - - 25 - 0 - - - - - 22 - - - - ON - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - 22 - - - - SSID: - - - - - - - - 22 - - - - kovanet - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - 22 - - - - Password: - - - - - - - - 22 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - true - - - - 22 - - - - Security: - - - - - - - - 22 - - - - WPA2 + + + + + QLayout::SetFixedSize + + + + + + 22 + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + true + + + + 0 + 80 + + + + + 33 + + + + Connect to... + + + + :/icons/wifi.png:/icons/wifi.png + + + + 30 + 30 + + + + false + + + + + + + + 0 + 80 + + + + + 33 + + + + Manage... + + + + :/icons/wrench1.png:/icons/wrench1.png + + + + 30 + 30 + + + + + + + + + 0 + 80 + + + + + 33 + + + + Tournament Mode + + + + + + + Select Mode + + + 3 + + + + Select Mode + + + + + AP Mode + + + + + Client Mode + + + + + Wifi Off + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 125 + + + + + + + + + + + + 22 + + + + Network Information + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + 6 - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + 6 - - - - - - - - Qt::Vertical - - - QSizePolicy::Preferred - - - - 20 - 20 - - - - - - - - - - - 33 - + + 30 - - 0.0.0.0 + + 6 - - Qt::AlignCenter + + 6 - - - - - - - - - - 8 - 270 - 378 - 80 - - - - - 0 - 80 - - - - - 33 - - - - Tournament Mode - - - - - true - - - - 8 - 89 - 378 - 80 - - - - - 0 - 80 - - - - - 33 - - - - Connect to... - - - - :/icons/fontawesome/solid/icons/fontawesome/solid/wifi.svg:/icons/fontawesome/solid/icons/fontawesome/solid/wifi.svg - - - - 30 - 30 - - - - false - - - - - - 8 - 180 - 378 - 80 - - - - - 0 - 80 - - - - - 33 - - - - Manage... - - - - :/icons/fontawesome/solid/icons/fontawesome/solid/wrench.svg:/icons/fontawesome/solid/icons/fontawesome/solid/wrench.svg - - - - 30 - 30 - - - - - - - 8 - 360 - 378 - 51 - - - - Select Mode - - - 3 - - - - Select Mode - - - - - AP Mode - - - - - Client Mode - - - - - Wifi Off - + + + + + + + 22 + + + + Wifi is currently: + + + + + + + + 25 + 0 + + + + + 22 + + + + ON + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + 22 + + + + SSID: + + + + + + + + 22 + + + + kovanet + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + 22 + + + + Password: + + + + + + + + 22 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + true + + + + 22 + + + + Security: + + + + + + + + 22 + + + + WPA2 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 20 + + + + + + + + + + + 33 + + + + 0.0.0.0 + + + Qt::AlignCenter + + + + + + + + + - - - - - 10 - 430 - 67 - 17 - - - - AP Mode - - + - - - connectionMode - currentTextChanged(QString) - connectionModeLabel - setText(QString) - - - 75 - 389 - - - 56 - 433 - - - - +