summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmintegration.cpp
diff options
context:
space:
mode:
authorMorten Sørvig <[email protected]>2023-12-07 14:10:45 +0100
committerMorten Sørvig <[email protected]>2023-12-18 23:07:13 +0100
commita5bccd2496e0e06edf864385c1865d3faca9d1ac (patch)
treed9be57cecae1f941d1a46682e0a98bf028b709ed /src/plugins/platforms/wasm/qwasmintegration.cpp
parentf2e227742fe90d2420ab433ae18449f46a210ae8 (diff)
wasm: add config API for controlling local font loading
This makes Qt read the following config options at startup: - qt.requestLocalFontsPermission - qt.localFontFamiliesCollection - qt.extraLocalFontFamilies And adds the following instance function - qtLoadLocalFontFamilies These can be used to control which local fonts Qt will use, and also if Qt should ask for local fonts permission on startup. Also register a startup task for font loading. Font loading completes asynchronously at some point after the initial startup, and this way we can prevent showing the application until the requested fonts are available. Change-Id: I2b353c8b9c1a4976dddeb447d1f867aa2adf7588 Reviewed-by: Lorn Potter <[email protected]>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmintegration.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index 778c769ae11..2fbb33eb2d4 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -66,6 +66,11 @@ static void resizeAllScreens(emscripten::val event)
QWasmIntegration::get()->resizeAllScreens();
}
+static void loadLocalFontFamilies(emscripten::val event)
+{
+ QWasmIntegration::get()->loadLocalFontFamilies(event);
+}
+
EMSCRIPTEN_BINDINGS(qtQWasmIntegraton)
{
function("qtSetContainerElements", &setContainerElements);
@@ -74,6 +79,7 @@ EMSCRIPTEN_BINDINGS(qtQWasmIntegraton)
function("qtResizeContainerElement", &resizeContainerElement);
function("qtUpdateDpi", &qtUpdateDpi);
function("qtResizeAllScreens", &resizeAllScreens);
+ function("qtLoadLocalFontFamilies", &loadLocalFontFamilies);
}
QWasmIntegration *QWasmIntegration::s_instance;
@@ -395,6 +401,11 @@ void QWasmIntegration::resizeAllScreens()
elementAndScreen.wasmScreen->updateQScreenAndCanvasRenderSize();
}
+void QWasmIntegration::loadLocalFontFamilies(emscripten::val families)
+{
+ m_fontDb->populateLocalFontFamilies(families);
+}
+
quint64 QWasmIntegration::getTimestamp()
{
return emscripten_performance_now();