summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/winrt
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2016-06-02 11:12:29 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-04 13:37:03 +0000
commit9c01fdb2badd0cbc5369cc31b6626718e5b4c23c (patch)
treefae88f98153474861f7a63bc18bed09be5516a4d /src/plugins/platforms/winrt
parentc2d4c3588c8b0f65923c1b3dd98826a99c589495 (diff)
winrt: Fix compilation for 10586 SDK
The current implementation of drag and drop requires Redstone 2 Update (SDK version 14322) to be fully functional. The API is limited for previous versions. However, this mostly affects passing allowed operations between sender and receiver, the rest is mostly functional still. Once RedStone 2 is out (estimated July 2016) we can bump the minimum SDK version to 14322. Task-number: QTBUG-50827 Change-Id: I5bab9d36a228d68c1809c241a64168d48c353335 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/plugins/platforms/winrt')
-rw-r--r--src/plugins/platforms/winrt/qwinrtdrag.cpp7
-rw-r--r--src/plugins/platforms/winrt/winrt.pro4
2 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtdrag.cpp b/src/plugins/platforms/winrt/qwinrtdrag.cpp
index 14bea7ab30..2ef50aa4e2 100644
--- a/src/plugins/platforms/winrt/qwinrtdrag.cpp
+++ b/src/plugins/platforms/winrt/qwinrtdrag.cpp
@@ -623,6 +623,7 @@ Qt::DropAction QWinRTDrag::drag(QDrag *drag)
hr = dataPackage->put_RequestedOperation(translateFromQDragDropActions(action));
Q_ASSERT_SUCCEEDED(hr);
+#ifndef QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDragStartingEventArgs2> args2;
hr = args->QueryInterface(IID_PPV_ARGS(&args2));
Q_ASSERT_SUCCEEDED(hr);
@@ -637,7 +638,7 @@ Qt::DropAction QWinRTDrag::drag(QDrag *drag)
allowedOperations |= DataPackageOperation_Link;
hr = args2->put_AllowedOperations(allowedOperations);
Q_ASSERT_SUCCEEDED(hr);
-
+#endif // QT_WINRT_LIMITED_DRAGANDDROP
QMimeData *mimeData = drag->mimeData();
if (mimeData->hasText()) {
hr = dataPackage->SetText(qStringToHString(mimeData->text()).Get());
@@ -811,6 +812,7 @@ void QWinRTDrag::handleNativeDragEvent(IInspectable *sender, ABI::Windows::UI::X
DragDropModifiers modifiers;
hr = e2->get_Modifiers(&modifiers);
+#ifndef QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDragEventArgs3> e3;
hr = e->QueryInterface(IID_PPV_ARGS(&e3));
Q_ASSERT_SUCCEEDED(hr);
@@ -821,6 +823,9 @@ void QWinRTDrag::handleNativeDragEvent(IInspectable *sender, ABI::Windows::UI::X
qCDebug(lcQpaMime) << __FUNCTION__ << "Could not query drag operations";
const Qt::DropActions actions = translateToQDragDropActions(dataOp);
+#else // !QT_WINRT_LIMITED_DRAGANDDROP
+ const Qt::DropActions actions = Qt::LinkAction | Qt::CopyAction | Qt::MoveAction;;
+#endif // !QT_WINRT_LIMITED_DRAGANDDROP
ComPtr<IDataPackageView> dataView;
hr = e2->get_DataView(&dataView);
diff --git a/src/plugins/platforms/winrt/winrt.pro b/src/plugins/platforms/winrt/winrt.pro
index dd1e051c33..f5591934f5 100644
--- a/src/plugins/platforms/winrt/winrt.pro
+++ b/src/plugins/platforms/winrt/winrt.pro
@@ -49,6 +49,10 @@ HEADERS = \
OTHER_FILES += winrt.json
+WINRT_SDK_VERSION_STRING = $$(UCRTVersion)
+WINRT_SDK_VERSION = $$member($$list($$split(WINRT_SDK_VERSION_STRING, .)), 2)
+lessThan(WINRT_SDK_VERSION, 14322): DEFINES += QT_WINRT_LIMITED_DRAGANDDROP
+
*-msvc2013|contains(DEFINES, QT_NO_DRAGANDDROP) {
SOURCES -= qwinrtdrag.cpp
HEADERS -= qwinrtdrag.h