on xenial help sign in
Use ubuntu::connectivity::NetworkingStatus instead of QNetworkConfigurationManager

QNetworkConfigurationManager with the networkmanager plugin tracks lots of different things while we're only really interested in if we're connected or not that is exactly what ubuntu::connectivity::NetworkingStatus does Approved by: Andrea Cimitan

commit3a5de52c789b227e4da5b6619ca091554959a121 authorAlbert Astals <albert.astals@canonical.com> dateTue 2 Dec 2014, 09:25 (12 years ago) parentf99935a21b5973
5 files changed+10−19
debian/control+1 src/CMakeLists.txt+4−1 src/CachingNetworkManagerFactory.cpp+2−11 src/CachingNetworkManagerFactory.h+2−6 src/Dash/CMakeLists.txt+1−1
debian/control+1
@@ -12,6 +12,7 @@ Build-Depends: cmake,
1212# in libstdc++ causing us issues, we explicitly select a G++
1313# version.
1414 g++-4.9,
15+ libconnectivity-qt1-dev,
1516 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
1617 libgl1-mesa-dri,
1718 libgles2-mesa-dev[armhf],
src/CMakeLists.txt+4−1
@@ -1,6 +1,9 @@
1+pkg_check_modules(CONNECTIVITY REQUIRED connectivity-qt1)
2+
13include_directories(
24 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
35 ${CMAKE_SOURCE_DIR}/libs/UbuntuGestures
6+ ${CONNECTIVITY_INCLUDE_DIRS}
47)
58
69file(GLOB_RECURSE QML_FILES
@@ -30,7 +33,7 @@ if (NOT "${XCB_INCLUDE_DIRS}" STREQUAL "")
3033 target_link_libraries(${SHELL_APP} ${XCB_LDFLAGS})
3134endif()
3235
33−target_link_libraries(${SHELL_APP} UbuntuGestures)
36+target_link_libraries(${SHELL_APP} UbuntuGestures connectivity-qt1)
3437
3538# For it to find libUbuntuGestures.so
3639set_target_properties(${SHELL_APP} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
src/CachingNetworkManagerFactory.cpp+2−11
@@ -20,25 +20,16 @@
2020#include <QNetworkDiskCache>
2121#include <QNetworkAccessManager>
2222#include <QStandardPaths>
23−#include <QNetworkConfigurationManager>
2423
2524CachingNetworkAccessManager::CachingNetworkAccessManager(QObject *parent)
2625 : QNetworkAccessManager(parent)
2726{
28− m_networkManager = new QNetworkConfigurationManager(this);
29−
30− QObject::connect(m_networkManager, &QNetworkConfigurationManager::onlineStateChanged, this, &CachingNetworkAccessManager::onlineStateChanged);
31− m_isOnline = m_networkManager->isOnline();
32−}
33−
34−void CachingNetworkAccessManager::onlineStateChanged(bool isOnline)
35−{
36− m_isOnline = isOnline;
27+ m_networkingStatus = new ubuntu::connectivity::NetworkingStatus(this);
3728}
3829
3930QNetworkReply* CachingNetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
4031{
41− if (!m_isOnline) {
32+ if (m_networkingStatus->status() != ubuntu::connectivity::NetworkingStatus::Status::Online) {
4233 QNetworkRequest req(request);
4334 req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
4435 return QNetworkAccessManager::createRequest(op, req, outgoingData);
src/CachingNetworkManagerFactory.h+2−6
@@ -21,7 +21,7 @@
2121#include <QQmlNetworkAccessManagerFactory>
2222#include <QNetworkAccessManager>
2323
24−class QNetworkConfigurationManager;
24+#include <ubuntu/connectivity/networking-status.h>
2525
2626class CachingNetworkAccessManager : public QNetworkAccessManager
2727{
@@ -31,12 +31,8 @@ public:
3131protected:
3232 QNetworkReply* createRequest(Operation op, const QNetworkRequest &req, QIODevice *outgoingData = 0) override;
3333
34−private Q_SLOTS:
35− void onlineStateChanged(bool isOnline);
36−
3734private:
38− QNetworkConfigurationManager* m_networkManager;
39− bool m_isOnline;
35+ ubuntu::connectivity::NetworkingStatus* m_networkingStatus;
4036};
4137
4238class CachingNetworkManagerFactory : public QQmlNetworkAccessManagerFactory
src/Dash/CMakeLists.txt+1−1
@@ -12,7 +12,7 @@ qt5_use_modules(unity8-dash Gui Qml Quick Test)
1212# For it to find libUbuntuGestures.so, needed by Ubuntu.Gestures QML module.
1313set_target_properties(unity8-dash PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
1414
15−target_link_libraries(unity8-dash UbuntuGestures)
15+target_link_libraries(unity8-dash UbuntuGestures connectivity-qt1)
1616
1717set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
1818