Option to use original font metrics

This commit is contained in:
Eric Kotato 2020-02-04 17:57:36 +03:00
parent 6f6fd67571
commit f5e3d21113
2 changed files with 21 additions and 3 deletions

View file

@ -171,6 +171,7 @@ QString CustomMainFont;
QString CustomSemiboldFont;
bool CustomSemiboldIsBold = false;
bool UseSystemFont = false;
bool UseOriginalMetrics = false;
} // namespace
@ -194,6 +195,10 @@ void SetUseSystemFont(bool isSystemFont) {
UseSystemFont = isSystemFont;
}
void SetUseOriginalMetrics(bool isOriginal) {
UseOriginalMetrics = isOriginal;
}
void StartFonts() {
if (Started) {
return;
@ -338,9 +343,21 @@ FontData::FontData(int size, uint32 flags, int family, Font *other)
}
m = QFontMetrics(f);
height = m.height();
ascent = m.ascent();
descent = m.descent();
if (UseOriginalMetrics) {
QFont originalFont(fontFamilies[family]);
originalFont.setPixelSize(size);
auto mOrig = QFontMetrics(originalFont);
height = mOrig.height();
ascent = mOrig.ascent();
descent = mOrig.descent();
} else {
height = m.height();
ascent = m.ascent();
descent = m.descent();
}
spacew = width(QLatin1Char(' '));
elidew = width("...");
}

View file

@ -18,6 +18,7 @@ void SetMainFont(const QString &familyName);
void SetSemiboldFont(const QString &familyName);
void SetSemiboldIsBold(bool isBold);
void SetUseSystemFont(bool isSystemFont);
void SetUseOriginalMetrics(bool isOriginal);
void StartFonts();
[[nodiscard]] QString GetFontOverride(const QString &familyName, int32 flags = 0);