90{
91#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
92 QFontDatabase fonts = QFontDatabase();
93#endif
94 int maxWidth = 0;
96
99
100 if (writingSystems.isEmpty()) {
101 writingSystems.append(QFontDatabase::Any);
102 }
103
104 for (int i = 0; i < writingSystems.size(); i++) {
105#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
106 Q_FOREACH (QString family, fonts.families(writingSystems.at(i))) {
107
108 bool addFont = !fonts.isPrivateFamily(family);
109#else
110 Q_FOREACH (QString family, QFontDatabase::families(writingSystems.at(i))) {
111
112 bool addFont = !QFontDatabase::isPrivateFamily(family);
113#endif
114
115 if (addFont && filteredFonts.contains(family)) {
116 addFont = false;
117 }
118 if (addFont && duplicateFonts.contains(family)) {
119 addFont = false;
120 }
122 addFont = false;
123 }
124#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
125 if (addFont && !fonts.isSmoothlyScalable(family)) {
126#else
127 if (addFont && !QFontDatabase::isSmoothlyScalable(family)) {
128#endif
129 addFont = false;
130 }
131
132 if (addFont) {
133
134#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
135 Q_FOREACH (const QString style, fonts.styles(family)) {
136#else
137 Q_FOREACH (const QString style, QFontDatabase::styles(family)) {
138#endif
139 duplicateFonts.append(family + " " + style);
140 duplicateFonts.append(family + "_" + style);
141 }
142 filteredFonts.append(family);
143 int width = 1.5 * view()->fontMetrics()
144 .horizontalAdvance(family + " " + QFontDatabase::writingSystemSample(QFontDatabase::Any));
145 if (width > maxWidth) {
146 maxWidth = width;
147 }
148 }
149 }
150 }
151 this->addItems(filteredFonts);
153 this->setValidator(familyValidator);
154 if (this->count() > this->maxVisibleItems()) {
155 maxWidth += view()->style()->pixelMetric(QStyle::PixelMetric::PM_ScrollBarExtent);
156 }
157 view()->setMinimumWidth(maxWidth);
158}
QAction * clear(const QObject *recvr, const char *slot, QObject *parent)