Qt 6.x
The Qt SDK
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 <ApplicationServices/ApplicationServices.h>
11
13
15
17{
18public:
20private:
21 struct Promise {
22 Promise() : itemId(0), converter(nullptr) { }
23
24 static Promise eagerPromise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *d, int o = 0);
25 static Promise lazyPromise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *d, int o = 0);
26 Promise(int itemId, const QUtiMimeConverter *c, const QString &m, QMimeData *md, int o, DataRequestType drt);
27
28 int itemId, offset;
29 const QUtiMimeConverter *converter;
32 QVariant variantData;
33 DataRequestType dataRequestType;
34 // QMimeData can be set from QVariant, holding
35 // QPixmap. When converting, this triggers
36 // QPixmap's ctor which in turn requires QGuiApplication
37 // to exist and thus will abort the application
38 // abnormally if not.
39 bool isPixmap = false;
40 };
41 QList<Promise> promises;
42
43 PasteboardRef paste;
44 const QUtiMimeConverter::HandlerScope scope;
45 mutable QPointer<QMimeData> mime;
46 mutable bool mac_mime_source;
47 bool resolvingBeforeDestruction;
48 static OSStatus promiseKeeper(PasteboardRef, PasteboardItemID, CFStringRef, void *);
49 void clear_helper();
50public:
51 QMacPasteboard(PasteboardRef p, QUtiMimeConverter::HandlerScope scope = QUtiMimeConverter::HandlerScopeFlag::All);
52 QMacPasteboard(QUtiMimeConverter::HandlerScope scope);
53 QMacPasteboard(CFStringRef name=nullptr, QUtiMimeConverter::HandlerScope scope = QUtiMimeConverter::HandlerScopeFlag::All);
55
56 bool hasUti(const QString &uti) const;
57
58 PasteboardRef pasteBoard() const;
59 QMimeData *mimeData() const;
60
61 void setMimeData(QMimeData *mime, DataRequestType dataRequestType = EagerRequest);
62
63 QStringList formats() const;
64 bool hasFormat(const QString &format) const;
65 QVariant retrieveData(const QString &format) const;
66
67 void clear();
68 bool sync() const;
69};
70
72
74
75#endif
Definition qlist.h:74
QStringList formats() const
PasteboardRef pasteBoard() const
void setMimeData(QMimeData *mime, DataRequestType dataRequestType=EagerRequest)
QMimeData * mimeData() const
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
Definition qpointer.h:18
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
The QUtiMimeConverter class converts between a MIME type and a \l{https://developer....
\inmodule QtCore
Definition qvariant.h:64
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]
application x qt windows mime
[2]
QMimeData * mimeData
QObject::connect nullptr