From 8ba614a853130b69934584be4821cbf6ba38a991 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Mon, 14 Jul 2025 07:46:37 +0800 Subject: [PATCH] PlayClass.cpp: restore fallback if no QRawFont support Somehow the code with QRawFont compiles with qt4-mac-devel, but not with qt4-mac. This way we can control which codepatch will be taken. --- src/gui/PlayClass.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gui/PlayClass.cpp b/src/gui/PlayClass.cpp index 5b103071..40a6b531 100644 --- a/src/gui/PlayClass.cpp +++ b/src/gui/PlayClass.cpp @@ -36,10 +36,15 @@ #include #include #include -#include #include #include +#ifdef USE_QRAWFONT + #include +#else + #include +#endif + #include #if defined Q_OS_WIN && !defined Q_OS_WIN64 @@ -401,9 +406,20 @@ void PlayClass::loadSubsFile(const QString &fileName) { const QByteArray fontData = f.readAll(); f.close(); +#ifdef USE_QRAWFONT const QString fontName = QRawFont(fontData, 0.0).familyName(); if (!fontName.isEmpty()) ass->addFont(fontName.toUtf8(), fontData); +#else + const int fontID = QFontDatabase::addApplicationFontFromData(fontData); + if (fontID != -1) + { + const QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontID); + QFontDatabase::removeApplicationFont(fontID); + if (!fontFamilies.isEmpty()) + ass->addFont(fontFamilies.first().toUtf8(), fontData); + } +#endif } }