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; QString CustomSemiboldFont;
bool CustomSemiboldIsBold = false; bool CustomSemiboldIsBold = false;
bool UseSystemFont = false; bool UseSystemFont = false;
bool UseOriginalMetrics = false;
} // namespace } // namespace
@ -194,6 +195,10 @@ void SetUseSystemFont(bool isSystemFont) {
UseSystemFont = isSystemFont; UseSystemFont = isSystemFont;
} }
void SetUseOriginalMetrics(bool isOriginal) {
UseOriginalMetrics = isOriginal;
}
void StartFonts() { void StartFonts() {
if (Started) { if (Started) {
return; return;
@ -338,9 +343,21 @@ FontData::FontData(int size, uint32 flags, int family, Font *other)
} }
m = QFontMetrics(f); m = QFontMetrics(f);
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(); height = m.height();
ascent = m.ascent(); ascent = m.ascent();
descent = m.descent(); descent = m.descent();
}
spacew = width(QLatin1Char(' ')); spacew = width(QLatin1Char(' '));
elidew = width("..."); elidew = width("...");
} }

View file

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