23 #include "fonthelpers_p.h"
24 #include "sampleedit_p.h"
26 #include <QtGui/QCheckBox>
27 #include <QtGui/QLabel>
28 #include <QtGui/QLayout>
29 #include <QtGui/QSplitter>
30 #include <QtGui/QScrollBar>
31 #include <QtGui/QFontDatabase>
32 #include <QtGui/QGroupBox>
49 #define I18NC_NOX i18nc
54 for(
int i=0; i<list->count(); i++ )
56 int itemWidth = list->visualItemRect(list->item(i)).width();
58 itemWidth += list->fontMetrics().width(
' ') * 2;
59 w = qMax(w,itemWidth);
61 if( w == 0 ) { w = 40; }
62 w += list->frameWidth() * 2;
63 w += list->verticalScrollBar()->sizeHint().width();
69 int w = list->count() > 0 ? list->visualItemRect(list->item(0)).height() :
70 list->fontMetrics().lineSpacing();
72 if( w < 0 ) { w = 10; }
73 if( numVisibleEntry <= 0 ) { numVisibleEntry = 4; }
74 return ( w * numVisibleEntry + 2 * list->frameWidth() );
82 class KFontChooser::Private
88 m_palette.setColor(QPalette::Active, QPalette::Text, Qt::black);
89 m_palette.setColor(QPalette::Active, QPalette::Base, Qt::white);
90 signalsAllowed =
true;
100 void fillFamilyListBox(
bool onlyFixedFonts =
false);
101 int nearestSizeRow(qreal val,
bool customize);
102 qreal fillSizeList(
const QList<qreal> &sizes = QList<qreal>());
103 qreal setupSizeListBox(
const QString& family,
const QString& style);
107 void _k_toggled_checkbox();
108 void _k_family_chosen_slot(
const QString&);
109 void _k_size_chosen_slot(
const QString&);
110 void _k_style_chosen_slot(
const QString&);
111 void _k_displaySample(
const QFont &
font);
112 void _k_showXLFDArea(
bool);
113 void _k_size_value_slot(
double);
118 bool signalsAllowed:1;
124 SampleEdit *sampleEdit;
129 QCheckBox *familyCheckbox;
130 QCheckBox *styleCheckbox;
131 QCheckBox *sizeCheckbox;
136 QCheckBox *sizeIsRelativeCheckBox;
147 QHash<QString, QString> qtFamilies;
148 QHash<QString, QString> qtStyles;
154 const DisplayFlags& flags,
157 Qt::CheckState *sizeIsRelativeState )
162 setWhatsThis(
i18nc(
"@info:whatsthis",
"Here you can choose the font to be used." ));
166 QVBoxLayout *topLayout =
new QVBoxLayout(
this );
167 topLayout->setMargin( 0 );
173 QSplitter *splitter =
new QSplitter(Qt::Vertical,
this);
174 splitter->setChildrenCollapsible(
false);
175 topLayout->addWidget(splitter);
180 QGridLayout *gridLayout;
185 splitter->addWidget(page);
186 gridLayout =
new QGridLayout( page );
192 splitter->addWidget(page);
193 gridLayout =
new QGridLayout( page );
194 gridLayout->setMargin( 0 );
200 QHBoxLayout *familyLayout =
new QHBoxLayout();
201 familyLayout->addSpacing( checkBoxGap );
203 d->familyCheckbox =
new QCheckBox(
i18nc(
"@option:check",
"Font"), page);
204 connect(d->familyCheckbox, SIGNAL(toggled(
bool)),
205 this, SLOT(_k_toggled_checkbox()));
206 familyLayout->addWidget(d->familyCheckbox, 0, Qt::AlignLeft);
207 d->familyCheckbox->setWhatsThis(
i18nc(
"@info:whatsthis",
"Enable this checkbox to change the font family settings."));
208 d->familyCheckbox->setToolTip(
i18nc(
"@info:tooltip",
"Change font family?") );
211 d->familyCheckbox = 0;
212 d->familyLabel =
new QLabel(
i18nc(
"@label",
"Font:"), page );
213 familyLayout->addWidget(d->familyLabel, 1, Qt::AlignLeft);
215 gridLayout->addLayout(familyLayout, row, 0 );
217 QHBoxLayout *styleLayout =
new QHBoxLayout();
218 if ( flags & ShowDifferences ) {
219 d->styleCheckbox =
new QCheckBox(
i18nc(
"@option:check",
"Font style"), page);
220 connect(d->styleCheckbox, SIGNAL(toggled(
bool)),
221 this, SLOT(_k_toggled_checkbox()));
222 styleLayout->addWidget(d->styleCheckbox, 0, Qt::AlignLeft);
223 d->styleCheckbox->setWhatsThis(
i18nc(
"@info:whatsthis",
"Enable this checkbox to change the font style settings."));
224 d->styleCheckbox->setToolTip(
i18nc(
"@info:tooltip",
"Change font style?"));
227 d->styleCheckbox = 0;
228 d->styleLabel =
new QLabel(
i18n(
"Font style:"), page );
229 styleLayout->addWidget(d->styleLabel, 1, Qt::AlignLeft);
231 styleLayout->addSpacing( checkBoxGap );
232 gridLayout->addLayout(styleLayout, row, 1 );
234 QHBoxLayout *sizeLayout =
new QHBoxLayout();
235 if ( flags & ShowDifferences ) {
236 d->sizeCheckbox =
new QCheckBox(
i18nc(
"@option:check",
"Size"),page);
237 connect(d->sizeCheckbox, SIGNAL(toggled(
bool)),
238 this, SLOT(_k_toggled_checkbox()));
239 sizeLayout->addWidget(d->sizeCheckbox, 0, Qt::AlignLeft);
240 d->sizeCheckbox->setWhatsThis(
i18nc(
"@info:whatsthis",
"Enable this checkbox to change the font size settings."));
241 d->sizeCheckbox->setToolTip(
i18nc(
"@info:tooltip",
"Change font size?"));
245 d->sizeLabel =
new QLabel(
i18nc(
"@label:listbox Font size",
"Size:"), page );
246 sizeLayout->addWidget(d->sizeLabel, 1, Qt::AlignLeft);
248 sizeLayout->addSpacing( checkBoxGap );
249 sizeLayout->addSpacing( checkBoxGap );
250 gridLayout->addLayout(sizeLayout, row, 2 );
258 d->familyListBox->setEnabled( flags ^ ShowDifferences );
259 gridLayout->addWidget( d->familyListBox, row, 0 );
260 QString fontFamilyWhatsThisText (
261 i18nc(
"@info:whatsthis",
"Here you can choose the font family to be used." ));
262 d->familyListBox->setWhatsThis(fontFamilyWhatsThisText );
264 if ( flags & ShowDifferences ) {
265 d->familyCheckbox->setWhatsThis(fontFamilyWhatsThisText );
267 d->familyLabel->setWhatsThis(fontFamilyWhatsThisText );
270 connect(d->familyListBox, SIGNAL(currentTextChanged(
QString)),
271 this, SLOT(_k_family_chosen_slot(
QString)));
272 if ( !fontList.isEmpty() ) {
273 d->setFamilyBoxItems(fontList);
277 d->fillFamilyListBox( flags & FixedFontsOnly );
281 d->familyListBox->setMinimumHeight(
285 d->styleListBox->setEnabled( flags ^ ShowDifferences );
286 gridLayout->addWidget(d->styleListBox, row, 1);
287 d->styleListBox->setWhatsThis(
i18nc(
"@info:whatsthis",
"Here you can choose the font style to be used." ));
288 if ( flags & ShowDifferences ) {
289 ((
QWidget *)d->styleCheckbox)->setWhatsThis(fontFamilyWhatsThisText );
291 ((
QWidget *)d->styleLabel)->setWhatsThis( fontFamilyWhatsThisText );
295 d->styleListBox->addItem(
i18nc(
"@item font",
"Regular"));
296 d->styleListBox->addItem(
i18nc(
"@item font",
"Italic"));
297 d->styleListBox->addItem(
i18nc(
"@item font",
"Oblique"));
298 d->styleListBox->addItem(
i18nc(
"@item font",
"Bold"));
299 d->styleListBox->addItem(
i18nc(
"@item font",
"Bold Italic"));
301 d->styleListBox->setMinimumHeight(
304 connect(d->styleListBox, SIGNAL(currentTextChanged(
QString)),
305 this, SLOT(_k_style_chosen_slot(
QString)));
310 d->sizeOfFont->setMinimum(4);
311 d->sizeOfFont->setMaximum(999);
312 d->sizeOfFont->setDecimals(1);
313 d->sizeOfFont->setSingleStep(1);
314 d->sizeOfFont->setSliderEnabled(
false);
316 d->sizeListBox->setEnabled( flags ^ ShowDifferences );
317 d->sizeOfFont->setEnabled( flags ^ ShowDifferences );
318 if( sizeIsRelativeState ) {
320 i18nc(
"@item font size",
"Relative");
321 QString sizeIsRelativeCBToolTipText =
322 i18n(
"Font size<br /><i>fixed</i> or <i>relative</i><br />to environment");
323 QString sizeIsRelativeCBWhatsThisText =
324 i18n(
"Here you can switch between fixed font size and font size "
325 "to be calculated dynamically and adjusted to changing "
326 "environment (e.g. widget dimensions, paper size)." );
327 d->sizeIsRelativeCheckBox =
new QCheckBox( sizeIsRelativeCBText,
329 d->sizeIsRelativeCheckBox->setTristate( flags & ShowDifferences );
330 QGridLayout *sizeLayout2 =
new QGridLayout();
332 gridLayout->addLayout(sizeLayout2, row, 2);
333 sizeLayout2->setColumnStretch( 1, 1 );
334 sizeLayout2->addWidget( d->sizeOfFont, 0, 0, 1, 2);
335 sizeLayout2->addWidget(d->sizeListBox, 1,0, 1,2);
336 sizeLayout2->addWidget(d->sizeIsRelativeCheckBox, 2, 0, Qt::AlignLeft);
337 d->sizeIsRelativeCheckBox->setWhatsThis(sizeIsRelativeCBWhatsThisText );
338 d->sizeIsRelativeCheckBox->setToolTip( sizeIsRelativeCBToolTipText );
341 d->sizeIsRelativeCheckBox = 0L;
342 QGridLayout *sizeLayout2 =
new QGridLayout();
344 gridLayout->addLayout(sizeLayout2, row, 2);
345 sizeLayout2->addWidget( d->sizeOfFont, 0, 0);
346 sizeLayout2->addWidget(d->sizeListBox, 1,0);
348 QString fontSizeWhatsThisText =
349 i18n(
"Here you can choose the font size to be used." );
350 d->sizeListBox->setWhatsThis(fontSizeWhatsThisText );
352 if ( flags & ShowDifferences ) {
353 ((
QWidget *)d->sizeCheckbox)->setWhatsThis(fontSizeWhatsThisText );
355 ((
QWidget *)d->sizeLabel)->setWhatsThis( fontSizeWhatsThisText );
362 d->sizeListBox->fontMetrics().maxWidth() );
363 d->sizeListBox->setMinimumHeight(
366 connect( d->sizeOfFont, SIGNAL(valueChanged(
double)),
367 this, SLOT(_k_size_value_slot(
double)));
369 connect( d->sizeListBox, SIGNAL(currentTextChanged(
QString)),
370 this, SLOT(_k_size_chosen_slot(
QString)) );
378 d->sampleEdit =
new SampleEdit(page);
379 d->sampleEdit->setAcceptRichText(
false);
381 d->sampleEdit->setFont(tmpFont);
382 d->sampleEdit->setMinimumHeight( d->sampleEdit->fontMetrics().lineSpacing() );
388 d->sampleEdit->setTextCursor(QTextCursor(d->sampleEdit->document()));
389 QString sampleEditWhatsThisText =
390 i18n(
"This sample text illustrates the current settings. "
391 "You may edit it to test special characters." );
392 d->sampleEdit->setWhatsThis(sampleEditWhatsThisText );
395 this, SLOT(_k_displaySample(
QFont)));
397 splitter->addWidget(d->sampleEdit);
404 if( flags & DisplayFrame )
407 topLayout->addWidget(page);
408 vbox =
new QVBoxLayout( page );
409 vbox->addSpacing( fontMetrics().lineSpacing() );
414 topLayout->addWidget(page);
415 vbox =
new QVBoxLayout( page );
416 vbox->setMargin( 0 );
418 vbox->addWidget( label );
422 vbox->addWidget( d->xlfdEdit );
430 if( sizeIsRelativeState && d->sizeIsRelativeCheckBox )
434 d->_k_showXLFDArea(cg.
readEntry(QLatin1String(
"fontSelectorShowXLFD"),
false));
437 d->sizeListBox->setFocus();
447 d->m_palette.setColor( QPalette::Active, QPalette::Text, col );
448 QPalette pal = d->sampleEdit->palette();
449 pal.setColor( QPalette::Active, QPalette::Text, col );
450 d->sampleEdit->setPalette( pal );
451 QTextCursor cursor = d->sampleEdit->textCursor();
452 d->sampleEdit->selectAll();
453 d->sampleEdit->setTextColor( col );
454 d->sampleEdit->setTextCursor( cursor );
459 return d->m_palette.color( QPalette::Active, QPalette::Text );
464 d->m_palette.setColor( QPalette::Active, QPalette::Base, col );
465 QPalette pal = d->sampleEdit->palette();
466 pal.setColor( QPalette::Active, QPalette::Base, col );
467 d->sampleEdit->setPalette( pal );
472 return d->m_palette.color( QPalette::Active, QPalette::Base );
478 if( d->sizeIsRelativeCheckBox ) {
479 if( Qt::PartiallyChecked == relative )
480 d->sizeIsRelativeCheckBox->setCheckState(Qt::PartiallyChecked);
482 d->sizeIsRelativeCheckBox->setCheckState( (Qt::Checked == relative ) ? Qt::Checked : Qt::Unchecked);
488 return d->sizeIsRelativeCheckBox
489 ? d->sizeIsRelativeCheckBox->checkState()
490 : Qt::PartiallyChecked;
495 return d->sampleEdit->toPlainText();
500 d->sampleEdit->setPlainText(text);
505 d->sampleEdit->setVisible( visible );
510 return minimumSizeHint();
518 d->familyListBox->setEnabled(state);
522 d->styleListBox->setEnabled(state);
526 d->sizeListBox->setEnabled(state);
527 d->sizeOfFont->setEnabled(state);
535 d->selectedSize=aFont.pointSizeF();
536 if (d->selectedSize == -1)
537 d->selectedSize = QFontInfo(aFont).pointSizeF();
539 if( onlyFixed != d->usingFixed)
541 d->usingFixed = onlyFixed;
542 d->fillFamilyListBox(d->usingFixed);
552 if ( d->familyCheckbox && d->familyCheckbox->isChecked() ) {
556 if ( d->styleCheckbox && d->styleCheckbox->isChecked() ) {
560 if ( d->sizeCheckbox && d->sizeCheckbox->isChecked() ) {
572 void KFontChooser::Private::_k_toggled_checkbox()
574 familyListBox->setEnabled( familyCheckbox->isChecked() );
575 styleListBox->setEnabled( styleCheckbox->isChecked() );
576 sizeListBox->setEnabled( sizeCheckbox->isChecked() );
577 sizeOfFont->setEnabled( sizeCheckbox->isChecked() );
580 void KFontChooser::Private::_k_family_chosen_slot(
const QString& family)
582 if ( !signalsAllowed ) {
585 signalsAllowed =
false;
588 if (family.isEmpty()) {
589 Q_ASSERT( familyListBox->currentItem() );
590 if (familyListBox->currentItem()) {
591 currentFamily = qtFamilies[familyListBox->currentItem()->text()];
595 currentFamily = qtFamilies[family];
601 if (styles.isEmpty()) {
603 styles.append(
I18NC_NOX(
"QFontDatabase",
"Normal"));
611 foreach (
const QString &style, styles) {
615 if (dbase.styleString(dbase.font(currentFamily, style, 10)) != style) {
616 styles.removeAll(style);
622 if (style ==
I18NC_NOX(
"QFontDatabase",
"Normal"))
623 styleMod =
i18nc(
"@item font",
"Regular");
631 if (!filteredStyles.contains(fstyle)) {
632 filteredStyles.append(fstyle);
633 qtStyles.insert(fstyle, style);
636 styleListBox->clear();
637 styleListBox->addItems(filteredStyles);
640 int listPos = filteredStyles.indexOf(selectedStyle.isEmpty() ?
i18nc(
"@item font",
"Regular") : selectedStyle);
646 for (
int i = 0; i < 2; ++i) {
647 int pos = selectedStyle.indexOf(styleIt);
650 style.replace(pos, styleIt.length(), styleOb);
651 listPos = filteredStyles.indexOf(style);
652 if (listPos >= 0)
break;
654 qSwap(styleIt, styleOb);
657 styleListBox->setCurrentRow(listPos >= 0 ? listPos : 0);
658 QString currentStyle = qtStyles[styleListBox->currentItem()->text()];
661 qreal currentSize = setupSizeListBox(currentFamily, currentStyle);
662 sizeOfFont->setValue(currentSize);
664 selFont = dbase.font(currentFamily, currentStyle,
int(currentSize));
665 if (dbase.isSmoothlyScalable(currentFamily, currentStyle) && selFont.pointSize() == floor(currentSize)) {
666 selFont.setPointSizeF(currentSize);
668 emit q->fontSelected(selFont);
670 signalsAllowed =
true;
673 void KFontChooser::Private::_k_style_chosen_slot(
const QString& style)
675 if ( !signalsAllowed ) {
678 signalsAllowed =
false;
681 QString currentFamily = qtFamilies[familyListBox->currentItem()->text()];
683 if (style.isEmpty()) {
684 currentStyle = qtStyles[styleListBox->currentItem()->text()];
686 currentStyle = qtStyles[style];
690 qreal currentSize = setupSizeListBox(currentFamily, currentStyle);
691 sizeOfFont->setValue(currentSize);
693 selFont = dbase.font(currentFamily, currentStyle,
int(currentSize));
694 if (dbase.isSmoothlyScalable(currentFamily, currentStyle) && selFont.pointSize() == floor(currentSize)) {
695 selFont.setPointSizeF(currentSize);
697 emit q->fontSelected(selFont);
699 if (!style.isEmpty()) {
700 selectedStyle = currentStyle;
703 signalsAllowed =
true;
706 void KFontChooser::Private::_k_size_chosen_slot(
const QString& size)
708 if ( !signalsAllowed ) {
712 signalsAllowed =
false;
715 if (size.isEmpty()) {
722 if (customSizeRow >= 0 && selFont.pointSizeF() != currentSize) {
723 sizeListBox->item(customSizeRow)->setText(standardSizeAtCustom);
727 sizeOfFont->setValue(currentSize);
728 selFont.setPointSizeF(currentSize);
729 emit q->fontSelected(selFont);
731 if (!size.isEmpty()) {
732 selectedSize = currentSize;
735 signalsAllowed =
true;
738 void KFontChooser::Private::_k_size_value_slot(
double dval)
740 if ( !signalsAllowed ) {
743 signalsAllowed =
false;
746 qreal val = qreal(dval);
749 QString family = qtFamilies[familyListBox->currentItem()->text()];
750 QString style = qtStyles[styleListBox->currentItem()->text()];
753 if (customSizeRow >= 0 && sizeListBox->currentRow() == customSizeRow) {
754 sizeListBox->item(customSizeRow)->setText(standardSizeAtCustom);
758 bool canCustomize =
true;
761 if (!dbase.isSmoothlyScalable(family, style)) {
764 canCustomize =
false;
765 int nrows = sizeListBox->count();
766 int row = sizeListBox->currentRow();
768 if (val - selFont.pointSizeF() > 0) {
769 for (nrow = row + 1; nrow < nrows; ++nrow)
774 for (nrow = row - 1; nrow >= 0; --nrow)
779 nrow = nrow < 0 ? 0 : nrow >= nrows ? nrows - 1 : nrow;
782 sizeOfFont->setValue(val);
786 int row = nearestSizeRow(val, canCustomize);
787 sizeListBox->setCurrentRow(row);
790 selFont.setPointSizeF(val);
791 emit q->fontSelected( selFont );
793 signalsAllowed =
true;
796 void KFontChooser::Private::_k_displaySample(
const QFont& font )
798 sampleEdit->setFont(font);
801 xlfdEdit->setText(font.rawName());
802 xlfdEdit->setCursorPosition(0);
809 int KFontChooser::Private::nearestSizeRow (qreal val,
bool customize)
813 for (
int r = 0; r < sizeListBox->count(); ++r) {
815 if (qAbs(cval - val) < diff) {
816 diff = qAbs(cval - val);
821 if (customize && diff > 0) {
823 standardSizeAtCustom = sizeListBox->item(row)->text();
829 qreal KFontChooser::Private::fillSizeList (
const QList<qreal> &sizes_)
831 if ( !sizeListBox ) {
835 QList<qreal> sizes = sizes_;
836 bool canCustomize =
false;
837 if (sizes.count() == 0) {
838 static const int c[] = {
848 for (
int i = 0; c[i]; ++i) {
857 sizeListBox->clear();
859 foreach (qreal size, sizes) {
869 int row = nearestSizeRow(selectedSize, canCustomize);
873 qreal KFontChooser::Private::setupSizeListBox (
const QString& family,
const QString& style)
877 if (dbase.isSmoothlyScalable(family, style)) {
884 QList<int> smoothSizes = dbase.smoothSizes(family, style);
885 foreach (
int size, smoothSizes) {
892 qreal bestFitSize = fillSizeList(sizes);
895 const QList<QListWidgetItem*> selectedSizeList =
898 if ( !selectedSizeList.isEmpty() ) {
899 sizeListBox->setCurrentItem(selectedSizeList.first());
906 void KFontChooser::Private::setupDisplay()
909 QString family = selFont.family().toLower();
910 QString style = dbase.styleString(selFont).toLower();
911 qreal size = selFont.pointSizeF();
913 size = QFontInfo( selFont ).pointSizeF();
918 numEntries = familyListBox->count();
919 for (i = 0; i < numEntries; i++) {
920 if (family == qtFamilies[familyListBox->item(i)->text()].toLower()) {
921 familyListBox->setCurrentRow(i);
927 if ( i == numEntries )
929 if (family.contains(
'['))
931 family = family.left(family.indexOf(
'[')).trimmed();
932 for (i = 0; i < numEntries; i++) {
933 if (family == qtFamilies[familyListBox->item(i)->text()].toLower()) {
934 familyListBox->setCurrentRow(i);
942 if ( i == numEntries )
944 QString fallback = family+
" [";
945 for (i = 0; i < numEntries; i++) {
946 if (qtFamilies[familyListBox->item(i)->text()].toLower().startsWith(fallback)) {
947 familyListBox->setCurrentRow(i);
954 if ( i == numEntries )
956 for (i = 0; i < numEntries; i++) {
957 if (qtFamilies[familyListBox->item(i)->text()].toLower().startsWith(family)) {
958 familyListBox->setCurrentRow(i);
965 if ( i == numEntries ) {
966 familyListBox->setCurrentRow( 0 );
974 numEntries = styleListBox->count();
975 for (i = 0; i < numEntries; i++) {
976 if (style == qtStyles[styleListBox->item(i)->text()].toLower()) {
977 styleListBox->setCurrentRow(i);
981 if (i == numEntries) {
983 styleListBox->setCurrentRow(0);
989 QString currentFamily = qtFamilies[familyListBox->currentItem()->text()];
990 QString currentStyle = qtFamilies[styleListBox->currentItem()->text()];
991 bool canCustomize = dbase.isSmoothlyScalable(currentFamily, currentStyle);
992 sizeListBox->setCurrentRow(nearestSizeRow(size, canCustomize));
995 sizeOfFont->setValue(
KGlobal::locale()->readNumber(sizeListBox->currentItem()->text()));
1001 QFontDatabase dbase;
1005 if (fontListCriteria)
1008 for (QStringList::const_iterator it = lstSys.constBegin(); it != lstSys.constEnd(); ++it)
1010 if ((fontListCriteria &
FixedWidthFonts) > 0 && !dbase.isFixedPitch(*it))
continue;
1012 !dbase.isBitmapScalable(*it))
continue;
1013 if ((fontListCriteria &
SmoothScalableFonts) > 0 && !dbase.isSmoothlyScalable(*it))
continue;
1014 lstFonts.append(*it);
1020 if (lstFonts.count() == 0)
1021 lstFonts.append(
"fixed");
1032 void KFontChooser::Private::setFamilyBoxItems(
const QStringList &fonts)
1034 signalsAllowed =
false;
1037 familyListBox->clear();
1038 familyListBox->addItems(trfonts);
1040 signalsAllowed =
true;
1043 void KFontChooser::Private::fillFamilyListBox(
bool onlyFixedFonts)
1046 getFontList(fontList, onlyFixedFonts?FixedWidthFonts:0);
1047 setFamilyBoxItems(fontList);
1050 void KFontChooser::Private::_k_showXLFDArea(
bool show)
1054 xlfdEdit->parentWidget()->show();
1058 xlfdEdit->parentWidget()->hide();
1062 #include "kfontchooser.moc"
1063 #include "sampleedit_p.moc"