34 QRect viewRect = option.rect;
35 painter->setPen(Qt::gray);
36 painter->drawLine((viewRect.topLeft() + viewRect.bottomLeft()) / 2 + QPoint(5, 0),
37 (viewRect.topRight() + viewRect.bottomRight()) / 2 - QPoint(5, 0));
60 , m_initialized(false)
61 , m_initializeFromConfig(false)
64 completer()->setCompletionMode(QCompleter::InlineCompletion);
65 completer()->setCaseSensitivity(Qt::CaseInsensitive);
69 <<
"cmss10" <<
"cmex10" <<
"cmmi10"
70 <<
"cmr10" <<
"cmsy10" <<
"eufb10"
71 <<
"eufm10" <<
"eurb10" <<
"eurm10"
72 <<
"esint10" <<
"eufm10" <<
"eusb10"
73 <<
"eusm10" <<
"lasy10" <<
"lasyb10"
74 <<
"msam10" <<
"msbm10" <<
"rsfs10"
75 <<
"stmary10" <<
"wasy10" <<
"wasyb10";
77 QFontComboBox *temp =
new QFontComboBox(
this);
79 temp->setEnabled(
true);
83 KConfigGroup cfg(KSharedConfig::openConfig(),
"");
91 QFontDatabase fonts = QFontDatabase();
98 if (writingSystems.isEmpty()) {
99 writingSystems.append(QFontDatabase::Any);
102 for (
int i = 0; i < writingSystems.size(); i++) {
103 Q_FOREACH (QString family, fonts.families(writingSystems.at(i))) {
105 bool addFont = !fonts.isPrivateFamily(family);
107 if (addFont && filteredFonts.contains(family)) {
110 if (addFont && duplicateFonts.contains(family)) {
116 if (addFont && !fonts.isSmoothlyScalable(family)) {
122 Q_FOREACH (
const QString style, fonts.styles(family)) {
123 duplicateFonts.append(family +
" " + style);
124 duplicateFonts.append(family +
"_" + style);
126 filteredFonts.append(family);
127 int width = 1.5 * view()->fontMetrics()
128 .horizontalAdvance(family +
" " + fonts.writingSystemSample(QFontDatabase::Any));
129 if (width > maxWidth) {
135 this->addItems(filteredFonts);
137 this->setValidator(familyValidator);
138 if (this->count() > this->maxVisibleItems()) {
139 maxWidth += view()->style()->pixelMetric(QStyle::PixelMetric::PM_ScrollBarExtent);
141 view()->setMinimumWidth(maxWidth);
275 QString currentText =
m_styles->currentText();
277 const QString family =
m_family->currentText();
285 if (fonts.styles(family).isEmpty()) {
286 styles.append(
"Normal");
289 Q_FOREACH (
const QString style, fonts.styles(family)) {
290 int b = fonts.weight(family, style);
292 for (
int i = 0; i < styles.size(); i++) {
293 if (b > fonts.weight(family, styles.at(i))) {
297 if (!styles.contains(style)) {
298 styles.insert(bindex, style);
299 maxWidth = qMax(
m_styles->view()->fontMetrics().horizontalAdvance(style +
" "), maxWidth);
304 maxWidth +=
m_styles->view()->style()->pixelMetric(QStyle::PixelMetric::PM_ScrollBarExtent);
306 m_styles->view()->setMinimumWidth(maxWidth);
307 if (styles.contains(currentText)) {
308 m_styles->setCurrentText(currentText);