From 459e72d72a89adb496757260b9ee90fc1b501bef Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Mon, 7 Mar 2016 20:16:42 -0300 Subject: [PATCH] [Qt] Expose API to go full offline/online --- platform/qt/include/qmapbox.hpp | 8 ++++++++ platform/qt/platform.gyp | 1 + platform/qt/src/qmapbox.cpp | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 platform/qt/src/qmapbox.cpp diff --git a/platform/qt/include/qmapbox.hpp b/platform/qt/include/qmapbox.hpp index fc52218bb..fe7c749e5 100644 --- a/platform/qt/include/qmapbox.hpp +++ b/platform/qt/include/qmapbox.hpp @@ -25,6 +25,14 @@ typedef QList PointAnnotations; typedef QPair ShapeAnnotation; typedef QList ShapeAnnotations; +enum NetworkMode { + Online, // Default + Offline, +}; + +Q_DECL_EXPORT NetworkMode networkMode(); +Q_DECL_EXPORT void setNetworkMode(NetworkMode); + } #endif // QMAPBOX_H diff --git a/platform/qt/platform.gyp b/platform/qt/platform.gyp index 3e52a5cb2..41b4c7ad4 100644 --- a/platform/qt/platform.gyp +++ b/platform/qt/platform.gyp @@ -52,6 +52,7 @@ 'src/http_request.cpp', 'src/http_request.hpp', 'src/image.cpp', + 'src/qmapbox.cpp', 'src/qmapboxgl.cpp', 'src/qmapboxgl_p.hpp', 'src/run_loop.cpp', diff --git a/platform/qt/src/qmapbox.cpp b/platform/qt/src/qmapbox.cpp new file mode 100644 index 000000000..8ecb2c09b --- /dev/null +++ b/platform/qt/src/qmapbox.cpp @@ -0,0 +1,32 @@ +#include + +#include + +namespace QMapbox { + +Q_DECL_EXPORT NetworkMode networkMode() +{ + switch (mbgl::NetworkStatus::Get()) { + case mbgl::NetworkStatus::Status::Online: + return NetworkMode::Online; + case mbgl::NetworkStatus::Status::Offline: + return NetworkMode::Offline; + } + + // Silence compile warnings, should never happen. + return NetworkMode::Online; +} + +Q_DECL_EXPORT void setNetworkMode(NetworkMode mode) +{ + switch (mode) { + case Online: + mbgl::NetworkStatus::Set(mbgl::NetworkStatus::Status::Online); + break; + case Offline: + mbgl::NetworkStatus::Set(mbgl::NetworkStatus::Status::Offline); + break; + } +} + +}