diff options
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 18 | ||||
-rw-r--r-- | src/gui/text/qfontdatabase.h | 1 | ||||
-rw-r--r-- | src/widgets/dialogs/qfontdialog.cpp | 8 | ||||
-rw-r--r-- | src/widgets/widgets/qfontcombobox.cpp | 8 |
4 files changed, 22 insertions, 13 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 16b0b8d76d..5a4fe2a61b 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -1936,6 +1936,24 @@ bool QFontDatabase::hasFamily(const QString &family) const /*! + \since 5.5 + + Returns \c true if and only if the \a family font family is private. + + This happens, for instance, on OS X and iOS, where the system UI fonts are not + accessible to the user. For completeness, QFontDatabase::families() returns all + font families, including the private ones. You should use this function if you + are developing a font selection control in order to keep private fonts hidden. + + \sa families() +*/ +bool QFontDatabase::isPrivateFamily(const QString &family) const +{ + return QGuiApplicationPrivate::platformIntegration()->fontDatabase()->isPrivateFontFamily(family); +} + + +/*! Returns the names the \a writingSystem (e.g. for displaying to the user in a dialog). */ diff --git a/src/gui/text/qfontdatabase.h b/src/gui/text/qfontdatabase.h index 5688ce6b7a..4e1ab501ba 100644 --- a/src/gui/text/qfontdatabase.h +++ b/src/gui/text/qfontdatabase.h @@ -132,6 +132,7 @@ public: int weight(const QString &family, const QString &style) const; bool hasFamily(const QString &family) const; + bool isPrivateFamily(const QString &family) const; static QString writingSystemName(WritingSystem writingSystem); static QString writingSystemSample(WritingSystem writingSystem); diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp index 5294e78bfe..a71e141890 100644 --- a/src/widgets/dialogs/qfontdialog.cpp +++ b/src/widgets/dialogs/qfontdialog.cpp @@ -57,10 +57,6 @@ #include <private/qdialog_p.h> #include <private/qfont_p.h> -#include <QtGui/private/qguiapplication_p.h> -#include <qpa/qplatformintegration.h> -#include <qpa/qplatformfontdatabase.h> - QT_BEGIN_NAMESPACE class QFontListView : public QListView @@ -482,11 +478,11 @@ void QFontDialogPrivate::updateFamilies() const QFontDialog::FontDialogOptions spacingMask = (QFontDialog::ProportionalFonts | QFontDialog::MonospacedFonts); const QFontDialog::FontDialogOptions options = q->options(); - QPlatformFontDatabase *pfdb = QGuiApplicationPrivate::platformIntegration()->fontDatabase(); + QFontDatabase fdb; QStringList familyNames; foreach (const QString &family, fdb.families(writingSystem)) { - if (pfdb->isPrivateFontFamily(family)) + if (fdb.isPrivateFamily(family)) continue; if ((options & scalableMask) && (options & scalableMask) != scalableMask) { diff --git a/src/widgets/widgets/qfontcombobox.cpp b/src/widgets/widgets/qfontcombobox.cpp index b040d9ba0d..2247608956 100644 --- a/src/widgets/widgets/qfontcombobox.cpp +++ b/src/widgets/widgets/qfontcombobox.cpp @@ -45,10 +45,6 @@ #include <QDesktopWidget> #include <qdebug.h> -#include <QtGui/private/qguiapplication_p.h> -#include <qpa/qplatformintegration.h> -#include <qpa/qplatformfontdatabase.h> - QT_BEGIN_NAMESPACE static QFontDatabase::WritingSystem writingSystemFromScript(QLocale::Script script) @@ -324,10 +320,8 @@ void QFontComboBoxPrivate::_q_updateModel() int offset = 0; QFontInfo fi(currentFont); - QPlatformFontDatabase *pfdb = QGuiApplicationPrivate::platformIntegration()->fontDatabase(); - for (int i = 0; i < list.size(); ++i) { - if (pfdb->isPrivateFontFamily(list.at(i))) + if (fdb.isPrivateFamily(list.at(i))) continue; if ((filters & scalableMask) && (filters & scalableMask) != scalableMask) { |