KDEUI
kfontdialog.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "kfontdialog.h"
00027
00028 #include <config.h>
00029
00030 #include <stdio.h>
00031 #include <stdlib.h>
00032
00033
00034 #include <QtGui/QComboBox>
00035 #include <QtGui/QCheckBox>
00036 #include <QtCore/QFile>
00037 #include <QtGui/QFont>
00038 #include <QtGui/QLabel>
00039 #include <QtGui/QLayout>
00040 #include <QtGui/QLineEdit>
00041 #include <QtGui/QScrollBar>
00042 #include <QtCore/QMutableStringListIterator>
00043 #include <QtGui/QFontDatabase>
00044 #include <QList>
00045 #include <QtGui/QGroupBox>
00046 #include <kcharsets.h>
00047 #include <kconfig.h>
00048 #include <kdialog.h>
00049 #include <kglobal.h>
00050 #include <kglobalsettings.h>
00051 #include <klistwidget.h>
00052 #include <klocale.h>
00053 #include <kstandarddirs.h>
00054 #include <kdebug.h>
00055 #include <knuminput.h>
00056 #include <kconfiggroup.h>
00057
00058 class KFontDialog::Private
00059 {
00060 public:
00061 Private()
00062 : chooser( 0 )
00063 {
00064 }
00065
00066 KFontChooser *chooser;
00067 };
00068
00069 KFontDialog::KFontDialog( QWidget *parent,
00070 const KFontChooser::DisplayFlags& flags,
00071 const QStringList &fontList,
00072 Qt::CheckState *sizeIsRelativeState )
00073 : KDialog( parent ),
00074 d( new Private )
00075 {
00076 setCaption( i18n("Select Font") );
00077 setButtons( Ok | Cancel );
00078 setDefaultButton(Ok);
00079 d->chooser = new KFontChooser( this, flags, fontList, 8,
00080 sizeIsRelativeState );
00081 d->chooser->setObjectName( "fontChooser" );
00082
00083 connect( d->chooser , SIGNAL(fontSelected(const QFont&)) , this , SIGNAL(fontSelected(const QFont&)) );
00084
00085 setMainWidget( d->chooser );
00086 }
00087
00088 KFontDialog::~KFontDialog()
00089 {
00090 delete d;
00091 }
00092
00093 void KFontDialog::setFont( const QFont &font, bool onlyFixed)
00094 {
00095 d->chooser->setFont(font, onlyFixed);
00096 }
00097
00098 QFont KFontDialog::font() const
00099 {
00100 return d->chooser->font();
00101 }
00102
00103 void KFontDialog::setSizeIsRelative( Qt::CheckState relative )
00104 {
00105 d->chooser->setSizeIsRelative( relative );
00106 }
00107
00108 Qt::CheckState KFontDialog::sizeIsRelative() const
00109 {
00110 return d->chooser->sizeIsRelative();
00111 }
00112
00113
00114 int KFontDialog::getFontDiff( QFont &theFont,
00115 KFontChooser::FontDiffFlags& diffFlags,
00116 const KFontChooser::DisplayFlags& flags,
00117 QWidget *parent,
00118 Qt::CheckState *sizeIsRelativeState )
00119 {
00120 KFontDialog dlg( parent, flags | KFontChooser::ShowDifferences,
00121 QStringList(), sizeIsRelativeState );
00122 dlg.setModal( true );
00123 dlg.setObjectName( "Font Selector" );
00124 dlg.setFont( theFont, flags & KFontChooser::FixedFontsOnly );
00125
00126 int result = dlg.exec();
00127 if( result == Accepted )
00128 {
00129 theFont = dlg.d->chooser->font();
00130 diffFlags = dlg.d->chooser->fontDiffFlags();
00131 if( sizeIsRelativeState )
00132 *sizeIsRelativeState = dlg.d->chooser->sizeIsRelative();
00133 }
00134 return result;
00135 }
00136
00137 int KFontDialog::getFont( QFont &theFont,
00138 const KFontChooser::DisplayFlags& flags,
00139 QWidget *parent,
00140 Qt::CheckState *sizeIsRelativeState )
00141 {
00142 KFontDialog dlg( parent, flags, QStringList(), sizeIsRelativeState );
00143 dlg.setModal( true );
00144 dlg.setObjectName( "Font Selector" );
00145 dlg.setFont( theFont, flags & KFontChooser::FixedFontsOnly );
00146
00147 int result = dlg.exec();
00148 if( result == Accepted )
00149 {
00150 theFont = dlg.d->chooser->font();
00151 if( sizeIsRelativeState )
00152 *sizeIsRelativeState = dlg.d->chooser->sizeIsRelative();
00153 }
00154 return result;
00155 }
00156
00157
00158 int KFontDialog::getFontAndText( QFont &theFont, QString &theString,
00159 const KFontChooser::DisplayFlags& flags,
00160 QWidget *parent,
00161 Qt::CheckState *sizeIsRelativeState )
00162 {
00163 KFontDialog dlg( parent, flags,
00164 QStringList(), sizeIsRelativeState );
00165 dlg.setModal( true );
00166 dlg.setObjectName( "Font and Text Selector" );
00167 dlg.setFont( theFont, flags & KFontChooser::FixedFontsOnly );
00168
00169 int result = dlg.exec();
00170 if( result == Accepted )
00171 {
00172 theFont = dlg.d->chooser->font();
00173 theString = dlg.d->chooser->sampleText();
00174 if( sizeIsRelativeState )
00175 *sizeIsRelativeState = dlg.d->chooser->sizeIsRelative();
00176 }
00177 return result;
00178 }
00179
00180
00181 #include "kfontdialog.moc"