Get rid of all instance usage of QFontDatabase

All QFontDatabase APIs are static, use them accordingly.

Task-number: QTBUG-88114
Change-Id: I0e4a7508646037e6e2812611262eed8b6d7ad3de
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
Volker Hilsheimer 2020-11-02 19:48:25 +01:00
parent 488e72cce8
commit a50f0f045d
18 changed files with 94 additions and 140 deletions

View File

@ -84,13 +84,12 @@ MainWindow::MainWindow(QWidget *parent)
void MainWindow::setupFontTree() void MainWindow::setupFontTree()
{ {
QFontDatabase database;
fontTree->setColumnCount(1); fontTree->setColumnCount(1);
fontTree->setHeaderLabels({ tr("Font") }); fontTree->setHeaderLabels({ tr("Font") });
const QStringList fontFamilies = database.families(); const QStringList fontFamilies = QFontDatabase::families();
for (const QString &family : fontFamilies) { for (const QString &family : fontFamilies) {
const QStringList styles = database.styles(family); const QStringList styles = QFontDatabase::styles(family);
if (styles.isEmpty()) if (styles.isEmpty())
continue; continue;
@ -103,8 +102,8 @@ void MainWindow::setupFontTree()
QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem); QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
styleItem->setText(0, style); styleItem->setText(0, style);
styleItem->setCheckState(0, Qt::Unchecked); styleItem->setCheckState(0, Qt::Unchecked);
styleItem->setData(0, Qt::UserRole, QVariant(database.weight(family, style))); styleItem->setData(0, Qt::UserRole, QVariant(QFontDatabase::weight(family, style)));
styleItem->setData(0, Qt::UserRole + 1, QVariant(database.italic(family, style))); styleItem->setData(0, Qt::UserRole + 1, QVariant(QFontDatabase::italic(family, style)));
} }
} }
} }

View File

