summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2016-05-17 11:01:39 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2016-05-18 14:27:52 +0000
commit1ca6bf3bdef8c95e12a5ee93ed69e4983a1df017 (patch)
treed8a977429eb6b11a21982b77bb236e9955c81eb9
parenta3ebf9c04aac97a22c502af79b924d7dc3886824 (diff)
downloadqtlocation-1ca6bf3bdef8c95e12a5ee93ed69e4983a1df017.tar.gz
winrt: Enable compilation with desktop mkspec
The GeoPosition API is functional for desktop builds as well, running on Windows 8 and later. While the plugin builds for desktop, do not enable its compilation by default as support is experimental. Change-Id: I5ccd3f857ff3f0cfd1e220875c39883b89f5f2ce Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp14
-rw-r--r--src/plugins/position/winrt/winrt.pro1
2 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
index 5dbbacb5..245d855e 100644
--- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
+++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
@@ -39,7 +39,9 @@
#include <QCoreApplication>
#include <QMutex>
#include <qfunctions_winrt.h>
+#ifdef Q_OS_WINRT
#include <private/qeventdispatcher_winrt_p.h>
+#endif
#include <functional>
#include <windows.system.h>
@@ -64,6 +66,16 @@ QT_BEGIN_NAMESPACE
Q_DECLARE_METATYPE(QGeoPositionInfo)
+#ifndef Q_OS_WINRT
+namespace QEventDispatcherWinRT {
+HRESULT runOnXamlThread(const std::function<HRESULT ()> &delegate, bool waitForRun = true)
+{
+ Q_UNUSED(waitForRun);
+ return delegate();
+}
+}
+#endif
+
class QGeoPositionInfoSourceWinRTPrivate {
public:
ComPtr<IGeolocator> locator;
@@ -490,7 +502,7 @@ HRESULT QGeoPositionInfoSourceWinRT::onStatusChanged(IGeolocator*, IStatusChange
bool QGeoPositionInfoSourceWinRT::requestAccess() const
{
-#if _MSC_VER >= 1900
+#if _MSC_VER >= 1900 && defined(Q_OS_WINRT)
static GeolocationAccessStatus accessStatus = GeolocationAccessStatus_Unspecified;
static ComPtr<IGeolocatorStatics> statics;
diff --git a/src/plugins/position/winrt/winrt.pro b/src/plugins/position/winrt/winrt.pro
index bc740671..5e02ec9a 100644
--- a/src/plugins/position/winrt/winrt.pro
+++ b/src/plugins/position/winrt/winrt.pro
@@ -12,4 +12,5 @@ OTHER_FILES += \
PLUGIN_TYPE = position
PLUGIN_CLASS_NAME = QGeoPositionInfoSourceFactoryWinRT
+win32-msvc201*: LIBS += runtimeobject.lib
load(qt_plugin)