diff options
Diffstat (limited to 'tests/auto/client/shared/datadevice.h')
-rw-r--r-- | tests/auto/client/shared/datadevice.h | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/tests/auto/client/shared/datadevice.h b/tests/auto/client/shared/datadevice.h index 98e780b22..356dfa74a 100644 --- a/tests/auto/client/shared/datadevice.h +++ b/tests/auto/client/shared/datadevice.h @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef MOCKCOMPOSITOR_DATADEVICE_H #define MOCKCOMPOSITOR_DATADEVICE_H @@ -43,6 +18,7 @@ public: explicit DataDeviceManager(CoreCompositor *compositor, int version = 1) : QtWaylandServer::wl_data_device_manager(compositor->m_display, version) , m_version(version) + , m_compositor(compositor) {} ~DataDeviceManager() override { qDeleteAll(m_dataDevices); } bool isClean() override; @@ -50,13 +26,16 @@ public: int m_version = 1; // TODO: remove on libwayland upgrade QMap<Seat *, DataDevice *> m_dataDevices; + CoreCompositor *m_compositor; protected: void data_device_manager_get_data_device(Resource *resource, uint32_t id, ::wl_resource *seatResource) override; + void data_device_manager_create_data_source(Resource *resource, uint32_t id) override; }; -class DataDevice : public QtWaylandServer::wl_data_device +class DataDevice : public QObject, public QtWaylandServer::wl_data_device { + Q_OBJECT public: explicit DataDevice(DataDeviceManager *manager, Seat *seat) : m_manager(manager) @@ -69,11 +48,37 @@ public: void send_selection(::wl_resource *resource) = delete; void sendSelection(DataOffer *offer); + void send_enter(uint32_t serial, ::wl_resource *surface, wl_fixed_t x, wl_fixed_t y, ::wl_resource *id) = delete; + void sendEnter(Surface *surface, const QPoint& position); + + void send_motion(uint32_t time, wl_fixed_t x, wl_fixed_t y) = delete; + void sendMotion(Surface *surface, const QPoint &position); + + void send_drop(::wl_resource *resource) = delete; + void sendDrop(Surface *surface); + + void send_leave(::wl_resource *resource) = delete; + void sendLeave(Surface *surface); + DataDeviceManager *m_manager = nullptr; Seat *m_seat = nullptr; - QVector<DataOffer *> m_sentSelectionOffers; + QList<DataOffer *> m_sentSelectionOffers; + QPointer<DataOffer> m_offer; + +signals: + void dragStarted(); protected: + void data_device_start_drag(Resource *resource, ::wl_resource *source, ::wl_resource *origin, ::wl_resource *icon, uint32_t serial) override + { + Q_UNUSED(resource); + Q_UNUSED(source); + Q_UNUSED(origin); + Q_UNUSED(icon); + Q_UNUSED(serial); + emit dragStarted(); + } + void data_device_release(Resource *resource) override { int removed = m_manager->m_dataDevices.remove(m_seat); |