/****************************************************************************
**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
**
** This file is part of the config.tests of the Qt Toolkit.
**
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "QtPlatformSupport/private/qgenericunixfontdatabase_p.h"
#include <QtPlatformSupport/private/qgenericunixeventdispatcher_p.h>
+#include <QtPlatformSupport/private/qgenericunixthemes_p.h>
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/QWindowSystemInterface>
-#include <QtGui/QPlatformCursor>
+#include <qpa/qplatformcursor.h>
#include <QtGui/QSurfaceFormat>
#include <QtGui/QOpenGLContext>
-#include <private/qplatforminputcontextfactory_qpa_p.h>
-#include <qplatforminputcontext_qpa.h>
+#include <qpa/qplatforminputcontextfactory_p.h>
+#include <qpa/qplatformaccessibility.h>
+#include <qpa/qplatforminputcontext.h>
#ifdef QT_WAYLAND_GL_SUPPORT
#include "gl_integration/qwaylandglintegration.h"
#endif
+#ifdef QT_WAYLAND_WINDOWMANAGER_SUPPORT
+#include "windowmanager_integration/qwaylandwindowmanagerintegration.h"
+#endif
+
QWaylandIntegration::QWaylandIntegration()
: mFontDb(new QGenericUnixFontDatabase())
, mEventDispatcher(createUnixEventDispatcher())
- , mNativeInterface(new QWaylandNativeInterface)
+ , mNativeInterface(new QWaylandNativeInterface(this))
+ , mAccessibility(new QPlatformAccessibility())
{
QGuiApplicationPrivate::instance()->setEventDispatcher(mEventDispatcher);
mDisplay = new QWaylandDisplay();
+ mClipboard = new QWaylandClipboard(mDisplay);
+ mDrag = new QWaylandDrag(mDisplay);
foreach (QPlatformScreen *screen, mDisplay->screens())
screenAdded(screen);
mInputContext = QPlatformInputContextFactory::create();
}
+QWaylandIntegration::~QWaylandIntegration()
+{
+ delete mDrag;
+ delete mClipboard;
+ delete mAccessibility;
+ delete mNativeInterface;
+ delete mDisplay;
+}
+
QPlatformNativeInterface * QWaylandIntegration::nativeInterface() const
{
return mNativeInterface;
return false;
#endif
case ThreadedOpenGL:
- return hasCapability(OpenGL);
+#ifdef QT_WAYLAND_GL_SUPPORT
+ return mDisplay->eglIntegration()->supportsThreadedOpenGL();
+#else
+ return false;
+#endif
+ case BufferQueueingOpenGL:
+ return true;
default: return QPlatformIntegration::hasCapability(cap);
}
}
#ifdef QT_WAYLAND_GL_SUPPORT
return mDisplay->eglIntegration()->createPlatformOpenGLContext(context->format(), context->shareHandle());
#else
- Q_UNUSED(glFormat);
- Q_UNUSED(share);
+ Q_UNUSED(context);
return 0;
#endif
}
QPlatformClipboard *QWaylandIntegration::clipboard() const
{
- return QWaylandClipboard::instance(mDisplay);
+ return mClipboard;
}
QPlatformDrag *QWaylandIntegration::drag() const
{
- return QWaylandDrag::instance(mDisplay);
+ return mDrag;
}
QPlatformInputContext *QWaylandIntegration::inputContext() const
{
return mInputContext;
}
+
+QVariant QWaylandIntegration::styleHint(StyleHint hint) const
+{
+#ifdef QT_WAYLAND_WINDOWMANAGER_SUPPORT
+ if (hint == ShowIsFullScreen && mDisplay->windowManagerIntegration())
+ return mDisplay->windowManagerIntegration()->showIsFullScreen();
+#endif
+ return QPlatformIntegration::styleHint(hint);
+}
+
+QPlatformAccessibility *QWaylandIntegration::accessibility() const
+{
+ return mAccessibility;
+}
+
+QPlatformServices *QWaylandIntegration::services() const
+{
+#ifdef QT_WAYLAND_WINDOWMANAGER_SUPPORT
+ return mDisplay->windowManagerIntegration();
+#else
+ return QWaylandIntegration::services();
+#endif
+}
+
+QWaylandDisplay *QWaylandIntegration::display() const
+{
+ return mDisplay;
+}
+
+QStringList QWaylandIntegration::themeNames() const
+{
+ return QGenericUnixTheme::themeNames();
+}
+
+QPlatformTheme *QWaylandIntegration::createPlatformTheme(const QString &name) const
+{
+ return QGenericUnixTheme::createUnixTheme(name);
+}