diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmclipboard.h')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmclipboard.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/plugins/platforms/wasm/qwasmclipboard.h b/src/plugins/platforms/wasm/qwasmclipboard.h index ef11fd2e49..86618dd560 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.h +++ b/src/plugins/platforms/wasm/qwasmclipboard.h @@ -7,6 +7,7 @@ #include <QObject> #include <qpa/qplatformclipboard.h> +#include <private/qstdweb_p.h> #include <QMimeData> #include <emscripten/bind.h> @@ -14,9 +15,17 @@ QT_BEGIN_NAMESPACE +struct KeyEvent; + class QWasmClipboard : public QObject, public QPlatformClipboard { public: + enum class ProcessKeyboardResult { + Ignored, + NativeClipboardEventNeeded, + NativeClipboardEventAndCopiedDataNeeded, + }; + QWasmClipboard(); virtual ~QWasmClipboard(); @@ -26,16 +35,17 @@ 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 |