SPDX-FileCopyrightText: 2014 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef CLIPBOARD_H
#define CLIPBOARD_H
#include <QClipboard>
#include <QVariant>
#include <qqmlregistration.h>
class ClipboardPrivate;
* @brief Wrapper for QClipboard
*
* Offers a simple wrapper to interact with QClipboard from QtQuick.
*
* ```
* import QtQuick
* import org.kde.kquickcontrolsaddons as KQuickControlsAddons
* Text {
* text: "lorem ipsum"
*
* KQuickControlsAddons.Clipboard { id: clipboard }
*
* MouseArea {
* anchors.fill: parent
* acceptedButtons: Qt.LeftButton | Qt.RightButton
* onClicked: clipboard.content = parent.text
* }
* }
* ```
*/
class Clipboard : public QObject
{
Q_OBJECT
QML_ELEMENT
* Controls the state this object will be monitoring and extracting its contents from.
*/
Q_PROPERTY(QClipboard::Mode mode READ mode WRITE setMode NOTIFY modeChanged)
* Provides the contents currently in the clipboard and lets modify them.
*/
Q_PROPERTY(QVariant content READ content WRITE setContent NOTIFY contentChanged)
* Figure out the nature of the contents in the clipboard as mimetype strings.
*/
Q_PROPERTY(QStringList formats READ formats NOTIFY contentChanged)
public:
explicit Clipboard(QObject *parent = nullptr);
QClipboard::Mode mode() const;
void setMode(QClipboard::Mode mode);
* @param format mimetype string
* @return Output based on the mimetype. This may be a list of URLs, text, image data, or use QMimeData::data
*/
Q_SCRIPTABLE QVariant contentFormat(const QString &format) const;
QVariant content() const;
void setContent(const QVariant &content);
QStringList formats() const;
Q_SCRIPTABLE void clear();
Q_SIGNALS:
void modeChanged(QClipboard::Mode mode);
void contentChanged();
private Q_SLOTS:
void clipboardChanged(QClipboard::Mode m);
private:
QClipboard *m_clipboard;
QClipboard::Mode m_mode;
};
#endif