From 70a25543707b1fef77abf0ed8ab7066d4efd21c4 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 20 Mar 2025 22:24:40 -0400 Subject: [PATCH] refactor: VersionChecker use its own QNetworkManager not a Proxy remove lib/gui/proxy/QNetworkManagerProxy --- src/apps/deskflow-gui/VersionChecker.cpp | 7 ++--- src/apps/deskflow-gui/VersionChecker.h | 13 ++------- src/lib/gui/CMakeLists.txt | 2 -- .../gui/proxy/QNetworkAccessManagerProxy.cpp | 28 ------------------ .../gui/proxy/QNetworkAccessManagerProxy.h | 29 ------------------- 5 files changed, 5 insertions(+), 74 deletions(-) delete mode 100644 src/lib/gui/proxy/QNetworkAccessManagerProxy.cpp delete mode 100644 src/lib/gui/proxy/QNetworkAccessManagerProxy.h diff --git a/src/apps/deskflow-gui/VersionChecker.cpp b/src/apps/deskflow-gui/VersionChecker.cpp index 784a2ff74..5df1ff5a9 100644 --- a/src/apps/deskflow-gui/VersionChecker.cpp +++ b/src/apps/deskflow-gui/VersionChecker.cpp @@ -19,11 +19,9 @@ using namespace deskflow::gui; -VersionChecker::VersionChecker(std::shared_ptr network) - : m_network(network ? network : std::make_shared()) +VersionChecker::VersionChecker(QObject *parent) : QObject(parent), m_network{new QNetworkAccessManager(this)} { - m_network->init(); - connect(m_network.get(), &QNetworkAccessManagerProxy::finished, this, &VersionChecker::replyFinished); + connect(m_network, &QNetworkAccessManager::finished, this, &VersionChecker::replyFinished, Qt::UniqueConnection); } void VersionChecker::checkLatest() const @@ -50,6 +48,7 @@ void VersionChecker::replyFinished(QNetworkReply *reply) qDebug("version check server success, http status: %d", httpStatus); const auto newestVersion = QString(reply->readAll()); + reply->deleteLater(); qDebug("version check response: %s", qPrintable(newestVersion)); if (!newestVersion.isEmpty() && compareVersions(kVersion, newestVersion) > 0) { diff --git a/src/apps/deskflow-gui/VersionChecker.h b/src/apps/deskflow-gui/VersionChecker.h index 4a4911352..7c014ae22 100644 --- a/src/apps/deskflow-gui/VersionChecker.h +++ b/src/apps/deskflow-gui/VersionChecker.h @@ -6,26 +6,18 @@ #pragma once -#include "gui/proxy/QNetworkAccessManagerProxy.h" - #include #include #include class QNetworkAccessManager; class QNetworkReply; -class VersionCheckerTests; class VersionChecker : public QObject { - using QNetworkAccessManagerProxy = deskflow::gui::proxy::QNetworkAccessManagerProxy; - Q_OBJECT - - friend class VersionCheckerTests; - public: - explicit VersionChecker(std::shared_ptr network = nullptr); + explicit VersionChecker(QObject *parent = nullptr); void checkLatest() const; public slots: void replyFinished(QNetworkReply *reply); @@ -42,6 +34,5 @@ private: * more recent the version */ static int getStageVersion(QString stage); - - std::shared_ptr m_network; + QNetworkAccessManager *m_network = nullptr; }; diff --git a/src/lib/gui/CMakeLists.txt b/src/lib/gui/CMakeLists.txt index 240b3b2f6..626125cd1 100644 --- a/src/lib/gui/CMakeLists.txt +++ b/src/lib/gui/CMakeLists.txt @@ -51,8 +51,6 @@ add_library(${target} STATIC core/WaylandWarnings.h ipc/DaemonIpcClient.cpp ipc/DaemonIpcClient.h - proxy/QNetworkAccessManagerProxy.cpp - proxy/QNetworkAccessManagerProxy.h proxy/QProcessProxy.cpp proxy/QProcessProxy.h tls/TlsCertificate.cpp diff --git a/src/lib/gui/proxy/QNetworkAccessManagerProxy.cpp b/src/lib/gui/proxy/QNetworkAccessManagerProxy.cpp deleted file mode 100644 index 04087727c..000000000 --- a/src/lib/gui/proxy/QNetworkAccessManagerProxy.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2024 Symless Ltd. - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "QNetworkAccessManagerProxy.h" - -#include -#include - -namespace deskflow::gui::proxy { - -void QNetworkAccessManagerProxy::init() -{ - m_network = std::make_shared(); - - connect(m_network.get(), &QNetworkAccessManager::finished, this, [this](QNetworkReply *reply) { - Q_EMIT finished(reply); - }); -} - -void QNetworkAccessManagerProxy::get(const QNetworkRequest &request) const -{ - m_network->get(request); -} - -} // namespace deskflow::gui::proxy diff --git a/src/lib/gui/proxy/QNetworkAccessManagerProxy.h b/src/lib/gui/proxy/QNetworkAccessManagerProxy.h deleted file mode 100644 index 3f2eed3cb..000000000 --- a/src/lib/gui/proxy/QNetworkAccessManagerProxy.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2024 Symless Ltd. - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#pragma once - -#include -#include - -namespace deskflow::gui::proxy { - -class QNetworkAccessManagerProxy : public QObject -{ - Q_OBJECT - -public: - virtual void init(); - virtual void get(const QNetworkRequest &request) const; - -signals: - void finished(QNetworkReply *reply); - -private: - std::shared_ptr m_network; -}; - -} // namespace deskflow::gui::proxy