KWin
Loading...
Searching...
No Matches
abstract_data_source.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2020 David Edmundson <davidedmundson@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#pragma once
8
9#include "kwin_export.h"
10
11#include "clientconnection.h"
12#include "datadevicemanager.h"
13
14struct wl_client;
15
16namespace KWin
17{
25// Anything related to selections are pure virtual, content relating
26// to drag and drop has a default implementation
27
28class KWIN_EXPORT AbstractDataSource : public QObject
29{
30 Q_OBJECT
31public:
32 virtual bool isAccepted() const
33 {
34 return false;
35 }
36
37 virtual void accept(const QString &mimeType)
38 {
39 };
40 virtual void requestData(const QString &mimeType, qint32 fd) = 0;
41 virtual void cancel() = 0;
42
43 virtual QStringList mimeTypes() const = 0;
44
48 virtual DataDeviceManagerInterface::DnDActions supportedDragAndDropActions() const
49 {
50 return {};
51 };
53 {
54 return DataDeviceManagerInterface::DnDAction::None;
55 }
59 virtual void dropPerformed(){};
63 virtual void dndFinished(){};
69 {
70 };
71
75 virtual void dndCancelled()
76 {
77 }
78
79 virtual wl_client *client() const
80 {
81 return nullptr;
82 };
83
84Q_SIGNALS:
86
87 void mimeTypeOffered(const QString &);
89
90protected:
91 explicit AbstractDataSource(QObject *parent = nullptr);
92};
93
94}
The AbstractDataSource class abstracts the data that can be transferred to another client.
virtual DataDeviceManagerInterface::DnDAction selectedDndAction() const
virtual void cancel()=0
virtual DataDeviceManagerInterface::DnDActions supportedDragAndDropActions() const
void mimeTypeOffered(const QString &)
virtual bool isAccepted() const
virtual QStringList mimeTypes() const =0
void supportedDragAndDropActionsChanged()
virtual void accept(const QString &mimeType)
virtual void dndAction(DataDeviceManagerInterface::DnDAction action)
virtual wl_client * client() const
virtual void requestData(const QString &mimeType, qint32 fd)=0