@ -86,9 +86,8 @@ void CharacterWidget::updateSize(const QString &fontSize)
void CharacterWidget::updateStyle(const QString &fontStyle) void CharacterWidget::updateStyle(const QString &fontStyle)
{ {
QFontDatabase fontDatabase;
const QFont::StyleStrategy oldStrategy = displayFont.styleStrategy(); const QFont::StyleStrategy oldStrategy = displayFont.styleStrategy();
displayFont = fontDatabase.font(displayFont.family(), fontStyle, displayFont.pointSize()); displayFont = QFontDatabase::font(displayFont.family(), fontStyle, displayFont.pointSize());
displayFont.setStyleStrategy(oldStrategy); displayFont.setStyleStrategy(oldStrategy);
calculateSquareSize(); calculateSquareSize();
adjustSize(); adjustSize();

View File

@ -178,13 +178,12 @@ MainWindow::MainWindow(QWidget *parent)
//! [7] //! [7]
void MainWindow::findStyles(const QFont &font) void MainWindow::findStyles(const QFont &font)
{ {
QFontDatabase fontDatabase;
QString currentItem = styleCombo->currentText(); QString currentItem = styleCombo->currentText();
styleCombo->clear(); styleCombo->clear();
//! [7] //! [7]
//! [8] //! [8]
const QStringList styles = fontDatabase.styles(font.family()); const QStringList styles = QFontDatabase::styles(font.family());
for (const QString &style : styles) for (const QString &style : styles)
styleCombo->addItem(style); styleCombo->addItem(style);
@ -207,7 +206,6 @@ void MainWindow::filterChanged(int f)
void MainWindow::findSizes(const QFont &font) void MainWindow::findSizes(const QFont &font)
{ {
QFontDatabase fontDatabase;
QString currentSize = sizeCombo->currentText(); QString currentSize = sizeCombo->currentText();
{ {
@ -215,7 +213,7 @@ void MainWindow::findSizes(const QFont &font)
// sizeCombo signals are now blocked until end of scope // sizeCombo signals are now blocked until end of scope
sizeCombo->clear(); sizeCombo->clear();
if (fontDatabase.isSmoothlyScalable(font.family(), fontDatabase.styleString(font))) { if (QFontDatabase::isSmoothlyScalable(font.family(), QFontDatabase::styleString(font))) {
const QList<int> sizes = QFontDatabase::standardSizes(); const QList<int> sizes = QFontDatabase::standardSizes();
for (const int size : sizes) { for (const int size : sizes) {
sizeCombo->addItem(QVariant(size).toString()); sizeCombo->addItem(QVariant(size).toString());
@ -223,7 +221,7 @@ void MainWindow::findSizes(const QFont &font)
} }
} else { } else {
const QList<int> sizes = fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font)); const QList<int> sizes = QFontDatabase::smoothSizes(font.family(), QFontDatabase::styleString(font));
for (const int size : sizes ) { for (const int size : sizes ) {
sizeCombo->addItem(QVariant(size).toString()); sizeCombo->addItem(QVariant(size).toString());
sizeCombo->setEditable(false); sizeCombo->setEditable(false);

View File

@ -54,23 +54,22 @@ namespace qfontdatabase_snippets {
void wrapper() void wrapper()
{ {
//! [0] //! [0]
QFontDatabase database;
QTreeWidget fontTree; QTreeWidget fontTree;
fontTree.setColumnCount(2); fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes"); fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");
const QStringList fontFamilies = database.families(); const QStringList fontFamilies = QFontDatabase::families();
for (const QString &family : fontFamilies) { for (const QString &family : fontFamilies) {
QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree); QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
familyItem->setText(0, family); familyItem->setText(0, family);
const QStringList fontStyles = database.styles(family); const QStringList fontStyles = QFontDatabase::styles(family);
for (const QString &style : fontStyles) { for (const QString &style : fontStyles) {
QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem); QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
styleItem->setText(0, style); styleItem->setText(0, style);
QString sizes; QString sizes;
const QList<int> smoothSizes = database.smoothSizes(family, style); const QList<int> smoothSizes = QFontDatabase::smoothSizes(family, style);
for (const auto &points : smoothSizes) for (const auto &points : smoothSizes)
sizes += QString::number(points) + ' '; sizes += QString::number(points) + ' ';

View File

@ -927,8 +927,7 @@ static const char **tryFonts = nullptr;
QStringList QWindowsFontDatabaseBase::extraTryFontsForFamily(const QString &family) QStringList QWindowsFontDatabaseBase::extraTryFontsForFamily(const QString &family)
{ {
QStringList result; QStringList result;
QFontDatabase db; if (!QFontDatabase::writingSystems(family).contains(QFontDatabase::Symbol)) {
if (!db.writingSystems(family).contains(QFontDatabase::Symbol)) {
if (!tryFonts) { if (!tryFonts) {
LANGID lid = GetUserDefaultLangID(); LANGID lid = GetUserDefaultLangID();
switch (lid&0xff) { switch (lid&0xff) {
@ -949,13 +948,12 @@ QStringList QWindowsFontDatabaseBase::extraTryFontsForFamily(const QString &fami
break; break;
} }
} }
QFontDatabase db; const QStringList families = QFontDatabase::families();
const QStringList families = db.families();
const char **tf = tryFonts; const char **tf = tryFonts;
while (tf && *tf) { while (tf && *tf) {
// QTBUG-31689, family might be an English alias for a localized font name. // QTBUG-31689, family might be an English alias for a localized font name.
const QString family = QString::fromLatin1(*tf); const QString family = QString::fromLatin1(*tf);
if (families.contains(family) || db.hasFamily(family)) if (families.contains(family) || QFontDatabase::hasFamily(family))
result << family; result << family;
++tf; ++tf;
} }

View File

@ -35,9 +35,8 @@ QT_BEGIN_NAMESPACE
QWasmTheme::QWasmTheme() QWasmTheme::QWasmTheme()
{ {
QFontDatabase fdb; for (auto family : QFontDatabase::families())
for (auto family : fdb.families()) if (QFontDatabase::isFixedPitch(family))
if (fdb.isFixedPitch(family))
fixedFont = new QFont(family); fixedFont = new QFont(family);
} }

View File

@ -486,20 +486,18 @@ void QFontDialogPrivate::updateFamilies()
const QFontDialog::FontDialogOptions spacingMask = (QFontDialog::ProportionalFonts | QFontDialog::MonospacedFonts); const QFontDialog::FontDialogOptions spacingMask = (QFontDialog::ProportionalFonts | QFontDialog::MonospacedFonts);
const QFontDialog::FontDialogOptions options = q->options(); const QFontDialog::FontDialogOptions options = q->options();
QFontDatabase fdb;
QStringList familyNames; QStringList familyNames;
const auto families = fdb.families(writingSystem); const auto families = QFontDatabase::families(writingSystem);
for (const QString &family : families) { for (const QString &family : families) {
if (fdb.isPrivateFamily(family)) if (QFontDatabase::isPrivateFamily(family))
continue; continue;
if ((options & scalableMask) && (options & scalableMask) != scalableMask) { if ((options & scalableMask) && (options & scalableMask) != scalableMask) {
if (bool(options & QFontDialog::ScalableFonts) != fdb.isSmoothlyScalable(family)) if (bool(options & QFontDialog::ScalableFonts) != QFontDatabase::isSmoothlyScalable(family))
continue; continue;
} }
if ((options & spacingMask) && (options & spacingMask) != spacingMask) { if ((options & spacingMask) && (options & spacingMask) != spacingMask) {
if (bool(options & QFontDialog::MonospacedFonts) != fdb.isFixedPitch(family)) if (bool(options & QFontDialog::MonospacedFonts) != QFontDatabase::isFixedPitch(family))
continue; continue;
} }
familyNames << family; familyNames << family;
@ -564,7 +562,7 @@ void QFontDialogPrivate::updateFamilies()
void QFontDialogPrivate::updateStyles() void QFontDialogPrivate::updateStyles()
{ {
Q_Q(QFontDialog); Q_Q(QFontDialog);
QStringList styles = fdb.styles(familyList->currentText()); QStringList styles = QFontDatabase::styles(familyList->currentText());
styleList->model()->setStringList(styles); styleList->model()->setStringList(styles);
if (styles.isEmpty()) { if (styles.isEmpty()) {
@ -606,7 +604,7 @@ void QFontDialogPrivate::updateStyles()
&& styleList->hasFocus()) && styleList->hasFocus())
styleEdit->selectAll(); styleEdit->selectAll();
smoothScalable = fdb.isSmoothlyScalable(familyList->currentText(), styleList->currentText()); smoothScalable = QFontDatabase::isSmoothlyScalable(familyList->currentText(), styleList->currentText());
} }
updateSizes(); updateSizes();
@ -623,7 +621,7 @@ void QFontDialogPrivate::updateSizes()
Q_Q(QFontDialog); Q_Q(QFontDialog);
if (!familyList->currentText().isEmpty()) { if (!familyList->currentText().isEmpty()) {
QList<int> sizes = fdb.pointSizes(familyList->currentText(), styleList->currentText()); QList<int> sizes = QFontDatabase::pointSizes(familyList->currentText(), styleList->currentText());
int i = 0; int i = 0;
int current = -1; int current = -1;
@ -655,7 +653,7 @@ void QFontDialogPrivate::_q_updateSample()
{ {
// compute new font // compute new font
int pSize = sizeEdit->text().toInt(); int pSize = sizeEdit->text().toInt();
QFont newFont(fdb.font(familyList->currentText(), style, pSize)); QFont newFont(QFontDatabase::font(familyList->currentText(), style, pSize));
newFont.setStrikeOut(strikeout->isChecked()); newFont.setStrikeOut(strikeout->isChecked());
newFont.setUnderline(underline->isChecked()); newFont.setUnderline(underline->isChecked());
@ -807,7 +805,7 @@ void QFontDialog::setCurrentFont(const QFont &font)
{ {
Q_D(QFontDialog); Q_D(QFontDialog);
d->family = font.family(); d->family = font.family();
d->style = d->fdb.styleString(font); d->style = QFontDatabase::styleString(font);
d->size = font.pointSize(); d->size = font.pointSize();
if (d->size == -1) { if (d->size == -1) {
QFontInfo fi(font); QFontInfo fi(font);

View File

@ -130,7 +130,6 @@ public:
QDialogButtonBox *buttonBox; QDialogButtonBox *buttonBox;
QFontDatabase fdb;
QString family; QString family;
QFontDatabase::WritingSystem writingSystem; QFontDatabase::WritingSystem writingSystem;
QString style; QString style;

View File

@ -320,23 +320,22 @@ void QFontComboBoxPrivate::_q_updateModel()
QFontFamilyDelegate *delegate = qobject_cast<QFontFamilyDelegate *>(q->view()->itemDelegate()); QFontFamilyDelegate *delegate = qobject_cast<QFontFamilyDelegate *>(q->view()->itemDelegate());
QFontDatabase::WritingSystem system = delegate ? delegate->writingSystem : QFontDatabase::Any; QFontDatabase::WritingSystem system = delegate ? delegate->writingSystem : QFontDatabase::Any;
QFontDatabase fdb; QStringList list = QFontDatabase::families(system);
QStringList list = fdb.families(system);
QStringList result; QStringList result;
int offset = 0; int offset = 0;
QFontInfo fi(currentFont); QFontInfo fi(currentFont);
for (int i = 0; i < list.size(); ++i) { for (int i = 0; i < list.size(); ++i) {
if (fdb.isPrivateFamily(list.at(i))) if (QFontDatabase::isPrivateFamily(list.at(i)))
continue; continue;
if ((filters & scalableMask) && (filters & scalableMask) != scalableMask) { if ((filters & scalableMask) && (filters & scalableMask) != scalableMask) {
if (bool(filters & QFontComboBox::ScalableFonts) != fdb.isSmoothlyScalable(list.at(i))) if (bool(filters & QFontComboBox::ScalableFonts) != QFontDatabase::isSmoothlyScalable(list.at(i)))
continue; continue;
} }
if ((filters & spacingMask) && (filters & spacingMask) != spacingMask) { if ((filters & spacingMask) && (filters & spacingMask) != spacingMask) {
if (bool(filters & QFontComboBox::MonospacedFonts) != fdb.isFixedPitch(list.at(i))) if (bool(filters & QFontComboBox::MonospacedFonts) != QFontDatabase::isFixedPitch(list.at(i)))
continue; continue;
} }
result += list.at(i); result += list.at(i);

View File

@ -131,14 +131,13 @@ void tst_QFont::exactMatch()
QVERIFY(!QFont("monospace").exactMatch()); QVERIFY(!QFont("monospace").exactMatch());
// Confirm that exactMatch is true for a valid font // Confirm that exactMatch is true for a valid font
QFontDatabase db; const QString family = QFontDatabase::families().first();
const QString family = db.families().first(); const QString style = QFontDatabase::styles(family).first();
const QString style = db.styles(family).first(); const int pointSize = QFontDatabase::pointSizes(family, style).first();
const int pointSize = db.pointSizes(family, style).first(); font = QFontDatabase::font(family, style, pointSize);
font = db.font(family, style, pointSize);
QVERIFY(font.exactMatch()); QVERIFY(font.exactMatch());
if (db.families().contains("Arial")) { if (QFontDatabase::families().contains("Arial")) {
font = QFont("Arial"); font = QFont("Arial");
QVERIFY(font.exactMatch()); QVERIFY(font.exactMatch());
font = QFont(QString()); font = QFont(QString());
@ -149,9 +148,7 @@ void tst_QFont::exactMatch()
void tst_QFont::italicOblique() void tst_QFont::italicOblique()
{ {
QFontDatabase fdb; QStringList families = QFontDatabase::families();
QStringList families = fdb.families();
if (families.isEmpty()) if (families.isEmpty())
return; return;
@ -159,12 +156,12 @@ void tst_QFont::italicOblique()
for (f_it = families.begin(); f_it != f_end; ++f_it) { for (f_it = families.begin(); f_it != f_end; ++f_it) {
QString family = *f_it; QString family = *f_it;
QStringList styles = fdb.styles(family); QStringList styles = QFontDatabase::styles(family);
QStringList::ConstIterator s_it, s_end = styles.end(); QStringList::ConstIterator s_it, s_end = styles.end();
for (s_it = styles.begin(); s_it != s_end; ++s_it) { for (s_it = styles.begin(); s_it != s_end; ++s_it) {
QString style = *s_it; QString style = *s_it;
if (fdb.isSmoothlyScalable(family, style)) { if (QFontDatabase::isSmoothlyScalable(family, style)) {
if (style.contains("Oblique")) { if (style.contains("Oblique")) {
style.replace("Oblique", "Italic"); style.replace("Oblique", "Italic");
} else if (style.contains("Italic")) { } else if (style.contains("Italic")) {
@ -172,7 +169,7 @@ void tst_QFont::italicOblique()
} else { } else {
continue; continue;
} }
QFont f = fdb.font(family, style, 12); QFont f = QFontDatabase::font(family, style, 12);
QVERIFY(f.italic()); QVERIFY(f.italic());
} }
} }
@ -564,12 +561,11 @@ void tst_QFont::defaultFamily()
QFETCH(QStringList, acceptableFamilies); QFETCH(QStringList, acceptableFamilies);
QFont f; QFont f;
QFontDatabase db;
f.setStyleHint(styleHint); f.setStyleHint(styleHint);
const QString familyForHint(f.defaultFamily()); const QString familyForHint(f.defaultFamily());
// it should at least return a family that is available. // it should at least return a family that is available.
QVERIFY(db.hasFamily(familyForHint)); QVERIFY(QFontDatabase::hasFamily(familyForHint));
bool isAcceptable = false; bool isAcceptable = false;
Q_FOREACH (const QString& family, acceptableFamilies) { Q_FOREACH (const QString& family, acceptableFamilies) {
@ -590,14 +586,13 @@ void tst_QFont::toAndFromString()
QFont defaultFont = QGuiApplication::font(); QFont defaultFont = QGuiApplication::font();
QString family = defaultFont.family(); QString family = defaultFont.family();
QFontDatabase fdb; const QStringList stylesList = QFontDatabase::styles(family);
const QStringList stylesList = fdb.styles(family);
if (stylesList.size() == 0) if (stylesList.size() == 0)
QSKIP("Default font doesn't have any styles"); QSKIP("Default font doesn't have any styles");
for (const QString &style : stylesList) { for (const QString &style : stylesList) {
QFont result; QFont result;
QFont initial = fdb.font(family, style, defaultFont.pointSize()); QFont initial = QFontDatabase::font(family, style, defaultFont.pointSize());
result.fromString(initial.toString()); result.fromString(initial.toString());

View File

@ -176,14 +176,12 @@ void tst_QFontCache::clear()
} }
#endif #endif
{ {
QFontDatabase db;
QFont f; QFont f;
f.setStyleHint(QFont::Serif); f.setStyleHint(QFont::Serif);
const QString familyForHint(f.defaultFamily()); const QString familyForHint(f.defaultFamily());
// it should at least return a family that is available // it should at least return a family that is available
QVERIFY(db.hasFamily(familyForHint)); QVERIFY(QFontDatabase::hasFamily(familyForHint));
f.exactMatch(); // loads engine f.exactMatch(); // loads engine
fontEngine = QFontPrivate::get(f)->engineForScript(QChar::Script_Common); fontEngine = QFontPrivate::get(f)->engineForScript(QChar::Script_Common);

View File

@ -113,8 +113,7 @@ void tst_QFontDatabase::styles()
{ {
QFETCH( QString, font ); QFETCH( QString, font );
QFontDatabase fdb; QStringList styles = QFontDatabase::styles( font );
QStringList styles = fdb.styles( font );
QStringList::Iterator it = styles.begin(); QStringList::Iterator it = styles.begin();
while ( it != styles.end() ) { while ( it != styles.end() ) {
QString style = *it; QString style = *it;
@ -151,11 +150,10 @@ void tst_QFontDatabase::fixedPitch()
QFETCH(QString, font); QFETCH(QString, font);
QFETCH(bool, fixedPitch); QFETCH(bool, fixedPitch);
QFontDatabase fdb; if (!QFontDatabase::families().contains(font))
if (!fdb.families().contains(font))
QSKIP("Font not installed"); QSKIP("Font not installed");
QCOMPARE(fdb.isFixedPitch(font), fixedPitch); QCOMPARE(QFontDatabase::isFixedPitch(font), fixedPitch);
QFont qfont(font); QFont qfont(font);
QFontInfo fi(qfont); QFontInfo fi(qfont);
@ -184,8 +182,7 @@ void tst_QFontDatabase::trickyFonts()
{ {
QFETCH(QString, font); QFETCH(QString, font);
QFontDatabase fdb; if (!QFontDatabase::families().contains(font))
if (!fdb.families().contains(font))
QSKIP( "Font not installed"); QSKIP( "Font not installed");
QFont qfont(font); QFont qfont(font);
@ -232,9 +229,7 @@ void tst_QFontDatabase::addAppFont()
QFETCH(bool, useMemoryFont); QFETCH(bool, useMemoryFont);
QSignalSpy fontDbChangedSpy(QGuiApplication::instance(), SIGNAL(fontDatabaseChanged())); QSignalSpy fontDbChangedSpy(QGuiApplication::instance(), SIGNAL(fontDatabaseChanged()));
QFontDatabase db; const QStringList oldFamilies = QFontDatabase::families();
const QStringList oldFamilies = db.families();
QVERIFY(!oldFamilies.isEmpty()); QVERIFY(!oldFamilies.isEmpty());
fontDbChangedSpy.clear(); fontDbChangedSpy.clear();
@ -262,7 +257,7 @@ void tst_QFontDatabase::addAppFont()
const QStringList addedFamilies = QFontDatabase::applicationFontFamilies(id); const QStringList addedFamilies = QFontDatabase::applicationFontFamilies(id);
QVERIFY(!addedFamilies.isEmpty()); QVERIFY(!addedFamilies.isEmpty());
const QStringList newFamilies = db.families(); const QStringList newFamilies = QFontDatabase::families();
QVERIFY(!newFamilies.isEmpty()); QVERIFY(!newFamilies.isEmpty());
QVERIFY(newFamilies.count() >= oldFamilies.count()); QVERIFY(newFamilies.count() >= oldFamilies.count());
@ -277,7 +272,7 @@ void tst_QFontDatabase::addAppFont()
QVERIFY(QFontDatabase::removeApplicationFont(id)); QVERIFY(QFontDatabase::removeApplicationFont(id));
QCOMPARE(fontDbChangedSpy.count(), 2); QCOMPARE(fontDbChangedSpy.count(), 2);
QCOMPARE(db.families(), oldFamilies); QCOMPARE(QFontDatabase::families(), oldFamilies);
} }
void tst_QFontDatabase::addTwoAppFontsFromFamily() void tst_QFontDatabase::addTwoAppFontsFromFamily()
@ -306,15 +301,14 @@ void tst_QFontDatabase::addTwoAppFontsFromFamily()
void tst_QFontDatabase::aliases() void tst_QFontDatabase::aliases()
{ {
QFontDatabase db; const QStringList families = QFontDatabase::families();
const QStringList families = db.families();
QVERIFY(!families.isEmpty()); QVERIFY(!families.isEmpty());
const QString firstFont = families.front(); const QString firstFont = families.front();
QVERIFY(db.hasFamily(firstFont)); QVERIFY(QFontDatabase::hasFamily(firstFont));
const QString alias = QStringLiteral("AliasToFirstFont") + firstFont; const QString alias = QStringLiteral("AliasToFirstFont") + firstFont;
QVERIFY(!db.hasFamily(alias)); QVERIFY(!QFontDatabase::hasFamily(alias));
QPlatformFontDatabase::registerAliasToFontFamily(firstFont, alias); QPlatformFontDatabase::registerAliasToFontFamily(firstFont, alias);
QVERIFY(db.hasFamily(alias)); QVERIFY(QFontDatabase::hasFamily(alias));
} }
void tst_QFontDatabase::fallbackFonts() void tst_QFontDatabase::fallbackFonts()
@ -368,12 +362,11 @@ void tst_QFontDatabase::condensedFontWidthNoFontMerging()
void tst_QFontDatabase::condensedFontWidth() void tst_QFontDatabase::condensedFontWidth()
{ {
QFontDatabase db;
QFontDatabase::addApplicationFont(m_testFont); QFontDatabase::addApplicationFont(m_testFont);
QFontDatabase::addApplicationFont(m_testFontCondensed); QFontDatabase::addApplicationFont(m_testFontCondensed);
QVERIFY(db.hasFamily("QtBidiTestFont")); QVERIFY(QFontDatabase::hasFamily("QtBidiTestFont"));
if (!db.hasFamily("QtBidiTestFontCondensed")) if (!QFontDatabase::hasFamily("QtBidiTestFontCondensed"))
QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)"); QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)");
// Test we really get a condensed font, and a not renormalized one (QTBUG-48043): // Test we really get a condensed font, and a not renormalized one (QTBUG-48043):
@ -387,10 +380,9 @@ void tst_QFontDatabase::condensedFontWidth()
void tst_QFontDatabase::condensedFontMatching() void tst_QFontDatabase::condensedFontMatching()
{ {
QFontDatabase db;
QFontDatabase::removeAllApplicationFonts(); QFontDatabase::removeAllApplicationFonts();
QFontDatabase::addApplicationFont(m_testFontCondensed); QFontDatabase::addApplicationFont(m_testFontCondensed);
if (!db.hasFamily("QtBidiTestFont")) if (!QFontDatabase::hasFamily("QtBidiTestFont"))
QSKIP("This platform doesn't support preferred font family names (QTBUG-53478)"); QSKIP("This platform doesn't support preferred font family names (QTBUG-53478)");
QFontDatabase::addApplicationFont(m_testFont); QFontDatabase::addApplicationFont(m_testFont);
@ -410,7 +402,7 @@ void tst_QFontDatabase::condensedFontMatching()
QCOMPARE(QFontMetrics(tfcByStretch).horizontalAdvance(testString()), QCOMPARE(QFontMetrics(tfcByStretch).horizontalAdvance(testString()),
QFontMetrics(tfcByStyleName).horizontalAdvance(testString())); QFontMetrics(tfcByStyleName).horizontalAdvance(testString()));
if (!db.hasFamily("QtBidiTestFontCondensed")) if (!QFontDatabase::hasFamily("QtBidiTestFontCondensed"))
QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)"); QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)");
QFont tfcBySubfamilyName("QtBidiTestFontCondensed"); QFont tfcBySubfamilyName("QtBidiTestFontCondensed");
@ -445,25 +437,22 @@ void tst_QFontDatabase::smoothFonts()
void tst_QFontDatabase::registerOpenTypePreferredNamesSystem() void tst_QFontDatabase::registerOpenTypePreferredNamesSystem()
{ {
QFontDatabase db;
// This font family was picked because it was the only one I had installed which showcased the // This font family was picked because it was the only one I had installed which showcased the
// problem // problem
if (!db.hasFamily(QString::fromLatin1("Source Code Pro ExtraLight"))) if (!QFontDatabase::hasFamily(QString::fromLatin1("Source Code Pro ExtraLight")))
QSKIP("Source Code Pro ExtraLight is not installed"); QSKIP("Source Code Pro ExtraLight is not installed");
QStringList styles = db.styles(QString::fromLatin1("Source Code Pro")); QStringList styles = QFontDatabase::styles(QString::fromLatin1("Source Code Pro"));
QVERIFY(styles.contains(QLatin1String("ExtraLight"))); QVERIFY(styles.contains(QLatin1String("ExtraLight")));
} }
void tst_QFontDatabase::registerOpenTypePreferredNamesApplication() void tst_QFontDatabase::registerOpenTypePreferredNamesApplication()
{ {
QFontDatabase db;
int id = QFontDatabase::addApplicationFont(QString::fromLatin1(":/testfont_open.otf")); int id = QFontDatabase::addApplicationFont(QString::fromLatin1(":/testfont_open.otf"));
if (id == -1) if (id == -1)
QSKIP("Skip the test since app fonts are not supported on this system"); QSKIP("Skip the test since app fonts are not supported on this system");
QStringList styles = db.styles(QString::fromLatin1("QtBidiTestFont")); QStringList styles = QFontDatabase::styles(QString::fromLatin1("QtBidiTestFont"));
QVERIFY(styles.contains(QLatin1String("Open"))); QVERIFY(styles.contains(QLatin1String("Open")));
QFontDatabase::removeApplicationFont(id); QFontDatabase::removeApplicationFont(id);

View File

@ -91,11 +91,10 @@ void tst_QFontMetrics::same()
void tst_QFontMetrics::metrics() void tst_QFontMetrics::metrics()
{ {
QFont font; QFont font;
QFontDatabase fdb;
// Query the QFontDatabase for a specific font, store the // Query the QFontDatabase for a specific font, store the
// result in family, style and size. // result in family, style and size.
QStringList families = fdb.families(); QStringList families = QFontDatabase::families();
if (families.isEmpty()) if (families.isEmpty())
return; return;
@ -103,14 +102,14 @@ void tst_QFontMetrics::metrics()
for (f_it = families.begin(); f_it != f_end; ++f_it) { for (f_it = families.begin(); f_it != f_end; ++f_it) {
const QString &family = *f_it; const QString &family = *f_it;
QStringList styles = fdb.styles(family); QStringList styles = QFontDatabase::styles(family);
QStringList::ConstIterator s_it, s_end = styles.end(); QStringList::ConstIterator s_it, s_end = styles.end();
for (s_it = styles.begin(); s_it != s_end; ++s_it) { for (s_it = styles.begin(); s_it != s_end; ++s_it) {
const QString &style = *s_it; const QString &style = *s_it;
if (fdb.isSmoothlyScalable(family, style)) { if (QFontDatabase::isSmoothlyScalable(family, style)) {
// smoothly scalable font... don't need to load every pointsize // smoothly scalable font... don't need to load every pointsize
font = fdb.font(family, style, 12); font = QFontDatabase::font(family, style, 12);
QFontMetrics fontmetrics(font); QFontMetrics fontmetrics(font);
QCOMPARE(fontmetrics.ascent() + fontmetrics.descent(), QCOMPARE(fontmetrics.ascent() + fontmetrics.descent(),
@ -119,14 +118,14 @@ void tst_QFontMetrics::metrics()
QCOMPARE(fontmetrics.height() + fontmetrics.leading(), QCOMPARE(fontmetrics.height() + fontmetrics.leading(),
fontmetrics.lineSpacing()); fontmetrics.lineSpacing());
} else { } else {
QList<int> sizes = fdb.pointSizes(family, style); QList<int> sizes = QFontDatabase::pointSizes(family, style);
QVERIFY(!sizes.isEmpty()); QVERIFY(!sizes.isEmpty());
QList<int>::ConstIterator z_it, z_end = sizes.end(); QList<int>::ConstIterator z_it, z_end = sizes.end();
for (z_it = sizes.begin(); z_it != z_end; ++z_it) { for (z_it = sizes.begin(); z_it != z_end; ++z_it) {
const int size = *z_it; const int size = *z_it;
// Initialize the font, and check if it is an exact match // Initialize the font, and check if it is an exact match
font = fdb.font(family, style, size); font = QFontDatabase::font(family, style, size);
QFontMetrics fontmetrics(font); QFontMetrics fontmetrics(font);
QCOMPARE(fontmetrics.ascent() + fontmetrics.descent(), QCOMPARE(fontmetrics.ascent() + fontmetrics.descent(),

View File

@ -121,8 +121,7 @@ void tst_QRawFont::initTestCase()
if (testFont.isEmpty() || testFontBoldItalic.isEmpty()) if (testFont.isEmpty() || testFontBoldItalic.isEmpty())
QFAIL("qrawfont unittest font files not found!"); QFAIL("qrawfont unittest font files not found!");
QFontDatabase database; if (QFontDatabase::families().count() == 0)
if (database.families().count() == 0)
QSKIP("No fonts available!!!"); QSKIP("No fonts available!!!");
} }
@ -389,8 +388,7 @@ void tst_QRawFont::advances()
void tst_QRawFont::textLayout() void tst_QRawFont::textLayout()
{ {
QFontDatabase fontDatabase; int id = QFontDatabase::addApplicationFont(testFont);
int id = fontDatabase.addApplicationFont(testFont);
QVERIFY(id >= 0); QVERIFY(id >= 0);
QString familyName = QString::fromLatin1("QtBidiTestFont"); QString familyName = QString::fromLatin1("QtBidiTestFont");
@ -420,7 +418,7 @@ void tst_QRawFont::textLayout()
QCOMPARE(glyphs.glyphIndexes(), expectedGlyphIndices); QCOMPARE(glyphs.glyphIndexes(), expectedGlyphIndices);
QVERIFY(fontDatabase.removeApplicationFont(id)); QVERIFY(QFontDatabase::removeApplicationFont(id));
} }
void tst_QRawFont::fontTable_data() void tst_QRawFont::fontTable_data()
@ -703,8 +701,7 @@ void tst_QRawFont::fromFont()
QFETCH(QString, familyName); QFETCH(QString, familyName);
QFETCH(QFontDatabase::WritingSystem, writingSystem); QFETCH(QFontDatabase::WritingSystem, writingSystem);
QFontDatabase fontDatabase; int id = QFontDatabase::addApplicationFont(fileName);
int id = fontDatabase.addApplicationFont(fileName);
QVERIFY(id >= 0); QVERIFY(id >= 0);
QFont font(familyName); QFont font(familyName);
@ -717,7 +714,7 @@ void tst_QRawFont::fromFont()
QCOMPARE(rawFont.familyName(), familyName); QCOMPARE(rawFont.familyName(), familyName);
QCOMPARE(rawFont.pixelSize(), 26.0); QCOMPARE(rawFont.pixelSize(), 26.0);
QVERIFY(fontDatabase.removeApplicationFont(id)); QVERIFY(QFontDatabase::removeApplicationFont(id));
} }
void tst_QRawFont::copyConstructor_data() void tst_QRawFont::copyConstructor_data()
@ -878,8 +875,7 @@ void tst_QRawFont::unsupportedWritingSystem()
{ {
QFETCH(QFont::HintingPreference, hintingPreference); QFETCH(QFont::HintingPreference, hintingPreference);
QFontDatabase fontDatabase; int id = QFontDatabase::addApplicationFont(testFont);
int id = fontDatabase.addApplicationFont(testFont);
QFont font("QtBidiTestFont"); QFont font("QtBidiTestFont");
font.setHintingPreference(hintingPreference); font.setHintingPreference(hintingPreference);
@ -915,7 +911,7 @@ void tst_QRawFont::unsupportedWritingSystem()
QCOMPARE(rawFont.familyName(), layoutFont.familyName()); QCOMPARE(rawFont.familyName(), layoutFont.familyName());
QCOMPARE(rawFont.pixelSize(), 12.0); QCOMPARE(rawFont.pixelSize(), 12.0);
fontDatabase.removeApplicationFont(id); QFontDatabase::removeApplicationFont(id);
} }
void tst_QRawFont::rawFontSetPixelSize_data() void tst_QRawFont::rawFontSetPixelSize_data()
@ -1017,8 +1013,7 @@ void tst_QRawFont::kernedAdvances()
void tst_QRawFont::fallbackFontsOrder() void tst_QRawFont::fallbackFontsOrder()
{ {
QFontDatabase fontDatabase; int id = QFontDatabase::addApplicationFont(testFont);
int id = fontDatabase.addApplicationFont(testFont);
QFont font("QtBidiTestFont"); QFont font("QtBidiTestFont");
font.setPixelSize(12.0); font.setPixelSize(12.0);
@ -1047,7 +1042,7 @@ void tst_QRawFont::fallbackFontsOrder()
// is not sorted by writing system support. // is not sorted by writing system support.
QCOMPARE(glyphRuns.size(), 1); QCOMPARE(glyphRuns.size(), 1);
fontDatabase.removeApplicationFont(id); QFontDatabase::removeApplicationFont(id);
} }
void tst_QRawFont::qtbug65923_partal_clone_data() void tst_QRawFont::qtbug65923_partal_clone_data()

View File

@ -1078,8 +1078,7 @@ void tst_QTextScriptEngine::mirroredChars()
void tst_QTextScriptEngine::controlInSyllable_qtbug14204() void tst_QTextScriptEngine::controlInSyllable_qtbug14204()
{ {
QFontDatabase db; if (!QFontDatabase::families().contains(QStringLiteral("Aparajita")))
if (!db.families().contains(QStringLiteral("Aparajita")))
QSKIP("couldn't find 'Aparajita' font"); QSKIP("couldn't find 'Aparajita' font");
QFont font(QStringLiteral("Aparajita")); QFont font(QStringLiteral("Aparajita"));
@ -1181,8 +1180,7 @@ void tst_QTextScriptEngine::combiningMarks_qtbug15675()
void tst_QTextScriptEngine::thaiIsolatedSaraAm() void tst_QTextScriptEngine::thaiIsolatedSaraAm()
{ {
QFontDatabase db; if (!QFontDatabase::families().contains("Waree"))
if (!db.families().contains("Waree"))
QSKIP("couldn't find 'Waree' font"); QSKIP("couldn't find 'Waree' font");
QFont font(QStringLiteral("Waree")); QFont font(QStringLiteral("Waree"));
@ -1214,8 +1212,7 @@ void tst_QTextScriptEngine::thaiWithZWJ()
QSKIP("Requires up-to-date Harfbuzz"); QSKIP("Requires up-to-date Harfbuzz");
#endif #endif
QFontDatabase db; if (!QFontDatabase::families().contains("Waree"))
if (!db.families().contains("Waree"))
QSKIP("couldn't find 'Waree' font"); QSKIP("couldn't find 'Waree' font");
QFont font(QStringLiteral("Waree")); QFont font(QStringLiteral("Waree"));

View File

@ -182,7 +182,6 @@ void tst_QFontDialog::task256466_wrongStyle()
if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive))
QSKIP("Wayland: This freezes. Figure out why."); QSKIP("Wayland: This freezes. Figure out why.");
QFontDatabase fdb;
FriendlyFontDialog dialog; FriendlyFontDialog dialog;
dialog.setOption(QFontDialog::DontUseNativeDialog); dialog.setOption(QFontDialog::DontUseNativeDialog);
QListView *familyList = reinterpret_cast<QListView*>(dialog.d_func()->familyList); QListView *familyList = reinterpret_cast<QListView*>(dialog.d_func()->familyList);
@ -193,7 +192,7 @@ void tst_QFontDialog::task256466_wrongStyle()
familyList->setCurrentIndex(currentFamily); familyList->setCurrentIndex(currentFamily);
int expectedSize = sizeList->currentIndex().data().toInt(); int expectedSize = sizeList->currentIndex().data().toInt();
const QFont current = dialog.currentFont(), const QFont current = dialog.currentFont(),
expected = fdb.font(currentFamily.data().toString(), expected = QFontDatabase::font(currentFamily.data().toString(),
styleList->currentIndex().data().toString(), expectedSize); styleList->currentIndex().data().toString(), expectedSize);
QCOMPARE(current.family(), expected.family()); QCOMPARE(current.family(), expected.family());
QCOMPARE(current.style(), expected.style()); QCOMPARE(current.style(), expected.style());

View File

@ -367,13 +367,12 @@ void tst_QApplication::setFont_data()
int argc = 0; int argc = 0;
QApplication app(argc, nullptr); // Needed for QFontDatabase QApplication app(argc, nullptr); // Needed for QFontDatabase
QFontDatabase fdb; const QStringList &families = QFontDatabase::families();
const QStringList &families = fdb.families();
for (int i = 0, count = qMin(3, families.size()); i < count; ++i) { for (int i = 0, count = qMin(3, families.size()); i < count; ++i) {
const auto &family = families.at(i); const auto &family = families.at(i);
const QStringList &styles = fdb.styles(family); const QStringList &styles = QFontDatabase::styles(family);
if (!styles.isEmpty()) { if (!styles.isEmpty()) {
QList<int> sizes = fdb.pointSizes(family, styles.constFirst()); QList<int> sizes = QFontDatabase::pointSizes(family, styles.constFirst());
if (sizes.isEmpty()) if (sizes.isEmpty())
sizes = QFontDatabase::standardSizes(); sizes = QFontDatabase::standardSizes();
if (!sizes.isEmpty()) { if (!sizes.isEmpty()) {
@ -2515,7 +2514,6 @@ Q_GLOBAL_STATIC(QWidget, tst_qapp_widget);
Q_GLOBAL_STATIC(QPixmap, tst_qapp_pixmap); Q_GLOBAL_STATIC(QPixmap, tst_qapp_pixmap);
Q_GLOBAL_STATIC(QFont, tst_qapp_font); Q_GLOBAL_STATIC(QFont, tst_qapp_font);
Q_GLOBAL_STATIC(QRegion, tst_qapp_region); Q_GLOBAL_STATIC(QRegion, tst_qapp_region);
Q_GLOBAL_STATIC(QFontDatabase, tst_qapp_fontDatabase);
#ifndef QT_NO_CURSOR #ifndef QT_NO_CURSOR
Q_GLOBAL_STATIC(QCursor, tst_qapp_cursor); Q_GLOBAL_STATIC(QCursor, tst_qapp_cursor);
#endif #endif
@ -2540,7 +2538,6 @@ void tst_QApplication::globalStaticObjectDestruction()
QVERIFY(tst_qapp_pixmap()); QVERIFY(tst_qapp_pixmap());
QVERIFY(tst_qapp_font()); QVERIFY(tst_qapp_font());
QVERIFY(tst_qapp_region()); QVERIFY(tst_qapp_region());
QVERIFY(tst_qapp_fontDatabase());
#ifndef QT_NO_CURSOR #ifndef QT_NO_CURSOR
QVERIFY(tst_qapp_cursor()); QVERIFY(tst_qapp_cursor());
#endif #endif

View File

@ -88,20 +88,19 @@ void tst_QFontComboBox::qfontcombobox()
void tst_QFontComboBox::currentFont_data() void tst_QFontComboBox::currentFont_data()
{ {
QTest::addColumn<QFont>("currentFont"); QTest::addColumn<QFont>("currentFont");
QFontDatabase db;
// Normalize the names // Normalize the names
QFont defaultFont; QFont defaultFont;
QFontInfo fi(defaultFont); QFontInfo fi(defaultFont);
defaultFont = QFont(fi.family()); // make sure we have a real font name and not something like 'Sans Serif'. defaultFont = QFont(fi.family()); // make sure we have a real font name and not something like 'Sans Serif'.
if (!db.isPrivateFamily(defaultFont.family())) if (!QFontDatabase::isPrivateFamily(defaultFont.family()))
QTest::newRow("default") << defaultFont; QTest::newRow("default") << defaultFont;
defaultFont.setPointSize(defaultFont.pointSize() + 10); defaultFont.setPointSize(defaultFont.pointSize() + 10);
if (!db.isPrivateFamily(defaultFont.family())) if (!QFontDatabase::isPrivateFamily(defaultFont.family()))
QTest::newRow("default2") << defaultFont; QTest::newRow("default2") << defaultFont;
QStringList list = db.families(); QStringList list = QFontDatabase::families();
for (int i = 0; i < list.count(); ++i) { for (int i = 0; i < list.count(); ++i) {
QFont f = QFont(QFontInfo(QFont(list.at(i))).family()); QFont f = QFont(QFontInfo(QFont(list.at(i))).family());
if (!db.isPrivateFamily(f.family())) if (!QFontDatabase::isPrivateFamily(f.family()))
QTest::newRow(qPrintable(list.at(i))) << f; QTest::newRow(qPrintable(list.at(i))) << f;
} }
} }
@ -168,8 +167,7 @@ void tst_QFontComboBox::fontFilters()
box.setFontFilters(fontFilters); box.setFontFilters(fontFilters);
QCOMPARE(box.fontFilters(), fontFilters); QCOMPARE(box.fontFilters(), fontFilters);
QFontDatabase db; QStringList list = QFontDatabase::families();
QStringList list = db.families();
int c = 0; int c = 0;
const int scalableMask = (QFontComboBox::ScalableFonts | QFontComboBox::NonScalableFonts); const int scalableMask = (QFontComboBox::ScalableFonts | QFontComboBox::NonScalableFonts);
const int spacingMask = (QFontComboBox::ProportionalFonts | QFontComboBox::MonospacedFonts); const int spacingMask = (QFontComboBox::ProportionalFonts | QFontComboBox::MonospacedFonts);
@ -179,20 +177,20 @@ void tst_QFontComboBox::fontFilters()
fontFilters &= ~spacingMask; fontFilters &= ~spacingMask;
for (int i = 0; i < list.count(); ++i) { for (int i = 0; i < list.count(); ++i) {
if (db.isPrivateFamily(list[i])) if (QFontDatabase::isPrivateFamily(list[i]))
continue; continue;
if (fontFilters & QFontComboBox::ScalableFonts) { if (fontFilters & QFontComboBox::ScalableFonts) {
if (!db.isSmoothlyScalable(list[i])) if (!QFontDatabase::isSmoothlyScalable(list[i]))
continue; continue;
} else if (fontFilters & QFontComboBox::NonScalableFonts) { } else if (fontFilters & QFontComboBox::NonScalableFonts) {
if (db.isSmoothlyScalable(list[i])) if (QFontDatabase::isSmoothlyScalable(list[i]))
continue; continue;
} }
if (fontFilters & QFontComboBox::MonospacedFonts) { if (fontFilters & QFontComboBox::MonospacedFonts) {
if (!db.isFixedPitch(list[i])) if (!QFontDatabase::isFixedPitch(list[i]))
continue; continue;
} else if (fontFilters & QFontComboBox::ProportionalFonts) { } else if (fontFilters & QFontComboBox::ProportionalFonts) {
if (db.isFixedPitch(list[i])) if (QFontDatabase::isFixedPitch(list[i]))
continue; continue;
} }
c++; c++;
@ -243,11 +241,10 @@ void tst_QFontComboBox::writingSystem()
box.setWritingSystem(writingSystem); box.setWritingSystem(writingSystem);
QCOMPARE(box.writingSystem(), writingSystem); QCOMPARE(box.writingSystem(), writingSystem);
QFontDatabase db; QStringList list = QFontDatabase::families(writingSystem);
QStringList list = db.families(writingSystem);
int c = list.count(); int c = list.count();
for (int i = 0; i < list.count(); ++i) { for (int i = 0; i < list.count(); ++i) {
if (db.isPrivateFamily(list[i])) if (QFontDatabase::isPrivateFamily(list[i]))
c--; c--;
} }
QCOMPARE(box.model()->rowCount(), c); QCOMPARE(box.model()->rowCount(), c);