summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/text/qfontdatabase.cpp18
-rw-r--r--src/gui/text/qfontdatabase.h1
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp8
-rw-r--r--src/widgets/widgets/qfontcombobox.cpp8
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) {