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