Fix build when some features are disabled

Make QtWaylandClient compile when Qt is configured with:

-no-opengl -no-accessibility -D QT_NO_CLIPBOARD -D QT_NO_DRAGANDDROP -D QT_NO_SESSIONMANAGER

Task-number: QTBUG-56192
Change-Id: Idc6aae6b36a35515109a27bed31a22e3e909ef27
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
This commit is contained in:
Paul Olav Tvete 2016-11-02 14:24:52 +01:00
parent bac96606a6
commit c1444d272e
20 changed files with 69 additions and 13 deletions

View File

@ -38,6 +38,8 @@
#include "qwaylanddatasource_p.h" #include "qwaylanddatasource_p.h"
#include "qwaylanddatadevice_p.h" #include "qwaylanddatadevice_p.h"
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -109,3 +111,5 @@ bool QWaylandClipboard::ownsMode(QClipboard::Mode mode) const
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP

View File

@ -51,6 +51,7 @@
#include <QtWaylandClient/private/qwaylandclientexport_p.h> #include <QtWaylandClient/private/qwaylandclientexport_p.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -78,4 +79,6 @@ private:
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP
#endif // QWAYLANDCLIPBOARD_H #endif // QWAYLANDCLIPBOARD_H

View File

@ -55,6 +55,8 @@
#include <qpa/qplatformdrag.h> #include <qpa/qplatformdrag.h>
#include <qpa/qwindowsysteminterface.h> #include <qpa/qwindowsysteminterface.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -254,3 +256,5 @@ void QWaylandDataDevice::dragSourceTargetChanged(const QString &mimeType)
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP

View File

@ -57,6 +57,8 @@
#include <QtWaylandClient/private/qwayland-wayland.h> #include <QtWaylandClient/private/qwayland-wayland.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QMimeData; class QMimeData;
@ -117,4 +119,6 @@ private:
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP
#endif // QWAYLANDDATADEVICE_H #endif // QWAYLANDDATADEVICE_H

View File

@ -40,6 +40,8 @@
#include <QtCore/QDebug> #include <QtCore/QDebug>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -74,3 +76,5 @@ QWaylandDisplay *QWaylandDataDeviceManager::display() const
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP

View File

@ -48,6 +48,8 @@
#include <QtWaylandClient/private/qwaylandclientexport_p.h> #include <QtWaylandClient/private/qwaylandclientexport_p.h>
#include <QtWaylandClient/private/qwayland-wayland.h> #include <QtWaylandClient/private/qwayland-wayland.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -75,4 +77,6 @@ private:
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP
#endif // QWAYLANDDATADEVICEMANAGER_H #endif // QWAYLANDDATADEVICEMANAGER_H

View File

@ -41,6 +41,8 @@
#include <QtCore/QDebug> #include <QtCore/QDebug>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -175,3 +177,5 @@ int QWaylandMimeData::readData(int fd, QByteArray &data) const
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP

View File

@ -50,6 +50,7 @@
#include <QtWaylandClient/private/qwaylandclientexport_p.h> #include <QtWaylandClient/private/qwaylandclientexport_p.h>
#include <QtWaylandClient/private/qwayland-wayland.h> #include <QtWaylandClient/private/qwayland-wayland.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -99,5 +100,5 @@ private:
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP
#endif #endif

View File

@ -43,6 +43,8 @@
#include <unistd.h> #include <unistd.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
@ -90,3 +92,5 @@ void QWaylandDataSource::data_source_target(const QString &mime_type)
} }
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP

View File

@ -50,6 +50,8 @@
#include <QtWaylandClient/private/qwayland-wayland.h> #include <QtWaylandClient/private/qwayland-wayland.h>
#include <QtWaylandClient/private/qwaylandclientexport_p.h> #include <QtWaylandClient/private/qwaylandclientexport_p.h>
#ifndef QT_NO_DRAGANDDROP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QMimeData; class QMimeData;
@ -86,4 +88,6 @@ private:
QT_END_NAMESPACE QT_END_NAMESPACE
#endif // QT_NO_DRAGANDDROP
#endif // QWAYLANDDATASOURCE_H #endif // QWAYLANDDATASOURCE_H

