qtwayland: Fix building of QWaylandIntegration if some Qt5 features are disabled.

QPlatformIntegration's interface methods are disabled based on QT_NO_OPENGL,
QT_NO_CLIPBOARD, QT_NO_DRAGANDDROP, QT_NO_ACCESSIBILITY and
QT_NO_SESSIONMANAGER, these has to be taken into account when compiling
QtWayland.

Signed-off-by: Vesa Jääskeläinen <dachaac@gmail.com>
Tested-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Vesa Jääskeläinen
2016-09-25 10:54:49 +03:00
committed by Martin Jansa
parent 042a096e49
commit 2c89965fb0
3 changed files with 158 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ DEPENDS = "qtbase-native wayland-native"
SRC_URI += " \
file://0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch \
file://0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch \
"
do_configure() {

View File

@@ -0,0 +1,156 @@
From de85e1c1ee76be845a21b441d9e4ea12a30d84c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?= <dachaac@gmail.com>
Date: Sun, 18 Sep 2016 11:51:59 +0300
Subject: [PATCH] Fix building of QWaylandIntegration if some Qt5 features are
disabled.
QPlatformIntegration's interface methods are disabled based on QT_NO_OPENGL,
QT_NO_CLIPBOARD, QT_NO_DRAGANDDROP, QT_NO_ACCESSIBILITY and
QT_NO_SESSIONMANAGER, these has to be taken into account when compiling
QtWayland.
---
src/client/qwaylandintegration.cpp | 21 ++++++++++++++++++---
src/client/qwaylandintegration_p.h | 12 ++++++++++++
2 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
index 39fff53..481e3d6 100644
--- a/src/client/qwaylandintegration.cpp
+++ b/src/client/qwaylandintegration.cpp
@@ -39,7 +39,9 @@
#include "qwaylandinputcontext_p.h"
#include "qwaylandshmbackingstore_p.h"
#include "qwaylandnativeinterface_p.h"
+#ifndef QT_NO_CLIPBOARD
#include "qwaylandclipboard_p.h"
+#endif
#include "qwaylanddnd_p.h"
#include "qwaylandwindowmanagerintegration_p.h"
#include "qwaylandscreen_p.h"
@@ -57,7 +59,9 @@
#include <QSocketNotifier>
#include <qpa/qplatforminputcontextfactory_p.h>
+#ifndef QT_NO_ACCESSIBILITY
#include <qpa/qplatformaccessibility.h>
+#endif
#include <qpa/qplatforminputcontext.h>
#include "qwaylandhardwareintegration_p.h"
@@ -117,8 +121,6 @@ QWaylandIntegration::QWaylandIntegration()
, mNativeInterface(new QWaylandNativeInterface(this))
#ifndef QT_NO_ACCESSIBILITY
, mAccessibility(new QPlatformAccessibility())
-#else
- , mAccessibility(0)
#endif
, mClientBufferIntegrationInitialized(false)
, mServerBufferIntegrationInitialized(false)
@@ -126,9 +128,12 @@ QWaylandIntegration::QWaylandIntegration()
{
initializeInputDeviceIntegration();
mDisplay = new QWaylandDisplay(this);
+#ifndef QT_NO_CLIPBOARD
mClipboard = new QWaylandClipboard(mDisplay);
+#endif
+#ifndef QT_NO_DRAGANDDROP
mDrag = new QWaylandDrag(mDisplay);
-
+#endif
QString icStr = QPlatformInputContextFactory::requested();
icStr.isNull() ? mInputContext.reset(new QWaylandInputContext(mDisplay))
: mInputContext.reset(QPlatformInputContextFactory::create(icStr));
@@ -136,8 +141,12 @@ QWaylandIntegration::QWaylandIntegration()
QWaylandIntegration::~QWaylandIntegration()
{
+#ifndef QT_NO_DRAGANDDROP
delete mDrag;
+#endif
+#ifndef QT_NO_CLIPBOARD
delete mClipboard;
+#endif
#ifndef QT_NO_ACCESSIBILITY
delete mAccessibility;
#endif
@@ -213,15 +222,19 @@ QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const
return mFontDb;
}
+#ifndef QT_NO_CLIPBOARD
QPlatformClipboard *QWaylandIntegration::clipboard() const
{
return mClipboard;
}
+#endif
+#ifndef QT_NO_DRAGANDDROP
QPlatformDrag *QWaylandIntegration::drag() const
{
return mDrag;
}
+#endif
QPlatformInputContext *QWaylandIntegration::inputContext() const
{
@@ -243,10 +256,12 @@ QVariant QWaylandIntegration::styleHint(StyleHint hint) const
return QPlatformIntegration::styleHint(hint);
}
+#ifndef QT_NO_ACCESSIBILITY
QPlatformAccessibility *QWaylandIntegration::accessibility() const
{
return mAccessibility;
}
+#endif
QPlatformServices *QWaylandIntegration::services() const
{
diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h
index 987d805..b50ad95 100644
--- a/src/client/qwaylandintegration_p.h
+++ b/src/client/qwaylandintegration_p.h
@@ -80,15 +80,21 @@ public:
QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE;
+#ifndef QT_NO_CLIPBOARD
QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE;
+#endif
+#ifndef QT_NO_DRAGANDDROP
QPlatformDrag *drag() const Q_DECL_OVERRIDE;
+#endif
QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE;
QVariant styleHint(StyleHint hint) const Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
QPlatformAccessibility *accessibility() const Q_DECL_OVERRIDE;
+#endif
QPlatformServices *services() const Q_DECL_OVERRIDE;
@@ -117,12 +123,18 @@ private:
void initializeInputDeviceIntegration();
QPlatformFontDatabase *mFontDb;
+#ifndef QT_NO_CLIPBOARD
QPlatformClipboard *mClipboard;
+#endif
+#ifndef QT_NO_DRAGANDDROP
QPlatformDrag *mDrag;
+#endif
QWaylandDisplay *mDisplay;
QPlatformNativeInterface *mNativeInterface;
QScopedPointer<QPlatformInputContext> mInputContext;
+#ifndef QT_NO_ACCESSIBILITY
QPlatformAccessibility *mAccessibility;
+#endif
bool mClientBufferIntegrationInitialized;
bool mServerBufferIntegrationInitialized;
bool mShellIntegrationInitialized;
--
2.7.4

View File

@@ -34,6 +34,7 @@ FILES_${PN}-plugins-dbg += " \
SRC_URI += " \
file://0001-examples-wayland-include-server-buffer-only-when-bui.patch \
file://0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch \
"
SRCREV = "82e11583928d47576c160d35c9df05c0eec34df8"