summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformclipboard.cpp
blob: 7321b5065dcb2eaba87a313b97e65fcc2e18468e (plain)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
// Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#include"qplatformclipboard.h"#ifndef QT_NO_CLIPBOARD#include <QtGui/private/qguiapplication_p.h>#include <QtCore/qmimedata.h> QT_BEGIN_NAMESPACE class QClipboardData {public:QClipboardData();~QClipboardData();voidsetSource(QMimeData* s){if(s == src)return;delete src; src = s;} QMimeData*source(){return src; }private: QMimeData* src;};QClipboardData::QClipboardData(){ src =nullptr;}QClipboardData::~QClipboardData(){delete src;}Q_GLOBAL_STATIC(QClipboardData,q_clipboardData);/*! \class QPlatformClipboard \since 5.0 \internal \preliminary \ingroup qpa \brief The QPlatformClipboard class provides an abstraction for the system clipboard. */QPlatformClipboard::~QPlatformClipboard(){} QMimeData *QPlatformClipboard::mimeData(QClipboard::Mode mode){//we know its clipboardQ_UNUSED(mode);returnq_clipboardData()->source();}voidQPlatformClipboard::setMimeData(QMimeData *data,QClipboard::Mode mode){//we know its clipboardQ_UNUSED(mode);q_clipboardData()->setSource(data);emitChanged(mode);}boolQPlatformClipboard::supportsMode(QClipboard::Mode mode)const{return mode ==QClipboard::Clipboard;}boolQPlatformClipboard::ownsMode(QClipboard::Mode mode)const{Q_UNUSED(mode);return false;}voidQPlatformClipboard::emitChanged(QClipboard::Mode mode){if(!QGuiApplicationPrivate::is_app_closing)// QTBUG-39317, prevent emission when closing down.QGuiApplication::clipboard()->emitChanged(mode);} QT_END_NAMESPACE #endif//QT_NO_CLIPBOARD
close