summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2021-05-21 12:03:58 +0200
committerMorten Sørvig <morten.sorvig@qt.io>2021-06-22 13:11:20 +0200
commita97445274ab94e38f457a0d874ec64aa0da60846 (patch)
tree989b2efa384c8b61d1b102168e6d21334c432c20
parent586027f7fd1e148ed95af8da793e42ceb405770a (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.cpp25
-rw-r--r--src/plugins/platforms/wasm/qwasmstring.cpp4
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>();