View File

@ -112,7 +112,9 @@ QWaylandWindowManagerIntegration *QWaylandDisplay::windowManagerIntegration() co
QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration) QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
: mWaylandIntegration(waylandIntegration) : mWaylandIntegration(waylandIntegration)
#ifndef QT_NO_DRAGANDDROP
, mDndSelectionHandler(0) , mDndSelectionHandler(0)
#endif
, mWindowExtension(0) , mWindowExtension(0)
, mSubCompositor(0) , mSubCompositor(0)
, mTouchExtension(0) , mTouchExtension(0)
@ -150,7 +152,9 @@ QWaylandDisplay::~QWaylandDisplay(void)
mWaylandIntegration->destroyScreen(screen); mWaylandIntegration->destroyScreen(screen);
} }
mScreens.clear(); mScreens.clear();
#ifndef QT_NO_DRAGANDDROP
delete mDndSelectionHandler.take(); delete mDndSelectionHandler.take();
#endif
wl_display_disconnect(mDisplay); wl_display_disconnect(mDisplay);
} }
@ -243,8 +247,10 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
} else if (interface == QStringLiteral("wl_seat")) { } else if (interface == QStringLiteral("wl_seat")) {
QWaylandInputDevice *inputDevice = mWaylandIntegration->createInputDevice(this, version, id); QWaylandInputDevice *inputDevice = mWaylandIntegration->createInputDevice(this, version, id);
mInputDevices.append(inputDevice); mInputDevices.append(inputDevice);
#ifndef QT_NO_DRAGANDDROP
} else if (interface == QStringLiteral("wl_data_device_manager")) { } else if (interface == QStringLiteral("wl_data_device_manager")) {
mDndSelectionHandler.reset(new QWaylandDataDeviceManager(this, id)); mDndSelectionHandler.reset(new QWaylandDataDeviceManager(this, id));
#endif
} else if (interface == QStringLiteral("qt_surface_extension")) { } else if (interface == QStringLiteral("qt_surface_extension")) {
mWindowExtension.reset(new QtWayland::qt_surface_extension(registry, id, 1)); mWindowExtension.reset(new QtWayland::qt_surface_extension(registry, id, 1));
} else if (interface == QStringLiteral("wl_subcompositor")) { } else if (interface == QStringLiteral("wl_subcompositor")) {

View File

@ -131,9 +131,9 @@ public:
QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; } QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
QWaylandInputDevice *defaultInputDevice() const; QWaylandInputDevice *defaultInputDevice() const;
QWaylandInputDevice *currentInputDevice() const { return defaultInputDevice(); } QWaylandInputDevice *currentInputDevice() const { return defaultInputDevice(); }
#ifndef QT_NO_DRAGANDDROP
QWaylandDataDeviceManager *dndSelectionHandler() const { return mDndSelectionHandler.data(); } QWaylandDataDeviceManager *dndSelectionHandler() const { return mDndSelectionHandler.data(); }
#endif
QtWayland::qt_surface_extension *windowExtension() const { return mWindowExtension.data(); } QtWayland::qt_surface_extension *windowExtension() const { return mWindowExtension.data(); }
QWaylandTouchExtension *touchExtension() const { return mTouchExtension.data(); } QWaylandTouchExtension *touchExtension() const { return mTouchExtension.data(); }
QtWayland::wl_text_input_manager *textInputManager() const { return mTextInputManager.data(); } QtWayland::wl_text_input_manager *textInputManager() const { return mTextInputManager.data(); }
@ -196,7 +196,9 @@ private:
QList<QWaylandInputDevice *> mInputDevices; QList<QWaylandInputDevice *> mInputDevices;
QList<Listener> mRegistryListeners; QList<Listener> mRegistryListeners;
QWaylandIntegration *mWaylandIntegration; QWaylandIntegration *mWaylandIntegration;
#ifndef QT_NO_DRAGANDDROP
QScopedPointer<QWaylandDataDeviceManager> mDndSelectionHandler; QScopedPointer<QWaylandDataDeviceManager> mDndSelectionHandler;
#endif
QScopedPointer<QtWayland::qt_surface_extension> mWindowExtension; QScopedPointer<QtWayland::qt_surface_extension> mWindowExtension;
QScopedPointer<QtWayland::wl_subcompositor> mSubCompositor; QScopedPointer<QtWayland::wl_subcompositor> mSubCompositor;
QScopedPointer<QWaylandTouchExtension> mTouchExtension; QScopedPointer<QWaylandTouchExtension> mTouchExtension;

