From 42cf0bd5fa14075bf90e925010b36c83e03f7f87 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Wed, 14 Jun 2017 17:08:32 +0200 Subject: Remove QWaylandExtendedSurface* from the private compositor API Removes QWaylandExtendedSurface, QWaylandSurfaceExtensionGlobal. The only code touching these classes was QWaylandQuickSurface::setClientRenderingEnabled(), but that code was only useful if QWaylandSurfaceExtensionGlobal had already been instantiated. The extension is a remnant from the past, and since no examples or tests are using the extension, it's safe to remove it. Change-Id: Ife202cb035c836b73a7c03985f5bf3be0abebc3d Reviewed-by: Paul Olav Tvete --- .../compositor_api/qwaylandquicksurface.cpp | 13 +- .../compositor_api/qwaylandquicksurface.h | 6 +- src/compositor/compositor_api/qwaylandsurface.cpp | 1 - src/compositor/extensions/extensions.pri | 3 - src/compositor/extensions/qwlextendedsurface.cpp | 188 --------------------- src/compositor/extensions/qwlextendedsurface_p.h | 159 ----------------- 6 files changed, 8 insertions(+), 362 deletions(-) delete mode 100644 src/compositor/extensions/qwlextendedsurface.cpp delete mode 100644 src/compositor/extensions/qwlextendedsurface_p.h diff --git a/src/compositor/compositor_api/qwaylandquicksurface.cpp b/src/compositor/compositor_api/qwaylandquicksurface.cpp index ec68ee6a1..1197e9e43 100644 --- a/src/compositor/compositor_api/qwaylandquicksurface.cpp +++ b/src/compositor/compositor_api/qwaylandquicksurface.cpp @@ -49,9 +49,6 @@ #include #include -#include -#include - QT_BEGIN_NAMESPACE class QWaylandQuickSurfacePrivate : public QWaylandSurfacePrivate @@ -112,8 +109,11 @@ void QWaylandQuickSurface::setUseTextureAlpha(bool useTextureAlpha) /*! * \qmlproperty bool QtWaylandCompositor::WaylandSurface::clientRenderingEnabled + * \deprecated * - * This property specifies whether client rendering is enabled for the surface. + * This property used to specify whether client rendering was enabled for the surface. + * It depended on a Wayland extension that was part of the private API. The surface extension + * is not used anymore, so this property does nothing. */ bool QWaylandQuickSurface::clientRenderingEnabled() const { @@ -124,12 +124,9 @@ bool QWaylandQuickSurface::clientRenderingEnabled() const void QWaylandQuickSurface::setClientRenderingEnabled(bool enabled) { Q_D(QWaylandQuickSurface); + qWarning() << Q_FUNC_INFO << "doesn't do anything"; if (d->clientRenderingEnabled != enabled) { d->clientRenderingEnabled = enabled; - - if (QtWayland::ExtendedSurface *extSurface = QtWayland::ExtendedSurface::findIn(this)) - extSurface->setVisibility(enabled ? QWindow::AutomaticVisibility : QWindow::Hidden); - emit clientRenderingEnabledChanged(); } } diff --git a/src/compositor/compositor_api/qwaylandquicksurface.h b/src/compositor/compositor_api/qwaylandquicksurface.h index 7ec08e123..273fb25f4 100644 --- a/src/compositor/compositor_api/qwaylandquicksurface.h +++ b/src/compositor/compositor_api/qwaylandquicksurface.h @@ -63,12 +63,12 @@ public: bool useTextureAlpha() const; void setUseTextureAlpha(bool useTextureAlpha); - bool clientRenderingEnabled() const; - void setClientRenderingEnabled(bool enabled); + Q_DECL_DEPRECATED bool clientRenderingEnabled() const; + Q_DECL_DEPRECATED void setClientRenderingEnabled(bool enabled); Q_SIGNALS: void useTextureAlphaChanged(); - void clientRenderingEnabledChanged(); + void clientRenderingEnabledChanged(); //deprecated }; QT_END_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandsurface.cpp b/src/compositor/compositor_api/qwaylandsurface.cpp index c817a7cda..34b093d21 100644 --- a/src/compositor/compositor_api/qwaylandsurface.cpp +++ b/src/compositor/compositor_api/qwaylandsurface.cpp @@ -49,7 +49,6 @@ #include "wayland_wrapper/qwldatadevicemanager_p.h" #endif -#include "extensions/qwlextendedsurface_p.h" #include "qwaylandinputmethodcontrol_p.h" #include diff --git a/src/compositor/extensions/extensions.pri b/src/compositor/extensions/extensions.pri index 9cb0bcfa1..7c53e5d43 100644 --- a/src/compositor/extensions/extensions.pri +++ b/src/compositor/extensions/extensions.pri @@ -2,7 +2,6 @@ CONFIG += wayland-scanner CONFIG += generated_privates WAYLANDSERVERSOURCES += \ - ../extensions/surface-extension.xml \ ../extensions/touch-extension.xml \ ../extensions/qtkey-extension.xml \ ../extensions/qt-windowmanager.xml \ @@ -12,7 +11,6 @@ WAYLANDSERVERSOURCES += \ ../3rdparty/protocol/ivi-application.xml \ HEADERS += \ - extensions/qwlextendedsurface_p.h \ extensions/qwlqttouch_p.h \ extensions/qwlqtkey_p.h \ extensions/qwaylandshell.h \ @@ -36,7 +34,6 @@ HEADERS += \ extensions/qwaylandivisurface_p.h \ SOURCES += \ - extensions/qwlextendedsurface.cpp \ extensions/qwlqttouch.cpp \ extensions/qwlqtkey.cpp \ extensions/qwaylandshell.cpp \ diff --git a/src/compositor/extensions/qwlextendedsurface.cpp b/src/compositor/extensions/qwlextendedsurface.cpp deleted file mode 100644 index b0850f0e2..000000000 --- a/src/compositor/extensions/qwlextendedsurface.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWaylandCompositor module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qwlextendedsurface_p.h" - -#include - -QT_BEGIN_NAMESPACE - -namespace QtWayland { - -SurfaceExtensionGlobal::SurfaceExtensionGlobal(QWaylandCompositor *compositor) - : QWaylandCompositorExtensionTemplate(compositor) - , QtWaylandServer::qt_surface_extension(compositor->display(), 1) -{ -} - -void SurfaceExtensionGlobal::surface_extension_get_extended_surface(Resource *resource, - uint32_t id, - struct wl_resource *surface_resource) -{ - QWaylandSurface *surface = QWaylandSurface::fromResource(surface_resource); - ExtendedSurface *extSurface = new ExtendedSurface(resource->client(),id, wl_resource_get_version(resource->handle), surface); - emit extendedSurfaceReady(extSurface, surface); -} - -ExtendedSurface::ExtendedSurface(struct wl_client *client, uint32_t id, int version, QWaylandSurface *surface) - : QWaylandCompositorExtensionTemplate(surface) - , QtWaylandServer::qt_extended_surface(client, id, version) - , m_surface(surface) - , m_windowFlags(0) -{ -} - -ExtendedSurface::~ExtendedSurface() -{ -} - -void ExtendedSurface::sendGenericProperty(const QString &name, const QVariant &variant) -{ - QByteArray byteValue; - QDataStream ds(&byteValue, QIODevice::WriteOnly); - ds << variant; - send_set_generic_property(name, byteValue); - -} - -void ExtendedSurface::sendOnScreenVisibilityChange(bool onScreen) -{ - setVisibility(onScreen ? QWindow::AutomaticVisibility : QWindow::Hidden); -} - -void ExtendedSurface::setVisibility(QWindow::Visibility visibility) -{ - send_onscreen_visibility(visibility); -} - -void ExtendedSurface::setParentSurface(QWaylandSurface *surface) -{ - m_surface = surface; -} - -void ExtendedSurface::extended_surface_update_generic_property(Resource *resource, - const QString &name, - struct wl_array *value) -{ - Q_UNUSED(resource); - QVariant variantValue; - QByteArray byteValue((const char*)value->data, value->size); - QDataStream ds(&byteValue, QIODevice::ReadOnly); - ds >> variantValue; - setWindowPropertyImpl(name,variantValue); -} - -Qt::ScreenOrientations ExtendedSurface::contentOrientationMask() const -{ - return m_contentOrientationMask; -} - -void ExtendedSurface::extended_surface_set_content_orientation_mask(Resource *resource, int32_t orientation) -{ - Q_UNUSED(resource); - Qt::ScreenOrientations mask = 0; - if (orientation & QT_EXTENDED_SURFACE_ORIENTATION_PORTRAITORIENTATION) - mask |= Qt::PortraitOrientation; - if (orientation & QT_EXTENDED_SURFACE_ORIENTATION_LANDSCAPEORIENTATION) - mask |= Qt::LandscapeOrientation; - if (orientation & QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDPORTRAITORIENTATION) - mask |= Qt::InvertedPortraitOrientation; - if (orientation & QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDLANDSCAPEORIENTATION) - mask |= Qt::InvertedLandscapeOrientation; - if (orientation & QT_EXTENDED_SURFACE_ORIENTATION_PRIMARYORIENTATION) - mask |= Qt::PrimaryOrientation; - - Qt::ScreenOrientations oldMask = m_contentOrientationMask; - m_contentOrientationMask = mask; - - if (mask != oldMask) - emit contentOrientationMaskChanged(); -} - -QVariantMap ExtendedSurface::windowProperties() const -{ - return m_windowProperties; -} - -QVariant ExtendedSurface::windowProperty(const QString &propertyName) const -{ - QVariantMap props = m_windowProperties; - return props.value(propertyName); -} - -void ExtendedSurface::setWindowProperty(const QString &name, const QVariant &value) -{ - setWindowPropertyImpl(name,value); - sendGenericProperty(name, value); -} - -void ExtendedSurface::setWindowPropertyImpl(const QString &name, const QVariant &value) -{ - m_windowProperties.insert(name, value); - emit windowPropertyChanged(name,value); -} - -void ExtendedSurface::extended_surface_set_window_flags(Resource *resource, int32_t flags) -{ - Q_UNUSED(resource); - WindowFlags windowFlags(flags); - if (windowFlags == m_windowFlags) - return; - m_windowFlags = windowFlags; - emit windowFlagsChanged(); -} - -void ExtendedSurface::extended_surface_destroy_resource(Resource *) -{ - delete this; -} - -void ExtendedSurface::extended_surface_raise(Resource *) -{ - emit raiseRequested(); -} - -void ExtendedSurface::extended_surface_lower(Resource *) -{ - emit lowerRequested(); -} - -} - -QT_END_NAMESPACE diff --git a/src/compositor/extensions/qwlextendedsurface_p.h b/src/compositor/extensions/qwlextendedsurface_p.h deleted file mode 100644 index 8ad89619a..000000000 --- a/src/compositor/extensions/qwlextendedsurface_p.h +++ /dev/null @@ -1,159 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWaylandCompositor module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WLEXTENDEDSURFACE_H -#define WLEXTENDEDSURFACE_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -#include -#include -#include - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QWaylandCompositor; -class QWaylandSurface; - -namespace QtWayland { - -class ExtendedSurface; - -class Q_WAYLAND_COMPOSITOR_EXPORT SurfaceExtensionGlobal : public QWaylandCompositorExtensionTemplate, public QtWaylandServer::qt_surface_extension -{ - Q_OBJECT -public: - SurfaceExtensionGlobal(QWaylandCompositor *compositor); - -Q_SIGNALS: - void extendedSurfaceReady(ExtendedSurface *extSurface, QWaylandSurface *surface); - -private: - void surface_extension_get_extended_surface(Resource *resource, - uint32_t id, - struct wl_resource *surface); - -}; - -class Q_WAYLAND_COMPOSITOR_EXPORT ExtendedSurface : public QWaylandCompositorExtensionTemplate, public QtWaylandServer::qt_extended_surface -{ - Q_OBJECT - Q_PROPERTY(Qt::ScreenOrientations contentOrientationMask READ contentOrientationMask NOTIFY contentOrientationMaskChanged) - Q_PROPERTY(WindowFlags windowFlags READ windowFlags NOTIFY windowFlagsChanged) - Q_FLAGS(WindowFlag WindowFlags) -public: - enum WindowFlag { - OverridesSystemGestures = 0x0001, - StaysOnTop = 0x0002, - BypassWindowManager = 0x0004 - }; - Q_DECLARE_FLAGS(WindowFlags, WindowFlag) - - ExtendedSurface(struct wl_client *client, uint32_t id, int version, QWaylandSurface *surface); - ~ExtendedSurface(); - - void sendGenericProperty(const QString &name, const QVariant &variant); - - void sendOnScreenVisibilityChange(bool onScreen); - void setVisibility(QWindow::Visibility visibility); - - void setParentSurface(QWaylandSurface *s); - - Qt::ScreenOrientations contentOrientationMask() const; - - WindowFlags windowFlags() const { return m_windowFlags; } - - QVariantMap windowProperties() const; - QVariant windowProperty(const QString &propertyName) const; - void setWindowProperty(const QString &name, const QVariant &value); - -Q_SIGNALS: - void contentOrientationMaskChanged(); - void windowFlagsChanged(); - void windowPropertyChanged(const QString &name, const QVariant &value); - void raiseRequested(); - void lowerRequested(); - -private: - void setWindowPropertyImpl(const QString &name, const QVariant &value); - - QWaylandSurface *m_surface; - - Qt::ScreenOrientations m_contentOrientationMask; - - WindowFlags m_windowFlags; - - QByteArray m_authenticationToken; - QVariantMap m_windowProperties; - - void extended_surface_update_generic_property(Resource *resource, - const QString &name, - struct wl_array *value) override; - - void extended_surface_set_content_orientation_mask(Resource *resource, - int32_t orientation) override; - - void extended_surface_set_window_flags(Resource *resource, - int32_t flags) override; - - void extended_surface_destroy_resource(Resource *) override; - void extended_surface_raise(Resource *) override; - void extended_surface_lower(Resource *) override; -}; - -} - -QT_END_NAMESPACE - -#endif // WLEXTENDEDSURFACE_H -- cgit v1.2.3