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>
This commit is contained in:
parent
586027f7fd
commit
a97445274a
@ -75,11 +75,7 @@ static void qClipboardCutTo(val event)
|
|||||||
QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>(
|
QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>(
|
||||||
0, QEvent::KeyPress, Qt::Key_X, Qt::ControlModifier, "X");
|
0, QEvent::KeyPress, Qt::Key_X, Qt::ControlModifier, "X");
|
||||||
}
|
}
|
||||||
|
event["clipboardData"].call<void>("setData", getClipboardFormat(), getClipboardData());
|
||||||
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.call<void>("preventDefault");
|
event.call<void>("preventDefault");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,19 +86,14 @@ static void qClipboardCopyTo(val event)
|
|||||||
QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>(
|
QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>(
|
||||||
0, QEvent::KeyPress, Qt::Key_C, Qt::ControlModifier, "C");
|
0, QEvent::KeyPress, Qt::Key_C, Qt::ControlModifier, "C");
|
||||||
}
|
}
|
||||||
|
event["clipboardData"].call<void>("setData", getClipboardFormat(), getClipboardData());
|
||||||
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.call<void>("preventDefault");
|
event.call<void>("preventDefault");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qClipboardPasteTo(val event)
|
static void qClipboardPasteTo(val event)
|
||||||
{
|
{
|
||||||
bool hasClipboardApi = QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi;
|
bool hasClipboardApi = QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi;
|
||||||
val clipdata = hasClipboardApi ?
|
val clipdata = hasClipboardApi ? getClipboardData() :
|
||||||
val::global("Module").call<val>("qtGetClipboardData") :
|
|
||||||
event["clipboardData"].call<val>("getData", val("text"));
|
event["clipboardData"].call<val>("getData", val("text"));
|
||||||
|
|
||||||
const QString qstr = QWasmString::toQString(clipdata);
|
const QString qstr = QWasmString::toQString(clipdata);
|
||||||
@ -114,9 +105,6 @@ static void qClipboardPasteTo(val event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_BINDINGS(qtClipboardModule) {
|
EMSCRIPTEN_BINDINGS(qtClipboardModule) {
|
||||||
function("qtGetClipboardData", &getClipboardData);
|
|
||||||
function("qtGetClipboardFormat", &getClipboardFormat);
|
|
||||||
function("qtPasteClipboardData", &pasteClipboardData);
|
|
||||||
function("qtClipboardPromiseResolve", &qClipboardPromiseResolve);
|
function("qtClipboardPromiseResolve", &qClipboardPromiseResolve);
|
||||||
function("qtClipboardCutTo", &qClipboardCutTo);
|
function("qtClipboardCutTo", &qClipboardCutTo);
|
||||||
function("qtClipboardCopyTo", &qClipboardCopyTo);
|
function("qtClipboardCopyTo", &qClipboardCopyTo);
|
||||||
@ -212,7 +200,7 @@ void QWasmClipboard::readTextFromClipboard()
|
|||||||
if (QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi) {
|
if (QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi) {
|
||||||
val navigator = val::global("navigator");
|
val navigator = val::global("navigator");
|
||||||
val textPromise = navigator["clipboard"].call<val>("readText");
|
val textPromise = navigator["clipboard"].call<val>("readText");
|
||||||
val readTextResolve = val::global("Module")["qtClipboardPromiseResolve"];
|
val readTextResolve = val::module_property("qtClipboardPromiseResolve");
|
||||||
textPromise.call<val>("then", readTextResolve);
|
textPromise.call<val>("then", readTextResolve);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -220,10 +208,7 @@ void QWasmClipboard::readTextFromClipboard()
|
|||||||
void QWasmClipboard::writeTextToClipboard()
|
void QWasmClipboard::writeTextToClipboard()
|
||||||
{
|
{
|
||||||
if (QWasmIntegration::get()->getWasmClipboard()->hasClipboardApi) {
|
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");
|
val navigator = val::global("navigator");
|
||||||
navigator["clipboard"].call<void>("writeText", txt);
|
navigator["clipboard"].call<void>("writeText", getClipboardData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ using namespace emscripten;
|
|||||||
val QWasmString::fromQString(const QString &str)
|
val QWasmString::fromQString(const QString &str)
|
||||||
{
|
{
|
||||||
static const val UTF16ToString(
|
static const val UTF16ToString(
|
||||||
val::global("Module")["UTF16ToString"]);
|
val::module_property("UTF16ToString"));
|
||||||
|
|
||||||
auto ptr = quintptr(str.utf16());
|
auto ptr = quintptr(str.utf16());
|
||||||
return UTF16ToString(val(ptr));
|
return UTF16ToString(val(ptr));
|
||||||
@ -49,7 +49,7 @@ QString QWasmString::toQString(const val &v)
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
static const val stringToUTF16(
|
static const val stringToUTF16(
|
||||||
val::global("Module")["stringToUTF16"]);
|
val::module_property("stringToUTF16"));
|
||||||
static const val length("length");
|
static const val length("length");
|
||||||
|
|
||||||
int len = v[length].as<int>();
|
int len = v[length].as<int>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user