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
qmacclipboard.h
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#ifndef QMACCLIPBOARD_H
5#define QMACCLIPBOARD_H
6
7#include <QtGui>
8#include <QtGui/qutimimeconverter.h>
9
10#include <QtCore/qpointer.h>
11
12#include <ApplicationServices/ApplicationServices.h>
13
15
17
19{
20public:
22private:
23 struct Promise {
24 Promise() : itemId(0), converter(nullptr) { }
25
26 static Promise eagerPromise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *d, int o = 0);
27 static Promise lazyPromise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *d, int o = 0);
28 Promise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *md, int o, DataRequestType drt);
29
30 int itemId, offset;
31 const QUtiMimeConverter *converter;
32 QString mime;
33 QPointer<QMimeData> mimeData;
34 QVariant variantData;
35 DataRequestType dataRequestType;
36 // QMimeData can be set from QVariant, holding
37 // QPixmap. When converting, this triggers
38 // QPixmap's ctor which in turn requires QGuiApplication
39 // to exist and thus will abort the application
40 // abnormally if not.
41 bool isPixmap = false;
42 };
43 QList<Promise> promises;
44
45 PasteboardRef paste;
46 const QUtiMimeConverter::HandlerScope scope;
47 mutable QPointer<QMimeData> mime;
48 mutable bool mac_mime_source;
49 bool resolvingBeforeDestruction;
50 static OSStatus promiseKeeper(PasteboardRef, PasteboardItemID, CFStringRef, void *);
51 void clear_helper();
52public:
53 QMacPasteboard(PasteboardRef p, QUtiMimeConverter::HandlerScope scope = QUtiMimeConverter::HandlerScopeFlag::All);
54 QMacPasteboard(QUtiMimeConverter::HandlerScope scope);
55 QMacPasteboard(CFStringRef name=nullptr, QUtiMimeConverter::HandlerScope scope = QUtiMimeConverter::HandlerScopeFlag::All);
57
58 bool hasUti(const QString &uti) const;
59
60 PasteboardRef pasteBoard() const;
61 QMimeData *mimeData() const;
62
63 void setMimeData(QMimeData *mime, DataRequestType dataRequestType = EagerRequest);
64
65 QStringList formats() const;
66 bool hasFormat(const QString &format) const;
67 QVariant retrieveData(const QString &format) const;
68
69 void clear();
70 bool sync() const;
71};
72
74
76
77#endif
QStringList formats() const
PasteboardRef pasteBoard() const
void setMimeData(QMimeData *mime, DataRequestType dataRequestType=EagerRequest)
QMimeData * mimeData() const
QMacPasteboard(PasteboardRef p, QUtiMimeConverter::HandlerScope scope=QUtiMimeConverter::HandlerScopeFlag::All)
bool sync() const
bool hasUti(const QString &uti) const
QVariant retrieveData(const QString &format) const
bool hasFormat(const QString &format) const
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
The QUtiMimeConverter class converts between a MIME type and a \l{https://developer....
\inmodule QtCore
Definition qvariant.h:65
Combined button and popup list for selecting options.
static jboolean paste(JNIEnv *, jobject)
QString qt_mac_get_pasteboardString(PasteboardRef paste)
const GLfloat * m
GLenum GLuint GLintptr offset
GLuint name
GLint GLsizei GLsizei GLenum format
const GLubyte * c
GLfloat GLfloat p
[1]
QObject::connect nullptr