summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qtloader.js
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2023-07-05 14:38:18 +0200
committerMorten Sørvig <morten.sorvig@qt.io>2023-07-10 05:13:46 +0200
commit20d17b1a3b0e3a17a0ed1214cc21d84d79d3c829 (patch)
tree5fb91555d9d1dbaacdd599ed007df97c4d627362 /src/plugins/platforms/wasm/qtloader.js
parent416e07e0575922323b76e4e7768409b203292837 (diff)
wasm: Add qtloader compatibility API
Implement the main features of the pre Qt 6.6 loader as adaption layer on top of the new loader. Pick-to: 6.6 Task-id: QTBUG-115049 Change-Id: Iabe860d3fb0488fd003876508787da3688e0c87b Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qtloader.js')
-rw-r--r--src/plugins/platforms/wasm/qtloader.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qtloader.js b/src/plugins/platforms/wasm/qtloader.js
index 5f3f2d1a91..233e801e26 100644
--- a/src/plugins/platforms/wasm/qtloader.js
+++ b/src/plugins/platforms/wasm/qtloader.js
@@ -214,3 +214,57 @@ async function qtLoad(config)
return instance;
}
+
+// Compatibility API. This API is deprecated,
+// and will be removed in a future version of Qt.
+function QtLoader(qtConfig) {
+
+ const warning = 'Warning: The QtLoader API is deprecated and will be removed in ' +
+ 'a future version of Qt. Please port to the new qtLoad() API.';
+ console.warn(warning);
+
+ let emscriptenConfig = qtConfig.moduleConfig || {}
+ qtConfig.moduleConfig = undefined;
+ const showLoader = qtConfig.showLoader;
+ qtConfig.showLoader = undefined;
+ const showError = qtConfig.showError;
+ qtConfig.showError = undefined;
+ const showExit = qtConfig.showExit;
+ qtConfig.showExit = undefined;
+ const showCanvas = qtConfig.showCanvas;
+ qtConfig.showCanvas = undefined;
+ if (qtConfig.canvasElements) {
+ qtConfig.containerElements = qtConfig.canvasElements
+ qtConfig.canvasElements = undefined;
+ } else {
+ qtConfig.containerElements = qtConfig.containerElements;
+ qtConfig.containerElements = undefined;
+ }
+ emscriptenConfig.qt = qtConfig;
+
+ let qtloader = {
+ exitCode: undefined,
+ exitText: "",
+ loadEmscriptenModule: _name => {
+ try {
+ qtLoad(emscriptenConfig);
+ } catch (e) {
+ showError?.(e.message);
+ }
+ }
+ }
+
+ qtConfig.onLoaded = () => {
+ showCanvas?.();
+ }
+
+ qtConfig.onExit = exit => {
+ qtloader.exitCode = exit.code
+ qtloader.exitText = exit.text;
+ showExit?.();
+ }
+
+ showLoader?.("Loading");
+
+ return qtloader;
+};