Option to use original font metrics
This commit is contained in:
parent
6f6fd67571
commit
f5e3d21113
2 changed files with 21 additions and 3 deletions
|
|
@ -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("...");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue