diff --git a/src/plugins/help/qlitehtml/container_qpainter.cpp b/src/plugins/help/qlitehtml/container_qpainter.cpp
index aa44428750b..3426d098c29 100644
--- a/src/plugins/help/qlitehtml/container_qpainter.cpp
+++ b/src/plugins/help/qlitehtml/container_qpainter.cpp
@@ -40,6 +40,7 @@
#include
#include
+#include
const int kDragDistance = 5;
@@ -453,11 +454,24 @@ litehtml::uint_ptr DocumentContainer::create_font(const litehtml::tchar_t *faceN
#if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0))
font->setFamilies(familyNames);
#else
- static const auto knownFamilies = QFontDatabase().families().toSet();
+ struct CompareCaseinsensitive
+ {
+ bool operator()(const QString &a, const QString &b) const
+ {
+ return a.compare(b, Qt::CaseInsensitive) < 0;
+ }
+ };
+ static const QStringList known = QFontDatabase().families();
+ static const std::set knownFamilies(known.cbegin(),
+ known.cend());
font->setFamily(familyNames.last());
- for (const QString &name : qAsConst(familyNames))
- if (knownFamilies.contains(name))
- font->setFamily(name);
+ for (const QString &name : qAsConst(familyNames)) {
+ const auto found = knownFamilies.find(name);
+ if (found != knownFamilies.end()) {
+ font->setFamily(*found);
+ break;
+ }
+ }
#endif
font->setPixelSize(size);
font->setWeight(cssWeightToQtWeight(weight));