diff options
author | Morten Sørvig <morten.sorvig@qt.io> | 2021-05-21 12:03:58 +0200 |
---|---|---|
committer | Morten Sørvig <morten.sorvig@qt.io> | 2021-06-22 13:11:20 +0200 |
commit | a97445274ab94e38f457a0d874ec64aa0da60846 (patch) | |
tree | 989b2efa384c8b61d1b102168e6d21334c432c20 | |
parent | 586027f7fd1e148ed95af8da793e42ceb405770a (diff) |
wasm: use module_property instead of global(“Module”)
Depending on build options, the module can have a different
name, or be a non-global object. We were already using
module_property in many places, but some were missing.
In the case of the clipboard code, there is actually
no need to export all of the C++ functions to JavaScript
and then resolve them from the module; instead call them
directly.
Change-Id: I83aa3ad01ad961d48e21f0994e0c205d833cbe8a
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
-rw-r--r-- | src/plugins/platforms/wasm/qwasmclipboard.cpp | 25 | ||||
-rw-r--r-- | src/plugins/platforms/wasm/qwasmstring.cpp | 4 |
2 files changed, 7 insertions, 22 deletions
diff --git a/src/plugins/platforms/wasm/qwasmclipboard.cpp b/src/plugins/platforms/wasm/qwasmclipboard.cpp index 713adee8f9..222dcff7fa 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.cpp +++ b/src/plugins/platforms/wasm/qwasmclipboard.cpp @@ -75,11 +75,7 @@ static void qClipboardCutTo(val event) QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>( 0, QEvent::KeyPress, Qt::Key_X, Qt::ControlModifier, "X"); } - - val module = val::global("Module"); - val clipdata = module.call<val>("qtGetClipboardData"); - val clipFormat = module.call<val>("qtGetClipboardFormat"); - event["clipboardData"].call<void>("setData", clipFormat, clipdata); + event["clipboardData"].call<void>("setData", getClipboardFormat(), getClipboardData()); event.call<void>("preventDefault"); } @@ -90,19 +86,14 @@ static void qClipboardCopyTo(val event) QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>( 0, QEvent::KeyPress, Qt::Key_C, Qt::ControlModifier, "C"); } - - val module = val::global("Module"); - val clipdata = module.call<val>("qtGetClipboardData"); - val clipFormat = module.call<val>("qtGetClipboardFormat"); - event["clipboardData"].call<void>("setData", clipFormat, clipdata); + event["clipboardData"].call<void>("setData", getClipboardFormat(), getClipboardData()); event.call<void>("preventDefault"); } static void qClipboardPasteTo(val event) { bool hasClipboardApi = QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi; - val clipdata = hasClipboardApi ? - val::global("Module").call<val>("qtGetClipboardData") : + val clipdata = hasClipboardApi ? getClipboardData() : event["clipboardData"].call<val>("getData", val("text")); const QString qstr = QWasmString::toQString(clipdata); @@ -114,9 +105,6 @@ static void qClipboardPasteTo(val event) } EMSCRIPTEN_BINDINGS(qtClipboardModule) { - function("qtGetClipboardData", &getClipboardData); - function("qtGetClipboardFormat", &getClipboardFormat); - function("qtPasteClipboardData", &pasteClipboardData); function("qtClipboardPromiseResolve", &qClipboardPromiseResolve); function("qtClipboardCutTo", &qClipboardCutTo); function("qtClipboardCopyTo", &qClipboardCopyTo); @@ -212,7 +200,7 @@ void QWasmClipboard::readTextFromClipboard() if (QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi) { val navigator = val::global("navigator"); val textPromise = navigator["clipboard"].call<val>("readText"); - val readTextResolve = val::global("Module")["qtClipboardPromiseResolve"]; + val readTextResolve = val::module_property("qtClipboardPromiseResolve"); textPromise.call<val>("then", readTextResolve); } } @@ -220,10 +208,7 @@ void QWasmClipboard::readTextFromClipboard() void QWasmClipboard::writeTextToClipboard() { if (QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi) { - val module = val::global("Module"); - val txt = module.call<val>("qtGetClipboardData"); - val format = module.call<val>("qtGetClipboardFormat"); val navigator = val::global("navigator"); - navigator["clipboard"].call<void>("writeText", txt); + navigator["clipboard"].call<void>("writeText", getClipboardData()); } } diff --git a/src/plugins/platforms/wasm/qwasmstring.cpp b/src/plugins/platforms/wasm/qwasmstring.cpp index b1be405eeb..1f2668af05 100644 --- a/src/plugins/platforms/wasm/qwasmstring.cpp +++ b/src/plugins/platforms/wasm/qwasmstring.cpp @@ -36,7 +36,7 @@ using namespace emscripten; val QWasmString::fromQString(const QString &str) { static const val UTF16ToString( - val::global("Module")["UTF16ToString"]); + val::module_property("UTF16ToString")); auto ptr = quintptr(str.utf16()); return UTF16ToString(val(ptr)); @@ -49,7 +49,7 @@ QString QWasmString::toQString(const val &v) return result; static const val stringToUTF16( - val::global("Module")["stringToUTF16"]); + val::module_property("stringToUTF16")); static const val length("length"); int len = v[length].as<int>(); |