QNetworkInformation fixups

Addressing feedback that came after the reviews
ended from both bot and people.

Added CLASS_NAME to the CMakeLists files for the plugins so that
cmake can generate the correct import.

Fixes: QTBUG-91061
Change-Id: Ib3f1e863100c1c421a6c0a4081b1d40696d67b23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 92b15beb9aa09467583230a018c23114bb666a8e)
This commit is contained in:
Mårten Nordheim 2021-02-08 17:13:54 +01:00
parent 2c55e121c2
commit 2983fe8f09
8 changed files with 14 additions and 5 deletions

View File

@ -91,7 +91,6 @@ private:
static bool initializeList(); static bool initializeList();
std::unique_ptr<QNetworkInformationBackend> backend; std::unique_ptr<QNetworkInformationBackend> backend;
bool m_isOnline = true; // cached
}; };
bool QNetworkInformationPrivate::initializeList() bool QNetworkInformationPrivate::initializeList()
@ -461,7 +460,7 @@ QNetworkInformation::QNetworkInformation(QNetworkInformationBackend *backend)
: QObject(*(new QNetworkInformationPrivate(backend))) : QObject(*(new QNetworkInformationPrivate(backend)))
{ {
connect(backend, &QNetworkInformationBackend::reachabilityChanged, this, connect(backend, &QNetworkInformationBackend::reachabilityChanged, this,
[this]() { emit reachabilityChanged(d_func()->backend->m_reachability); }); [this]() { emit reachabilityChanged(d_func()->backend->reachability()); });
} }
/*! /*!
@ -485,7 +484,7 @@ QNetworkInformation::~QNetworkInformation() = default;
QNetworkInformation::Reachability QNetworkInformation::reachability() const QNetworkInformation::Reachability QNetworkInformation::reachability() const
{ {
return d_func()->backend->m_reachability; return d_func()->backend->reachability();
} }
/*! /*!

View File

@ -70,7 +70,7 @@ public:
Q_ENUM(Feature) Q_ENUM(Feature)
Q_DECLARE_FLAGS(Features, Feature) Q_DECLARE_FLAGS(Features, Feature)
~QNetworkInformation(); ~QNetworkInformation() override;
Reachability reachability() const; Reachability reachability() const;

View File

@ -64,11 +64,13 @@ class Q_NETWORK_EXPORT QNetworkInformationBackend : public QObject
Q_OBJECT Q_OBJECT
public: public:
QNetworkInformationBackend() = default; QNetworkInformationBackend() = default;
virtual ~QNetworkInformationBackend(); ~QNetworkInformationBackend() override;
virtual QString name() const = 0; virtual QString name() const = 0;
virtual QNetworkInformation::Features featuresSupported() const = 0; virtual QNetworkInformation::Features featuresSupported() const = 0;
QNetworkInformation::Reachability reachability() const { return m_reachability; }
Q_SIGNALS: Q_SIGNALS:
void reachabilityChanged(); void reachabilityChanged();

View File

@ -16,6 +16,7 @@ install_jar(Qt${QtBase_VERSION_MAJOR}AndroidNetworkInformationBackend
qt_internal_add_plugin(QAndroidNetworkInformationBackend qt_internal_add_plugin(QAndroidNetworkInformationBackend
OUTPUT_NAME androidnetworkinformationbackend OUTPUT_NAME androidnetworkinformationbackend
CLASS_NAME QAndroidNetworkInformationBackendFactory
TYPE networkinformationbackends TYPE networkinformationbackends
DEFAULT_IF ANDROID DEFAULT_IF ANDROID
SOURCES SOURCES

View File

@ -1,5 +1,6 @@
qt_internal_add_plugin(QNetworkListManagerNetworkInformationBackend qt_internal_add_plugin(QNetworkListManagerNetworkInformationBackend
OUTPUT_NAME networklistmanagernetworkinformationbackend OUTPUT_NAME networklistmanagernetworkinformationbackend
CLASS_NAME QNetworkListManagerNetworkInformationBackendFactory
TYPE networkinformationbackends TYPE networkinformationbackends
DEFAULT_IF WINDOWS AND QT_FEATURE_networklistmanager DEFAULT_IF WINDOWS AND QT_FEATURE_networklistmanager
SOURCES qnetworklistmanagernetworkinformationbackend.cpp SOURCES qnetworklistmanagernetworkinformationbackend.cpp

View File

@ -1,5 +1,6 @@
qt_internal_add_plugin(QNetworkManagerNetworkInformationBackend qt_internal_add_plugin(QNetworkManagerNetworkInformationBackend
OUTPUT_NAME networkmanagernetworkinformationbackend OUTPUT_NAME networkmanagernetworkinformationbackend
CLASS_NAME QNetworkManagerNetworkInformationBackendFactory
TYPE networkinformationbackends TYPE networkinformationbackends
DEFAULT_IF LINUX DEFAULT_IF LINUX
SOURCES SOURCES

View File

@ -97,6 +97,8 @@ public:
bool isValid() const { return iface.isValid(); } bool isValid() const { return iface.isValid(); }
private: private:
Q_DISABLE_COPY_MOVE(QNetworkManagerNetworkInformationBackend)
QNetworkManagerInterface iface; QNetworkManagerInterface iface;
QNetworkManagerInterface::NMState prevState; QNetworkManagerInterface::NMState prevState;
}; };
@ -128,6 +130,8 @@ public:
delete std::exchange(backend, nullptr); delete std::exchange(backend, nullptr);
return backend; return backend;
} }
private:
Q_DISABLE_COPY_MOVE(QNetworkManagerNetworkInformationBackendFactory)
}; };
QNetworkManagerNetworkInformationBackend::QNetworkManagerNetworkInformationBackend() QNetworkManagerNetworkInformationBackend::QNetworkManagerNetworkInformationBackend()

View File

@ -1,5 +1,6 @@
qt_internal_add_plugin(QSCNetworkReachabilityNetworkInformationBackend qt_internal_add_plugin(QSCNetworkReachabilityNetworkInformationBackend
OUTPUT_NAME scnetworkreachabilitynetworkinformationbackend OUTPUT_NAME scnetworkreachabilitynetworkinformationbackend
CLASS_NAME QSCNetworkReachabilityNetworkInformationBackendFactory
TYPE networkinformationbackends TYPE networkinformationbackends
DEFAULT_IF APPLE DEFAULT_IF APPLE
SOURCES SOURCES