diff options
Diffstat (limited to 'vcl/qt5')
-rw-r--r-- | vcl/qt5/QtFontFace.cxx | 27 | ||||
-rw-r--r-- | vcl/qt5/QtGraphics_Text.cxx | 8 |
2 files changed, 29 insertions, 6 deletions
diff --git a/vcl/qt5/QtFontFace.cxx b/vcl/qt5/QtFontFace.cxx index 89182d115756..291d7e90fdef 100644 --- a/vcl/qt5/QtFontFace.cxx +++ b/vcl/qt5/QtFontFace.cxx @@ -129,19 +129,30 @@ QtFontFace* QtFontFace::fromQFont(const QFont& rFont) QtFontFace* QtFontFace::fromQFontDatabase(const QString& aFamily, const QString& aStyle) { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + auto const isFixedPitch = QFontDatabase::isFixedPitch(aFamily, aStyle); + auto const weigh = QFontDatabase::weight(aFamily, aStyle); + auto const italic = QFontDatabase::italic(aFamily, aStyle); + auto const aPointList = QFontDatabase::pointSizes(aFamily, aStyle); +#else QFontDatabase aFDB; + auto const isFixedPitch = aFDB.isFixedPitch(aFamily, aStyle); + auto const weigh = aFDB.weight(aFamily, aStyle); + auto const italic = aFDB.italic(aFamily, aStyle); + auto const aPointList = aFDB.pointSizes(aFamily, aStyle); +#endif + FontAttributes aFA; aFA.SetFamilyName(toOUString(aFamily)); if (IsStarSymbol(aFA.GetFamilyName())) aFA.SetSymbolFlag(true); aFA.SetStyleName(toOUString(aStyle)); - aFA.SetPitch(aFDB.isFixedPitch(aFamily, aStyle) ? PITCH_FIXED : PITCH_VARIABLE); - aFA.SetWeight(QtFontFace::toFontWeight(aFDB.weight(aFamily, aStyle))); - aFA.SetItalic(aFDB.italic(aFamily, aStyle) ? ITALIC_NORMAL : ITALIC_NONE); + aFA.SetPitch(isFixedPitch ? PITCH_FIXED : PITCH_VARIABLE); + aFA.SetWeight(QtFontFace::toFontWeight(weigh)); + aFA.SetItalic(italic ? ITALIC_NORMAL : ITALIC_NONE); int nPointSize = 0; - QList<int> aPointList = aFDB.pointSizes(aFamily, aStyle); if (!aPointList.empty()) nPointSize = aPointList[0]; @@ -167,10 +178,16 @@ QFont QtFontFace::CreateFont() const { case FontDB: { - QFontDatabase aFDB; QStringList aStrList = m_aFontId.split(","); if (3 == aStrList.size()) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + aFont = QFontDatabase::font(aStrList[0], aStrList[1], aStrList[2].toInt()); +#else + QFontDatabase aFDB; aFont = aFDB.font(aStrList[0], aStrList[1], aStrList[2].toInt()); +#endif + } else SAL_WARN("vcl.qt", "Invalid QFontDatabase font ID " << m_aFontId); break; diff --git a/vcl/qt5/QtGraphics_Text.cxx b/vcl/qt5/QtGraphics_Text.cxx index 9859ff02f061..940578c5d8bf 100644 --- a/vcl/qt5/QtGraphics_Text.cxx +++ b/vcl/qt5/QtGraphics_Text.cxx @@ -92,7 +92,6 @@ void QtGraphics::GetDevFontList(vcl::font::PhysicalFontCollection* pPFC) if (pPFC->Count()) return; - QFontDatabase aFDB; FreetypeManager& rFontManager = FreetypeManager::get(); psp::PrintFontManager& rMgr = psp::PrintFontManager::get(); ::std::vector<psp::fontID> aList; @@ -118,9 +117,16 @@ void QtGraphics::GetDevFontList(vcl::font::PhysicalFontCollection* pPFC) if (bUseFontconfig) SalGenericInstance::RegisterFontSubstitutors(pPFC); +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + for (auto& family : QFontDatabase::families()) + for (auto& style : QFontDatabase::styles(family)) + pPFC->Add(QtFontFace::fromQFontDatabase(family, style)); +#else + QFontDatabase aFDB; for (auto& family : aFDB.families()) for (auto& style : aFDB.styles(family)) pPFC->Add(QtFontFace::fromQFontDatabase(family, style)); +#endif } void QtGraphics::ClearDevFontCache() {} |