text: use fontFamilies() instead of fontFamily()

This commit is contained in:
itsmattkc
2022-10-29 09:46:22 -07:00
parent 6b806ba3a0
commit ce650085a3
2 changed files with 10 additions and 8 deletions
+4 -3
View File
@@ -208,8 +208,9 @@ void Html::WriteCSSProperty(QString *style, const QString &key, const QStringLis
void Html::WriteCharFormat(QString *style, const QTextCharFormat &fmt)
{
if (!fmt.fontFamily().isEmpty()) {
WriteCSSProperty(style, QStringLiteral("font-family"), fmt.fontFamily());
QStringList families = fmt.fontFamilies().toStringList();
if (!families.isEmpty()) {
WriteCSSProperty(style, QStringLiteral("font-family"), families.first());
}
if (fmt.hasProperty(QTextFormat::FontPointSize)) {
@@ -287,7 +288,7 @@ QTextCharFormat Html::ReadCharFormat(const QXmlStreamAttributes &attributes)
const QString &first_val = it.value().first();
if (it.key() == QStringLiteral("font-family")) {
fmt.setFontFamily(first_val);
fmt.setFontFamilies({first_val});
} else if (it.key() == QStringLiteral("font-size")) {
if (first_val.endsWith(QStringLiteral("pt"), Qt::CaseInsensitive)) {
fmt.setFontPointSize(first_val.chopped(2).toDouble());
+6 -5
View File
@@ -152,15 +152,16 @@ void ViewerTextEditor::paintEvent(QPaintEvent *e)
void ViewerTextEditor::UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTextCharFormat &f, const QTextBlockFormat &b, Qt::Alignment alignment)
{
QFontDatabase fd;
QString family = f.fontFamily();
if (family.isEmpty()) {
QStringList families = f.fontFamilies().toStringList();
QString family;
if (families.isEmpty()) {
family = qApp->font().family();
} else {
family = families.first();
}
QString style = f.fontStyleName().toString();
QStringList styles = fd.styles(family);
QStringList styles = QFontDatabase::styles(family);
if (!styles.isEmpty() && (style.isEmpty() || !styles.contains(style))) {
// There seems to be no better way to find the "regular" style outside of this heuristic.
// Feel free to add more if a font isn't working right.