View File

@ -44,7 +44,7 @@
#include <QDebug> #include <QDebug>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
#ifndef QT_NO_DRAGANDDROP
namespace QtWaylandClient { namespace QtWaylandClient {
QWaylandDrag::QWaylandDrag(QWaylandDisplay *display) QWaylandDrag::QWaylandDrag(QWaylandDisplay *display)
@ -124,5 +124,5 @@ void QWaylandDrag::finishDrag(const QPlatformDropQtResponse &response)
} }
} }
#endif // QT_NO_DRAGANDDROP
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE
namespace QtWaylandClient { namespace QtWaylandClient {
class QWaylandDisplay; class QWaylandDisplay;
#ifndef QT_NO_DRAGANDDROP
class Q_WAYLAND_CLIENT_EXPORT QWaylandDrag : public QBasicDrag class Q_WAYLAND_CLIENT_EXPORT QWaylandDrag : public QBasicDrag
{ {
public: public:
@ -82,7 +82,7 @@ protected:
private: private:
QWaylandDisplay *m_display; QWaylandDisplay *m_display;
}; };
#endif
} }
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -178,10 +178,11 @@ QWaylandInputDevice::QWaylandInputDevice(QWaylandDisplay *display, int version,
, mSerial(0) , mSerial(0)
, mTouchDevice(0) , mTouchDevice(0)
{ {
#ifndef QT_NO_DRAGANDDROP
if (mQDisplay->dndSelectionHandler()) { if (mQDisplay->dndSelectionHandler()) {
mDataDevice = mQDisplay->dndSelectionHandler()->getDataDevice(this); mDataDevice = mQDisplay->dndSelectionHandler()->getDataDevice(this);
} }
#endif
} }
QWaylandInputDevice::~QWaylandInputDevice() QWaylandInputDevice::~QWaylandInputDevice()

View File

@ -126,9 +126,10 @@ QWaylandIntegration::QWaylandIntegration()
{ {
initializeInputDeviceIntegration(); initializeInputDeviceIntegration();
mDisplay = new QWaylandDisplay(this); mDisplay = new QWaylandDisplay(this);
#ifndef QT_NO_DRAGANDDROP
mClipboard = new QWaylandClipboard(mDisplay); mClipboard = new QWaylandClipboard(mDisplay);
mDrag = new QWaylandDrag(mDisplay); mDrag = new QWaylandDrag(mDisplay);
#endif
QString icStr = QPlatformInputContextFactory::requested(); QString icStr = QPlatformInputContextFactory::requested();
icStr.isNull() ? mInputContext.reset(new QWaylandInputContext(mDisplay)) icStr.isNull() ? mInputContext.reset(new QWaylandInputContext(mDisplay))
: mInputContext.reset(QPlatformInputContextFactory::create(icStr)); : mInputContext.reset(QPlatformInputContextFactory::create(icStr));
@ -136,8 +137,10 @@ QWaylandIntegration::QWaylandIntegration()
QWaylandIntegration::~QWaylandIntegration() QWaylandIntegration::~QWaylandIntegration()
{ {
#ifndef QT_NO_DRAGANDDROP
delete mDrag; delete mDrag;
delete mClipboard; delete mClipboard;
#endif
#ifndef QT_NO_ACCESSIBILITY #ifndef QT_NO_ACCESSIBILITY
delete mAccessibility; delete mAccessibility;
#endif #endif
@ -213,6 +216,7 @@ QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const
return mFontDb; return mFontDb;
} }
#ifndef QT_NO_DRAGANDDROP
QPlatformClipboard *QWaylandIntegration::clipboard() const QPlatformClipboard *QWaylandIntegration::clipboard() const
{ {
return mClipboard; return mClipboard;
@ -222,6 +226,7 @@ QPlatformDrag *QWaylandIntegration::drag() const
{ {
return mDrag; return mDrag;
} }
#endif // QT_NO_DRAGANDDROP
QPlatformInputContext *QWaylandIntegration::inputContext() const QPlatformInputContext *QWaylandIntegration::inputContext() const
{ {

View File

@ -79,11 +79,10 @@ public:
QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE; QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE; QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE; QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE;
QPlatformDrag *drag() const Q_DECL_OVERRIDE; QPlatformDrag *drag() const Q_DECL_OVERRIDE;
#endif
QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE; QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE;
QVariant styleHint(StyleHint hint) const Q_DECL_OVERRIDE; QVariant styleHint(StyleHint hint) const Q_DECL_OVERRIDE;
@ -120,8 +119,10 @@ private:
QWaylandShellIntegration *createShellIntegration(const QString& interfaceName); QWaylandShellIntegration *createShellIntegration(const QString& interfaceName);
QPlatformFontDatabase *mFontDb; QPlatformFontDatabase *mFontDb;
#ifndef QT_NO_DRAGANDDROP
QPlatformClipboard *mClipboard; QPlatformClipboard *mClipboard;
QPlatformDrag *mDrag; QPlatformDrag *mDrag;
#endif
QWaylandDisplay *mDisplay; QWaylandDisplay *mDisplay;
QPlatformNativeInterface *mNativeInterface; QPlatformNativeInterface *mNativeInterface;
QScopedPointer<QPlatformInputContext> mInputContext; QScopedPointer<QPlatformInputContext> mInputContext;

View File

@ -106,6 +106,7 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc
return NULL; return NULL;
} }
#ifndef QT_NO_OPENGL
void *QWaylandNativeInterface::nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) void *QWaylandNativeInterface::nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context)
{ {
QByteArray lowerCaseResource = resource.toLower(); QByteArray lowerCaseResource = resource.toLower();
@ -121,6 +122,7 @@ void *QWaylandNativeInterface::nativeResourceForContext(const QByteArray &resour
return 0; return 0;
} }
#endif // QT_NO_OPENGL
QVariantMap QWaylandNativeInterface::windowProperties(QPlatformWindow *window) const QVariantMap QWaylandNativeInterface::windowProperties(QPlatformWindow *window) const
{ {

View File

@ -66,8 +66,9 @@ public:
QWindow *window) Q_DECL_OVERRIDE; QWindow *window) Q_DECL_OVERRIDE;
void *nativeResourceForScreen(const QByteArray &resourceString, void *nativeResourceForScreen(const QByteArray &resourceString,
QScreen *screen) Q_DECL_OVERRIDE; QScreen *screen) Q_DECL_OVERRIDE;
#ifndef QT_NO_OPENGL
void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) Q_DECL_OVERRIDE; void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) Q_DECL_OVERRIDE;
#endif
QVariantMap windowProperties(QPlatformWindow *window) const Q_DECL_OVERRIDE; QVariantMap windowProperties(QPlatformWindow *window) const Q_DECL_OVERRIDE;
QVariant windowProperty(QPlatformWindow *window, const QString &name) const Q_DECL_OVERRIDE; QVariant windowProperty(QPlatformWindow *window, const QString &name) const Q_DECL_OVERRIDE;
QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const Q_DECL_OVERRIDE; QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const Q_DECL_OVERRIDE;

View File

@ -782,10 +782,12 @@ void QWaylandWindow::requestActivateWindow()
void QWaylandWindow::unfocus() void QWaylandWindow::unfocus()
{ {
#ifndef QT_NO_DRAGANDDROP
QWaylandInputDevice *inputDevice = mDisplay->currentInputDevice(); QWaylandInputDevice *inputDevice = mDisplay->currentInputDevice();
if (inputDevice && inputDevice->dataDevice()) { if (inputDevice && inputDevice->dataDevice()) {
inputDevice->dataDevice()->invalidateSelectionOffer(); inputDevice->dataDevice()->invalidateSelectionOffer();
} }
#endif
} }
bool QWaylandWindow::isExposed() const bool QWaylandWindow::isExposed() const