diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp index b89b7e109a0e25ab455f412d604639db81ee99e8..0f9f8c9e22191b65d3e26846236a3b101867705f 100644 --- a/src/plugins/texteditor/fontsettingspage.cpp +++ b/src/plugins/texteditor/fontsettingspage.cpp @@ -382,8 +382,7 @@ void FontSettingsPage::updatePointSizes() oldSize = d_ptr->m_value.fontSize(); d_ptr->ui.sizeComboBox->clear(); } - QFontDatabase db; - const QList<int> sizeLst = db.pointSizes(d_ptr->ui.familyComboBox->currentText()); + const QList<int> sizeLst = pointSizesForSelectedFont(); int idx = 0; int i = 0; for (; i < sizeLst.count(); ++i) { @@ -395,6 +394,23 @@ void FontSettingsPage::updatePointSizes() d_ptr->ui.sizeComboBox->setCurrentIndex(idx); } +QList<int> FontSettingsPage::pointSizesForSelectedFont() const +{ + QFontDatabase db; + const QString familyName = d_ptr->ui.familyComboBox->currentText(); + QList<int> sizeLst = db.pointSizes(familyName); + if (!sizeLst.isEmpty()) + return sizeLst; + + QStringList styles = db.styles(familyName); + if (!styles.isEmpty()) + sizeLst = db.pointSizes(familyName, styles.first()); + if (sizeLst.isEmpty()) + sizeLst = QFontDatabase::standardSizes(); + + return sizeLst; +} + void FontSettingsPage::fontSizeSelected(const QString &sizeString) { bool ok = true; diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h index d7255579780031ce8ebc2af27672ddb708ce4ca6..9269d6bcac20b1a82d8b9fd9a043444a129d09d3 100644 --- a/src/plugins/texteditor/fontsettingspage.h +++ b/src/plugins/texteditor/fontsettingspage.h @@ -36,6 +36,7 @@ #include "texteditoroptionspage.h" +#include <QtCore/QList> #include <QtCore/QString> QT_BEGIN_NAMESPACE @@ -117,6 +118,7 @@ private slots: private: void maybeSaveColorScheme(); void updatePointSizes(); + QList<int> pointSizesForSelectedFont() const; void refreshColorSchemeList(); Internal::FontSettingsPagePrivate *d_ptr;