1 /*
2     SPDX-FileCopyrightText: 2020 David Edmundson <davidedmundson@kde.org>
3 
4     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5 */
6 
7 #pragma once
8 #include <QObject>
9 #include <QScopedPointer>
10 #include <QClipboard>
11 #include <memory>
12 
13 class DataControlDevice;
14 class DataControlDeviceManager;
15 class QMimeData;
16 
17 class DataControl : public QObject
18 {
19     Q_OBJECT
20 public:
21     DataControl(QObject *parent = nullptr);
22     ~DataControl() override;
23 
24     const QMimeData *mimeData(QClipboard::Mode mode) const;
25     void setMimeData(QMimeData *mime, QClipboard::Mode mode);
26     void clear(QClipboard::Mode mode);
27 
28 Q_SIGNALS:
29     void changed(QClipboard::Mode mode);
30 
31 private:
32     std::unique_ptr<DataControlDeviceManager> m_manager;
33     std::unique_ptr<DataControlDevice> m_device;
34 };
35