From a97445274ab94e38f457a0d874ec64aa0da60846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20S=C3=B8rvig?= Date: Fri, 21 May 2021 12:03:58 +0200 Subject: [PATCH] =?UTF-8?q?wasm:=20use=20module=5Fproperty=20instead=20of?= =?UTF-8?q?=20global(=E2=80=9CModule=E2=80=9D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/plugins/platforms/wasm/qwasmclipboard.cpp | 25 ++++--------------- 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 713adee8f93..222dcff7faa 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( 0, QEvent::KeyPress, Qt::Key_X, Qt::ControlModifier, "X"); } - - val module = val::global("Module"); - val clipdata = module.call("qtGetClipboardData"); - val clipFormat = module.call("qtGetClipboardFormat"); - event["clipboardData"].call("setData", clipFormat, clipdata); + event["clipboardData"].call("setData", getClipboardFormat(), getClipboardData()); event.call("preventDefault"); } @@ -90,19 +86,14 @@ static void qClipboardCopyTo(val event) QWindowSystemInterface::handleKeyEvent( 0, QEvent::KeyPress, Qt::Key_C, Qt::ControlModifier, "C"); } - - val module = val::global("Module"); - val clipdata = module.call("qtGetClipboardData"); - val clipFormat = module.call("qtGetClipboardFormat"); - event["clipboardData"].call("setData", clipFormat, clipdata); + event["clipboardData"].call("setData", getClipboardFormat(), getClipboardData()); event.call("preventDefault"); } static void qClipboardPasteTo(val event) { bool hasClipboardApi = QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi; - val clipdata = hasClipboardApi ? - val::global("Module").call("qtGetClipboardData") : + val clipdata = hasClipboardApi ? getClipboardData() : event["clipboardData"].call("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("readText"); - val readTextResolve = val::global("Module")["qtClipboardPromiseResolve"]; + val readTextResolve = val::module_property("qtClipboardPromiseResolve"); textPromise.call("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("qtGetClipboardData"); - val format = module.call("qtGetClipboardFormat"); val navigator = val::global("navigator"); - navigator["clipboard"].call("writeText", txt); + navigator["clipboard"].call("writeText", getClipboardData()); } } diff --git a/src/plugins/platforms/wasm/qwasmstring.cpp b/src/plugins/platforms/wasm/qwasmstring.cpp index b1be405eeb2..1f2668af050 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();