Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qcocoaclipboard.mm
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "qcocoaclipboard.h"
5
6#include <QtGui/qutimimeconverter.h>
7
8#ifndef QT_NO_CLIPBOARD
9
11
13 :m_clipboard(new QMacPasteboard(kPasteboardClipboard, QUtiMimeConverter::HandlerScopeFlag::Clipboard))
14 ,m_find(new QMacPasteboard(kPasteboardFind, QUtiMimeConverter::HandlerScopeFlag::Clipboard))
15{
16 connect(qGuiApp, &QGuiApplication::applicationStateChanged, this, &QCocoaClipboard::handleApplicationStateChanged);
17}
18
20{
21 if (QMacPasteboard *pasteBoard = pasteboardForMode(mode)) {
22 pasteBoard->sync();
23 return pasteBoard->mimeData();
24 }
25 return nullptr;
26}
27
29{
30 if (QMacPasteboard *pasteBoard = pasteboardForMode(mode)) {
31 if (!data) {
32 pasteBoard->clear();
33 }
34
35 pasteBoard->sync();
36 pasteBoard->setMimeData(data, QMacPasteboard::LazyRequest);
38 }
39}
40
45
47{
49 return false;
50}
51
53{
55 return m_clipboard.data();
56 else if (mode == QClipboard::FindBuffer)
57 return m_find.data();
58 else
59 return nullptr;
60}
61
62void QCocoaClipboard::handleApplicationStateChanged(Qt::ApplicationState state)
63{
65 return;
66
67 if (m_clipboard->sync())
69 if (m_find->sync())
71}
72
74
75#include "moc_qcocoaclipboard.cpp"
76
77#endif // QT_NO_CLIPBOARD
Mode
\keyword clipboard mode
Definition qclipboard.h:27
bool supportsMode(QClipboard::Mode mode) const override
QMacPasteboard * pasteboardForMode(QClipboard::Mode mode) const
bool ownsMode(QClipboard::Mode mode) const override
QMimeData * mimeData(QClipboard::Mode mode=QClipboard::Clipboard) override
void setMimeData(QMimeData *data, QClipboard::Mode mode=QClipboard::Clipboard) override
void applicationStateChanged(Qt::ApplicationState state)
bool sync() const
\inmodule QtCore
Definition qmimedata.h:16
void clear()
Removes all the MIME type and data entries in the object.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
void emitChanged(QClipboard::Mode mode)
T * data() const noexcept
Returns the value of the pointer referenced by this object.
The QUtiMimeConverter class converts between a MIME type and a \l{https://developer....
else opt state
[0]
Combined button and popup list for selecting options.
ApplicationState
Definition qnamespace.h:262
@ ApplicationActive
Definition qnamespace.h:266
#define qGuiApp
GLenum mode
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
#define Q_UNUSED(x)