From 59d755484e8a0c890411d4ec094e8b621909e627 Mon Sep 17 00:00:00 2001 From: Jim Zhou Date: Sun, 7 Jun 2026 02:20:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A1=AE=E4=BF=9D=20WASM=20=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E4=B8=AD=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Plugins/Qt/qt_gui.cpp | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/Plugins/Qt/qt_gui.cpp b/src/Plugins/Qt/qt_gui.cpp index 3a93add5b9..84bcdbf3a6 100644 --- a/src/Plugins/Qt/qt_gui.cpp +++ b/src/Plugins/Qt/qt_gui.cpp @@ -42,6 +42,10 @@ #include #include #include +#ifdef OS_WASM +#include +#include +#endif #include #include #include @@ -104,6 +108,39 @@ bool qt_startup_quit_requested= false; * FIXME: temporary hack by Joris * Additional wait mechanism to keep CPU usage down ******************************************************************************/ +#ifdef OS_WASM +static void +ensure_wasm_widget_fonts () { + QStringList font_files; + font_files << "/TeXmacs/fonts/truetype/DejaVuSans.ttf" + << "/TeXmacs/fonts/truetype/DejaVuSans-Bold.ttf" + << "/TeXmacs/fonts/truetype/DejaVuSansMono.ttf" + << "/TeXmacs/fonts/truetype/DejaVuSansMono-Bold.ttf" + << "/TeXmacs/fonts/truetype/DejaVuSerif.ttf" + << "/TeXmacs/fonts/truetype/DejaVuSerif-Bold.ttf"; + + QString first_family; + for (int i= 0; i < font_files.size (); ++i) { + int font_id= QFontDatabase::addApplicationFont (font_files[i]); + if (font_id < 0) continue; + + QStringList families= QFontDatabase::applicationFontFamilies (font_id); + if (first_family.isEmpty () && !families.isEmpty ()) + first_family= families.first (); + } + + if (first_family.isEmpty ()) return; + + QFont::insertSubstitution ("Sans Serif", first_family); + QFont::insertSubstitution ("Helvetica", first_family); + QFont::insertSubstitution ("Arial", first_family); + QFont::insertSubstitution ("Monospace", "DejaVu Sans Mono"); + + QFont app_font= qApp->font (); + app_font.setFamily (first_family); + qApp->setFont (app_font); +} +#endif #ifdef QT_CPU_FIX #include @@ -154,6 +191,9 @@ qt_gui_rep::qt_gui_rep (int& argc, char** argv) extern void mac_install_filter (); // defined in src/Plugins/MacOS/mac_app.mm mac_install_filter (); #endif +#ifdef OS_WASM + ensure_wasm_widget_fonts (); +#endif set_output_language (get_locale_language ()); refresh_language ();