diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmclipboard.h')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmclipboard.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/plugins/platforms/wasm/qwasmclipboard.h b/src/plugins/platforms/wasm/qwasmclipboard.h index 4fcb712764..86618dd560 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.h +++ b/src/plugins/platforms/wasm/qwasmclipboard.h @@ -7,14 +7,25 @@ #include <QObject> #include <qpa/qplatformclipboard.h> +#include <private/qstdweb_p.h> #include <QMimeData> #include <emscripten/bind.h> #include <emscripten/val.h> +QT_BEGIN_NAMESPACE + +struct KeyEvent; + class QWasmClipboard : public QObject, public QPlatformClipboard { public: + enum class ProcessKeyboardResult { + Ignored, + NativeClipboardEventNeeded, + NativeClipboardEventAndCopiedDataNeeded, + }; + QWasmClipboard(); virtual ~QWasmClipboard(); @@ -24,16 +35,19 @@ public: bool supportsMode(QClipboard::Mode mode) const override; bool ownsMode(QClipboard::Mode mode) const override; - static void qWasmClipboardPaste(QMimeData *mData); + ProcessKeyboardResult processKeyboard(const KeyEvent &event); + static void installEventHandlers(const emscripten::val &target); + bool hasClipboardApi(); + void sendClipboardData(emscripten::val event); + +private: void initClipboardPermissions(); - void installEventHandlers(const emscripten::val &canvas); - bool hasClipboardApi; - bool hasPermissionsApi; void writeToClipboardApi(); - void writeToClipboard(const QMimeData *data); - bool isPaste; - bool m_isListener; - bool isSafari; + void writeToClipboard(); + + bool m_hasClipboardApi = false; }; +QT_END_NAMESPACE + #endif // QWASMCLIPBOARD_H |