Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
// Qt-Security score:significant reason:default
4
5
#
include
"qcocoaclipboard.h"
6
7
#
include
<
QtGui
/
qguiapplication
.
h
>
8
#
include
<
QtGui
/
qutimimeconverter
.
h
>
9
10
#
ifndef
QT_NO_CLIPBOARD
11
12
QT_BEGIN_NAMESPACE
13
14
QCocoaClipboard::QCocoaClipboard()
15
:m_clipboard(
new
QMacPasteboard(kPasteboardClipboard, QUtiMimeConverter::HandlerScopeFlag::Clipboard))
16
,m_find(
new
QMacPasteboard(kPasteboardFind, QUtiMimeConverter::HandlerScopeFlag::Clipboard))
17
{
18
connect(qGuiApp, &QGuiApplication::applicationStateChanged,
this
, &QCocoaClipboard::handleApplicationStateChanged);
19
}
20
21
QMimeData
*
QCocoaClipboard
::
mimeData
(QClipboard::Mode mode)
22
{
23
if
(
QMacPasteboard
*pasteBoard = pasteboardForMode(mode)) {
24
pasteBoard
->
sync
(
)
;
25
return
pasteBoard->mimeData();
26
}
27
return
nullptr
;
28
}
29
30
void
QCocoaClipboard
::
setMimeData
(QMimeData *data, QClipboard::Mode mode)
31
{
32
if
(
QMacPasteboard
*pasteBoard = pasteboardForMode(mode)) {
33
if
(!data) {
34
pasteBoard
->
clear
(
)
;
35
}
36
37
pasteBoard
->
sync
(
)
;
38
pasteBoard->setMimeData(data,
QMacPasteboard
::
LazyRequest
);
39
emitChanged(mode);
40
}
41
}
42
43
bool
QCocoaClipboard
::
supportsMode
(QClipboard::Mode mode)
const
44
{
45
return
(mode == QClipboard::Clipboard || mode == QClipboard::FindBuffer);
46
}
47
48
bool
QCocoaClipboard
::
ownsMode
(QClipboard::Mode mode)
const
49
{
50
Q_UNUSED(mode);
51
return
false
;
52
}
53
54
QMacPasteboard
*
QCocoaClipboard
::
pasteboardForMode
(QClipboard::Mode mode)
const
55
{
56
if
(mode == QClipboard::Clipboard)
57
return
m_clipboard.data();
58
else
if
(mode == QClipboard::FindBuffer)
59
return
m_find.data();
60
else
61
return
nullptr
;
62
}
63
64
void
QCocoaClipboard
::handleApplicationStateChanged(Qt::ApplicationState state)
65
{
66
if
(state != Qt::ApplicationActive)
67
return
;
68
69
if
(m_clipboard->sync())
70
emitChanged(QClipboard::Clipboard);
71
if
(m_find->sync())
72
emitChanged(QClipboard::FindBuffer);
73
}
74
75
QT_END_NAMESPACE
76
77
#
include
"moc_qcocoaclipboard.cpp"
78
79
#
endif
// QT_NO_CLIPBOARD
QCocoaClipboard
Definition
qcocoaclipboard.h:18
QCocoaClipboard::supportsMode
bool supportsMode(QClipboard::Mode mode) const override
Definition
qcocoaclipboard.mm:43
QCocoaClipboard::pasteboardForMode
QMacPasteboard * pasteboardForMode(QClipboard::Mode mode) const
Definition
qcocoaclipboard.mm:54
QCocoaClipboard::ownsMode
bool ownsMode(QClipboard::Mode mode) const override
Definition
qcocoaclipboard.mm:48
QCocoaClipboard::mimeData
QMimeData * mimeData(QClipboard::Mode mode=QClipboard::Clipboard) override
Definition
qcocoaclipboard.mm:21
QCocoaClipboard::setMimeData
void setMimeData(QMimeData *data, QClipboard::Mode mode=QClipboard::Clipboard) override
Definition
qcocoaclipboard.mm:30
QMacPasteboard
Definition
qmacclipboard.h:20
QMacPasteboard::LazyRequest
@ LazyRequest
Definition
qmacclipboard.h:22
QMacPasteboard::clear
void clear()
Definition
qmacclipboard.mm:456
QMacPasteboard::sync
bool sync() const
Definition
qmacclipboard.mm:462
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtbase
src
plugins
platforms
cocoa
qcocoaclipboard.mm
Generated on
for Qt by
1.18.0