File indexing completed on 2024-03-24 15:28:40
0001 /* 0002 SPDX-FileCopyrightText: 2020 David Edmundson <davidedmundson@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KSYSTEMCLIPBOARD_H 0008 #define KSYSTEMCLIPBOARD_H 0009 0010 #include <kguiaddons_export.h> 0011 0012 #include <QClipboard> 0013 #include <QObject> 0014 0015 class QMimeData; 0016 0017 /** 0018 * This class mimics QClipboard but unlike QClipboard it will continue 0019 * to get updates even when our window does not have focus. 0020 * 0021 * This may require extra access permissions 0022 * 0023 * @since 5.89 0024 */ 0025 class KGUIADDONS_EXPORT KSystemClipboard : public QObject 0026 { 0027 Q_OBJECT 0028 public: 0029 /** 0030 * Returns a shared global SystemClipboard instance 0031 */ 0032 static KSystemClipboard *instance(); 0033 0034 /** 0035 * Sets the clipboard to the new contents 0036 * The clipboard takes ownership of mime 0037 */ 0038 virtual void setMimeData(QMimeData *mime, QClipboard::Mode mode) = 0; 0039 /** 0040 * Clears the current clipboard 0041 */ 0042 virtual void clear(QClipboard::Mode mode) = 0; 0043 /** 0044 * Returns the current mime data received by the clipboard 0045 */ 0046 virtual const QMimeData *mimeData(QClipboard::Mode mode) const = 0; 0047 /** 0048 * Returns the text content of the Clipboard 0049 * 0050 * Similar to QClipboard::text(QClipboard::Mode mode) 0051 */ 0052 QString text(QClipboard::Mode mode); 0053 Q_SIGNALS: 0054 /** 0055 * Emitted when the clipboard changes similar to QClipboard::changed 0056 */ 0057 void changed(QClipboard::Mode mode); 0058 0059 protected: 0060 KSystemClipboard(QObject *parent); 0061 }; 0062 0063 #endif