summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-03-07 20:16:42 -0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-04-20 20:55:51 +0300
commit459e72d72a89adb496757260b9ee90fc1b501bef (patch)
treed727ca51cf89ca311924bab45903d6bee8a890bc
parente974dd282d3337856fd1a83e76878e1ff6ce1bf1 (diff)
downloadqtlocation-mapboxgl-459e72d72a89adb496757260b9ee90fc1b501bef.tar.gz
[Qt] Expose API to go full offline/online
-rw-r--r--platform/qt/include/qmapbox.hpp8
-rw-r--r--platform/qt/platform.gyp1
-rw-r--r--platform/qt/src/qmapbox.cpp32
3 files changed, 41 insertions, 0 deletions
diff --git a/platform/qt/include/qmapbox.hpp b/platform/qt/include/qmapbox.hpp
index fc52218bb2..fe7c749e51 100644
--- a/platform/qt/include/qmapbox.hpp
+++ b/platform/qt/include/qmapbox.hpp
@@ -25,6 +25,14 @@ typedef QList<PointAnnotation> PointAnnotations;
typedef QPair<CoordinateSegments, QString> ShapeAnnotation;
typedef QList<ShapeAnnotation> 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 3e52a5cb27..41b4c7ad4a 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 0000000000..8ecb2c09b9
--- /dev/null
+++ b/platform/qt/src/qmapbox.cpp
@@ -0,0 +1,32 @@
+#include <mbgl/storage/network_status.hpp>
+
+#include <QMapbox>
+
+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;
+ }
+}
+
+}