From 7d863d259ae4d2f8a55a211c428a1ff11ae529f1 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Fri, 18 Dec 2015 12:10:41 -0800 Subject: [PATCH] [Qt] Added {Map,GLContext,Constrain}Mode settings --- platform/qt/include/qmapboxgl.hpp | 28 ++++++++++++++++++++ platform/qt/src/qmapboxgl.cpp | 43 ++++++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 4 deletions(-) diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp index 83e5bb183..de4ae06ca 100644 --- a/platform/qt/include/qmapboxgl.hpp +++ b/platform/qt/include/qmapboxgl.hpp @@ -19,6 +19,30 @@ class Q_DECL_EXPORT QMapboxGLSettings public: QMapboxGLSettings(); + enum MapMode { + ContinuousMap = 0, + StillMap + }; + + enum GLContextMode { + UniqueGLContext = 0, + SharedGLContext + }; + + enum ConstrainMode { + ConstrainHeightOnly = 0, + ConstrainWidthAndHeight + }; + + MapMode mapMode() const; + void setMapMode(MapMode); + + GLContextMode contextMode() const; + void setContextMode(GLContextMode); + + ConstrainMode constrainMode() const; + void setConstrainMode(ConstrainMode); + unsigned cacheDatabaseMaximumSize() const; void setCacheDatabaseMaximumSize(unsigned); @@ -32,6 +56,10 @@ public: void setAccessToken(const QString &); private: + MapMode m_mapMode; + GLContextMode m_contextMode; + ConstrainMode m_constrainMode; + unsigned m_cacheMaximumSize; QString m_cacheDatabasePath; QString m_assetPath; diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index ae00eadbf..c9bc86300 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -18,12 +18,45 @@ #include QMapboxGLSettings::QMapboxGLSettings() - : m_cacheMaximumSize(mbgl::util::DEFAULT_MAX_CACHE_SIZE) + : m_mapMode(QMapboxGLSettings::ContinuousMap) + , m_contextMode(QMapboxGLSettings::UniqueGLContext) + , m_constrainMode(QMapboxGLSettings::ConstrainHeightOnly) + , m_cacheMaximumSize(mbgl::util::DEFAULT_MAX_CACHE_SIZE) , m_cacheDatabasePath(":memory:") , m_assetPath(QCoreApplication::applicationDirPath()) { } +QMapboxGLSettings::MapMode QMapboxGLSettings::mapMode() const +{ + return m_mapMode; +} + +void QMapboxGLSettings::setMapMode(MapMode mode) +{ + m_mapMode = mode; +} + +QMapboxGLSettings::GLContextMode QMapboxGLSettings::contextMode() const +{ + return m_contextMode; +} + +void QMapboxGLSettings::setContextMode(GLContextMode mode) +{ + m_contextMode = mode; +} + +QMapboxGLSettings::ConstrainMode QMapboxGLSettings::constrainMode() const +{ + return m_constrainMode; +} + +void QMapboxGLSettings::setConstrainMode(ConstrainMode mode) +{ + m_constrainMode = mode; +} + unsigned QMapboxGLSettings::cacheDatabaseMaximumSize() const { return m_cacheMaximumSize; @@ -67,10 +100,12 @@ QMapboxGL::QMapboxGL(QObject *parent_, const QMapboxGLSettings &settings) : QObject(parent_) , d_ptr(new QMapboxGLPrivate(this, settings)) { - d_ptr->fileSourceObj->setAccessToken(settings.accessToken().toStdString()); + mbgl::MapMode mapMode = static_cast(settings.mapMode()); + mbgl::GLContextMode contextMode = static_cast(settings.contextMode()); + mbgl::ConstrainMode constrainMode = static_cast(settings.constrainMode()); - d_ptr->mapObj = std::make_unique(*d_ptr, *d_ptr->fileSourceObj, - mbgl::MapMode::Continuous, mbgl::GLContextMode::Shared); + d_ptr->fileSourceObj->setAccessToken(settings.accessToken().toStdString()); + d_ptr->mapObj = std::make_unique(*d_ptr, *d_ptr->fileSourceObj, mapMode, contextMode, constrainMode); } QMapboxGL::~QMapboxGL()