// public QFontDatabase::WritingSystem writingSystem() const void tst_QFontComboBox::writingSystem() { QFETCH(QFontDatabase::WritingSystem, writingSystem); SubQFontComboBox box; QSignalSpy spy0(&box, SIGNAL(currentFontChanged(QFont))); QFont currentFont = box.currentFont(); box.setWritingSystem(writingSystem); QCOMPARE(box.writingSystem(), writingSystem); QFontDatabase db; QStringList list = db.families(writingSystem); int c = list.count(); for (int i = 0; i < list.count(); ++i) { if (db.isPrivateFamily(list[i])) c--; } QCOMPARE(box.model()->rowCount(), c); if (list.count() == 0) QCOMPARE(box.currentFont(), QFont()); QCOMPARE(spy0.count(), (currentFont != box.currentFont()) ? 1 : 0); }
// protected void currentFontChanged(QFont const& f) void tst_QFontComboBox::currentFontChanged() { SubQFontComboBox box; QSignalSpy spy0(&box, SIGNAL(currentFontChanged(QFont const&))); if (box.model()->rowCount() > 2) { QTest::keyPress(&box, Qt::Key_Down); QCOMPARE(spy0.count(), 1); } else qWarning("Not enough fonts installed on test system. Consider adding some"); }
// public QFontComboBox::FontFilters fontFilters() const void tst_QFontComboBox::fontFilters() { QFETCH(QFontComboBox::FontFilters, fontFilters); SubQFontComboBox box; QSignalSpy spy0(&box, SIGNAL(currentFontChanged(QFont))); QFont currentFont = box.currentFont(); box.setFontFilters(fontFilters); QCOMPARE(box.fontFilters(), fontFilters); QFontDatabase db; QStringList list = db.families(); int c = 0; const int scalableMask = (QFontComboBox::ScalableFonts | QFontComboBox::NonScalableFonts); const int spacingMask = (QFontComboBox::ProportionalFonts | QFontComboBox::MonospacedFonts); if((fontFilters & scalableMask) == scalableMask) fontFilters &= ~scalableMask; if((fontFilters & spacingMask) == spacingMask) fontFilters &= ~spacingMask; for (int i = 0; i < list.count(); ++i) { if (db.isPrivateFamily(list[i])) continue; if (fontFilters & QFontComboBox::ScalableFonts) { if (!db.isSmoothlyScalable(list[i])) continue; } else if (fontFilters & QFontComboBox::NonScalableFonts) { if (db.isSmoothlyScalable(list[i])) continue; } if (fontFilters & QFontComboBox::MonospacedFonts) { if (!db.isFixedPitch(list[i])) continue; } else if (fontFilters & QFontComboBox::ProportionalFonts) { if (db.isFixedPitch(list[i])) continue; } c++; } QCOMPARE(box.model()->rowCount(), c); if (c == 0) QCOMPARE(box.currentFont(), QFont()); QCOMPARE(spy0.count(), (currentFont != box.currentFont()) ? 1 : 0); }
// public QFontDatabase::WritingSystem writingSystem() const void tst_QFontComboBox::writingSystem() { QFETCH(QFontDatabase::WritingSystem, writingSystem); SubQFontComboBox box; QSignalSpy spy0(&box, SIGNAL(currentFontChanged(QFont const&))); QFont currentFont = box.currentFont(); box.setWritingSystem(writingSystem); QCOMPARE(box.writingSystem(), writingSystem); QFontDatabase db; QStringList list = db.families(writingSystem); QCOMPARE(box.model()->rowCount(), list.count()); if (list.count() == 0) QCOMPARE(box.currentFont(), QFont()); QCOMPARE(spy0.count(), (currentFont != box.currentFont()) ? 1 : 0); }