summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/dialogs/tqfontdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/dialogs/tqfontdialog.cpp')
-rw-r--r--tqtinterface/qt4/src/dialogs/tqfontdialog.cpp831
1 files changed, 0 insertions, 831 deletions
diff --git a/tqtinterface/qt4/src/dialogs/tqfontdialog.cpp b/tqtinterface/qt4/src/dialogs/tqfontdialog.cpp
deleted file mode 100644
index deed5d5..0000000
--- a/tqtinterface/qt4/src/dialogs/tqfontdialog.cpp
+++ /dev/null
@@ -1,831 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQFontDialog
-**
-** Created : 970605
-**
-** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
-**
-** This file is part of the dialogs module of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "tqwindowdefs.h"
-
-#ifndef TQT_NO_FONTDIALOG
-
-#include "tqfontdialog.h"
-
-#include "tqlineedit.h"
-#include "tqlistbox.h"
-#include "tqpushbutton.h"
-#include "tqcheckbox.h"
-#include "tqcombobox.h"
-#include "tqlayout.h"
-#include "tqvgroupbox.h"
-#include "tqhgroupbox.h"
-#include "tqlabel.h"
-#include "tqapplication.h"
-#include "tqfontdatabase.h"
-#include "tqstyle.h"
-#include <private/tqfontdata_p.h>
-#include <tqvalidator.h>
-
-/*!
- \class TQFontDialog tqfontdialog.h
- \ingroup dialogs
- \mainclass
- \brief The TQFontDialog class provides a dialog widget for selecting a font.
-
- The usual way to use this class is to call one of the static convenience
- functions, e.g. getFont().
-
- Examples:
-
- \code
- bool ok;
- TQFont font = TQFontDialog::getFont(
- &ok, TQFont( "Helvetica [Cronyx]", 10 ), this );
- if ( ok ) {
- // font is set to the font the user selected
- } else {
- // the user canceled the dialog; font is set to the initial
- // value, in this case Helvetica [Cronyx], 10
- }
- \endcode
-
- The dialog can also be used to set a widget's font directly:
- \code
- myWidget.setFont( TQFontDialog::getFont( 0, myWidget.font() ) );
- \endcode
- If the user clicks OK the font they chose will be used for myWidget,
- and if they click Cancel the original font is used.
-
- \sa TQFont TQFontInfo TQFontMetrics
-
- <img src=qfontdlg-w.png>
-*/
-
-class TQFontDialogPrivate
-{
-public:
- TQFontDialogPrivate() : script( TQFontPrivate::defaultScript ) {};
- TQLabel * familyAccel;
- TQLineEdit * familyEdit;
- TQListBox * familyList;
-
- TQLabel * styleAccel;
- TQLineEdit * styleEdit;
- TQListBox * styleList;
-
- TQLabel * sizeAccel;
- TQLineEdit * sizeEdit;
- TQListBox * sizeList;
-
- TQVGroupBox * effects;
- TQCheckBox * strikeout;
- TQCheckBox * underline;
- TQComboBox * color;
-
- TQHGroupBox * sample;
- TQLineEdit * sampleEdit;
-
- TQLabel * scriptAccel;
- TQComboBox * scriptCombo;
-
- TQPushButton * ok;
- TQPushButton * cancel;
-
- TQBoxLayout * buttonLayout;
- TQBoxLayout * effectsLayout;
- TQBoxLayout * sampleLayout;
- TQBoxLayout * sampleEditLayout;
-
- TQFontDatabase fdb;
-
- TQString family;
- TQFont::Script script;
- TQString style;
- int size;
-
- bool smoothScalable;
-};
-
-
-/*!
- \internal
- Constructs a standard font dialog.
-
- Use setFont() to set the initial font attributes.
-
- The \a parent, \a name, \a modal and \a f parameters are passed to
- the TQDialog constructor.
-
- \sa getFont()
-*/
-
-TQFontDialog::TQFontDialog( TQWidget *parent, const char *name,
- bool modal, WFlags f )
- : TQDialog( parent, name, modal, f )
-{
- setSizeGripEnabled( TRUE );
- d = new TQFontDialogPrivate;
- // grid
- d->familyEdit = new TQLineEdit( this, "font family I" );
- d->familyEdit->setReadOnly( TRUE );
- d->familyList = new TQListBox( this, "font family II" );
- d->familyEdit->setFocusProxy( d->familyList );
-
- d->familyAccel
- = new TQLabel( d->familyList, tr("&Font"), this, "family accelerator" );
- d->familyAccel->setIndent( 2 );
-
- d->styleEdit = new TQLineEdit( this, "font style I" );
- d->styleEdit->setReadOnly( TRUE );
- d->styleList = new TQListBox( this, "font style II" );
- d->styleEdit->setFocusProxy( d->styleList );
-
- d->styleAccel
- = new TQLabel( d->styleList, tr("Font st&yle"), this, "style accelerator" );
- d->styleAccel->setIndent( 2 );
-
- d->sizeEdit = new TQLineEdit( this, "font size I" );
- d->sizeEdit->setFocusPolicy( Qt::ClickFocus );
- TQIntValidator *validator = new TQIntValidator( 1, 512, TQT_TQOBJECT(this) );
- d->sizeEdit->setValidator( validator );
- d->sizeList = new TQListBox( this, "font size II" );
-
- d->sizeAccel
- = new TQLabel ( d->sizeEdit, tr("&Size"), this, "size accelerator" );
- d->sizeAccel->setIndent( 2 );
-
- // effects box
- d->effects = new TQVGroupBox( tr("Effects"), this, "font effects" );
- d->strikeout = new TQCheckBox( d->effects, "strikeout on/off" );
- d->strikeout->setText( tr("Stri&keout") );
- d->underline = new TQCheckBox( d->effects, "underline on/off" );
- d->underline->setText( tr("&Underline") );
-
- d->sample = new TQHGroupBox( tr("Sample"), this, "sample text" );
- d->sampleEdit = new TQLineEdit( d->sample, "r/w sample text" );
- d->sampleEdit->tqsetSizePolicy( TQSizePolicy( TQSizePolicy::Ignored, TQSizePolicy::Ignored) );
- d->sampleEdit->tqsetAlignment( Qt::AlignCenter );
- // Note that the sample text is *not* translated with tr(), as the
- // characters used depend on the charset encoding.
- d->sampleEdit->setText( "AaBbYyZz" );
-
- d->scriptCombo = new TQComboBox( FALSE, this, "font encoding" );
-
- d->scriptAccel
- = new TQLabel( d->scriptCombo, tr("Scr&ipt"), this,"encoding label");
- d->scriptAccel->setIndent( 2 );
-
- d->size = 0;
- d->smoothScalable = FALSE;
-
- connect( d->scriptCombo, TQT_SIGNAL(activated(int)),
- TQT_SLOT(scriptHighlighted(int)) );
- connect( d->familyList, TQT_SIGNAL(highlighted(int)),
- TQT_SLOT(familyHighlighted(int)) );
- connect( d->styleList, TQT_SIGNAL(highlighted(int)),
- TQT_SLOT(styleHighlighted(int)) );
- connect( d->sizeList, TQT_SIGNAL(highlighted(const TQString&)),
- TQT_SLOT(sizeHighlighted(const TQString&)) );
- connect( d->sizeEdit, TQT_SIGNAL(textChanged(const TQString&)),
- TQT_SLOT(sizeChanged(const TQString&)) );
-
- connect( d->strikeout, TQT_SIGNAL(clicked()),
- TQT_SLOT(updateSample()) );
- connect( d->underline, TQT_SIGNAL(clicked()),
- TQT_SLOT(updateSample()) );
-
- (void)d->familyList->tqsizeHint();
- (void)d->styleList->tqsizeHint();
- (void)d->sizeList->tqsizeHint();
-
- for (int i = 0; i < TQFont::NScripts; i++) {
- TQString scriptname = TQFontDatabase::scriptName((TQFont::Script) i);
- if ( !scriptname.isEmpty() )
- d->scriptCombo->insertItem( scriptname );
- }
-
- updateFamilies();
- if ( d->familyList->count() != 0 )
- d->familyList->setCurrentItem( 0 );
-
- // grid tqlayout
- TQGridLayout * mainGrid = new TQGridLayout( this, 9, 6, 12, 0 );
-
- mainGrid->addWidget( d->familyAccel, 0, 0 );
- mainGrid->addWidget( d->familyEdit, 1, 0 );
- mainGrid->addWidget( d->familyList, 2, 0 );
-
- mainGrid->addWidget( d->styleAccel, 0, 2 );
- mainGrid->addWidget( d->styleEdit, 1, 2 );
- mainGrid->addWidget( d->styleList, 2, 2 );
-
- mainGrid->addWidget( d->sizeAccel, 0, 4 );
- mainGrid->addWidget( d->sizeEdit, 1, 4 );
- mainGrid->addWidget( d->sizeList, 2, 4 );
-
- mainGrid->setColStretch( 0, 38 );
- mainGrid->setColStretch( 2, 24 );
- mainGrid->setColStretch( 4, 10 );
-
- mainGrid->addColSpacing( 1, 6 );
- mainGrid->addColSpacing( 3, 6 );
- mainGrid->addColSpacing( 5, 6 );
-
- mainGrid->addRowSpacing( 3, 12 );
-
- mainGrid->addWidget( d->effects, 4, 0 );
-
- mainGrid->addMultiCellWidget( d->sample, 4, 7, 2, 4 );
-
- mainGrid->addWidget( d->scriptAccel, 5, 0 );
- mainGrid->addRowSpacing( 6, 2 );
- mainGrid->addWidget( d->scriptCombo, 7, 0 );
-
- mainGrid->addRowSpacing( 8, 12 );
-
- TQHBoxLayout *buttonBox = new TQHBoxLayout;
- mainGrid->addMultiCell( TQT_TQLAYOUTITEM(buttonBox), 9, 9, 0, 4 );
-
- buttonBox->addStretch( 1 );
- TQString okt = modal ? tr("OK") : tr("Apply");
- d->ok = new TQPushButton( okt, this, "accept font selection" );
- buttonBox->addWidget( d->ok );
- if ( modal )
- connect( d->ok, TQT_SIGNAL(clicked()), TQT_SLOT(accept()) );
- d->ok->setDefault( TRUE );
-
- buttonBox->addSpacing( 12 );
-
- TQString cancelt = modal ? tr("Cancel") : tr("Close");
- d->cancel = new TQPushButton( cancelt, this, "cancel/close" );
- buttonBox->addWidget( d->cancel );
- connect( d->cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()) );
-
- resize( 500, 360 );
-
- d->sizeEdit->installEventFilter( this );
- d->familyList->installEventFilter( this );
- d->styleList->installEventFilter( this );
- d->sizeList->installEventFilter( this );
-
- d->familyList->setFocus();
-}
-
-/*!
- \internal
- Destroys the font dialog and frees up its storage.
-*/
-
-TQFontDialog::~TQFontDialog()
-{
- delete d;
- d = 0;
-}
-
-/*!
- Executes a modal font dialog and returns a font.
-
- If the user clicks OK, the selected font is returned. If the user
- clicks Cancel, the \a initial font is returned.
-
- The dialog is called \a name, with the parent \a parent.
- \a initial is the initially selected font.
- If the \a ok parameter is not-null, \e *\a ok is set to TRUE if the
- user clicked OK, and set to FALSE if the user clicked Cancel.
-
- This static function is less flexible than the full TQFontDialog
- object, but is convenient and easy to use.
-
- Examples:
- \code
- bool ok;
- TQFont font = TQFontDialog::getFont( &ok, TQFont( "Times", 12 ), this );
- if ( ok ) {
- // font is set to the font the user selected
- } else {
- // the user canceled the dialog; font is set to the initial
- // value, in this case Times, 12.
- }
- \endcode
-
- The dialog can also be used to set a widget's font directly:
- \code
- myWidget.setFont( TQFontDialog::getFont( 0, myWidget.font() ) );
- \endcode
- In this example, if the user clicks OK the font they chose will be
- used, and if they click Cancel the original font is used.
-*/
-TQFont TQFontDialog::getFont( bool *ok, const TQFont &initial,
- TQWidget *parent, const char* name)
-{
- return getFont( ok, &initial, parent, name );
-}
-
-/*!
- \overload
-
- Executes a modal font dialog and returns a font.
-
- If the user clicks OK, the selected font is returned. If the user
- clicks Cancel, the TQt default font is returned.
-
- The dialog is called \a name, with parent \a parent.
- If the \a ok parameter is not-null, \e *\a ok is set to TRUE if the
- user clicked OK, and FALSE if the user clicked Cancel.
-
- This static function is less functional than the full TQFontDialog
- object, but is convenient and easy to use.
-
- Example:
- \code
- bool ok;
- TQFont font = TQFontDialog::getFont( &ok, this );
- if ( ok ) {
- // font is set to the font the user selected
- } else {
- // the user canceled the dialog; font is set to the default
- // application font, TQApplication::font()
- }
- \endcode
-
-*/
-TQFont TQFontDialog::getFont( bool *ok, TQWidget *parent,const char* name)
-{
- return getFont( ok, 0, parent, name );
-}
-
-TQFont TQFontDialog::getFont( bool *ok, const TQFont *def,
- TQWidget *parent, const char* name)
-{
- TQFont result;
- if ( def )
- result = *def;
-
- TQFontDialog *dlg = new TQFontDialog( parent, name, TRUE );
-
- dlg->setFont( ( def ? *def : TQFont() ) );
-#ifndef TQT_NO_WIDGET_TOPEXTRA
- dlg->setCaption( tr("Select Font") );
-#endif
-
- bool res = (dlg->exec() == TQDialog::Accepted);
- if ( res )
- result = dlg->font();
- if ( ok )
- *ok = res;
- delete dlg;
- return result;
-}
-
-
-/*!
- \internal
- An event filter to make the Up, Down, PageUp and PageDown keys work
- correctly in the line edits. The source of the event is the object
- \a o and the event is \a e.
-*/
-
-bool TQFontDialog::eventFilter( TQObject * o , TQEvent * e )
-{
- if ( e->type() == TQEvent::KeyPress) {
- TQKeyEvent * k = (TQKeyEvent *)e;
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->sizeEdit) &&
- (k->key() == Qt::Key_Up ||
- k->key() == Qt::Key_Down ||
- k->key() == TQt::Key_Prior ||
- k->key() == TQt::Key_Next) ) {
-
- int ci = d->sizeList->currentItem();
- (void)TQApplication::sendEvent( d->sizeList, k );
-
- if ( ci != d->sizeList->currentItem() &&
- tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this))
- d->sizeEdit->selectAll();
- return TRUE;
- } else if ( ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->familyList) || TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->styleList) ) &&
- ( k->key() == Qt::Key_Return || k->key() == Qt::Key_Enter) ) {
- k->accept();
- accept();
- return TRUE;
- }
- } else if ( e->type() == TQEvent::FocusIn &&
- tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) ) {
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->familyList) )
- d->familyEdit->selectAll();
- else if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->styleList) )
- d->styleEdit->selectAll();
- else if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->sizeList) )
- d->sizeEdit->selectAll();
- } else if ( e->type() == TQEvent::MouseButtonPress && TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(d->sizeList) ) {
- d->sizeEdit->setFocus();
- }
- return TQDialog::eventFilter( o, e );
-}
-
-#ifdef TQ_WS_MAC
-// #define SHOW_FONTS_IN_FAMILIES
-#endif
-
-#ifdef SHOW_FONTS_IN_FAMILIES
-#include "tqpainter.h"
-#include <sizeedit.h>
-
-class TQListBoxFontText : public TQListBoxText
-{
- TQFont cfont;
-public:
- TQListBoxFontText( const TQString & text );
- ~TQListBoxFontText() { }
-
- int height( const TQListBox * ) const;
- int width( const TQListBox * ) const;
-
-protected:
- void paint( TQPainter * );
-};
-
-TQListBoxFontText::TQListBoxFontText( const TQString & text )
- : TQListBoxText(text), cfont(text)
-{
-}
-
-int TQListBoxFontText::height( const TQListBox * ) const
-{
- TQFontMetrics fm(cfont);
- return TQMAX( fm.lineSpacing() + 2, TQApplication::globalStrut().height() );
-}
-
-int TQListBoxFontText::width( const TQListBox * ) const
-{
- TQFontMetrics fm(cfont);
- return TQMAX( fm.width( text() ) + 6, TQApplication::globalStrut().width() );
-}
-
-void TQListBoxFontText::paint( TQPainter *painter )
-{
- painter->save();
- painter->setFont(cfont);
- TQListBoxText::paint(painter);
- painter->restore();
-}
-
-#endif
-
-/*!
- \internal
- Updates the contents of the "font family" list box. This
- function can be reimplemented if you have special requirements.
-*/
-
-void TQFontDialog::updateFamilies()
-{
- d->familyList->blockSignals( TRUE );
-
- enum match_t { MATCH_NONE=0, MATCH_LAST_RESORT=1, MATCH_APP=2, MATCH_FALLBACK, MATCH_FAMILY=3 };
-
- TQStringList familyNames = d->fdb.tqfamilies(d->script);
- {
- // merge the tqunicode/unknown family list with the above list.
- TQStringList l = d->fdb.tqfamilies(TQFont::Unicode) +
- d->fdb.tqfamilies(TQFont::UnknownScript);
- TQStringList::ConstIterator it = l.begin(), end = l.end();
- for (; it != end; ++it) {
- if (! familyNames.contains(*it))
- familyNames << *it;
- }
- }
-
- familyNames.sort();
-
- d->familyList->clear();
-#ifdef SHOW_FONTS_IN_FAMILIES
- TQStringList::Iterator it = familyNames.begin();
- int idx = 0;
- for( ; it != familyNames.end() ; ++it )
- d->familyList->insertItem(new TQListBoxFontText(*it), idx++);
-#else
- d->familyList->insertStringList( familyNames );
-#endif
-
- TQString foundryName1, familyName1, foundryName2, familyName2;
- int bestFamilyMatch = -1;
- match_t bestFamilyType = MATCH_NONE;
-
- TQFont f;
-
- // ##### do the right thing for a list of family names in the font.
- TQFontDatabase::tqparseFontName(d->family, foundryName1, familyName1);
-
- TQStringList::Iterator it = familyNames.begin();
- int i = 0;
- for( ; it != familyNames.end(); ++it, ++i ) {
-
- TQFontDatabase::tqparseFontName(*it, foundryName2, familyName2);
-
- //try to match..
- if ( familyName1 == familyName2 ) {
- bestFamilyType = MATCH_FAMILY;
- if ( foundryName1 == foundryName2 ) {
- bestFamilyMatch = i;
- break;
- }
- if ( bestFamilyMatch < MATCH_FAMILY )
- bestFamilyMatch = i;
- }
-
- //and try some fall backs
- match_t type = MATCH_NONE;
- if ( bestFamilyType <= MATCH_NONE && familyName2 == f.lastResortFamily() )
- type = MATCH_LAST_RESORT;
- if ( bestFamilyType <= MATCH_LAST_RESORT && familyName2 == f.family() )
- type = MATCH_APP;
- // ### add fallback for script
- if ( type != MATCH_NONE ) {
- bestFamilyType = type;
- bestFamilyMatch = i;
- }
- }
-
- if (i != -1 && bestFamilyType != MATCH_NONE)
- d->familyList->setCurrentItem(bestFamilyMatch);
- else
- d->familyList->setCurrentItem( 0 );
- d->familyEdit->setText( d->familyList->currentText() );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->familyList->hasFocus() )
- d->familyEdit->selectAll();
-
- d->familyList->blockSignals( FALSE );
- updateStyles();
-}
-
-/*!
- \internal
- Updates the contents of the "font style" list box. This
- function can be reimplemented if you have special requirements.
-*/
-
-void TQFontDialog::updateStyles()
-{
- d->styleList->blockSignals( TRUE );
-
- d->styleList->clear();
-
- TQStringList styles = d->fdb.tqstyles( d->familyList->currentText() );
-
- if ( styles.isEmpty() ) {
- d->styleEdit->clear();
- d->smoothScalable = FALSE;
- } else {
- d->styleList->insertStringList( styles );
-
- if ( !d->style.isEmpty() ) {
- bool found = FALSE;
- bool first = TRUE;
- TQString cstyle = d->style;
- redo:
- for ( int i = 0 ; i < (int)d->styleList->count() ; i++ ) {
- if ( cstyle == d->styleList->text(i) ) {
- d->styleList->setCurrentItem( i );
- found = TRUE;
- break;
- }
- }
- if (!found && first) {
- if (cstyle.contains("Italic")) {
- cstyle.replace("Italic", "Oblique");
- first = FALSE;
- goto redo;
- } else if (cstyle.contains("Oblique")) {
- cstyle.replace("Oblique", "Italic");
- first = FALSE;
- goto redo;
- }
- }
- if ( !found )
- d->styleList->setCurrentItem( 0 );
- }
-
- d->styleEdit->setText( d->styleList->currentText() );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->styleList->hasFocus() )
- d->styleEdit->selectAll();
-
- d->smoothScalable = d->fdb.isSmoothlyScalable( d->familyList->currentText(), d->styleList->currentText() );
- }
-
- d->styleList->blockSignals( FALSE );
-
- updateSizes();
-}
-
-/*!
- \internal
- Updates the contents of the "font size" list box. This
- function can be reimplemented if you have special requirements.
-*/
-
-void TQFontDialog::updateSizes()
-{
- d->sizeList->blockSignals( TRUE );
-
- d->sizeList->clear();
-
- if ( !d->familyList->currentText().isEmpty() ) {
- TQValueList<int> sizes = d->fdb.tqpointSizes( d->familyList->currentText(), d->styleList->currentText() );
-
- int i = 0;
- bool found = FALSE;
- for( TQValueList<int>::iterator it = sizes.begin() ; it != sizes.end(); ++it ) {
- d->sizeList->insertItem( TQT_TQSTRING(TQString::number( *it )) );
- if ( !found && *it >= d->size ) {
- d->sizeList->setCurrentItem( i );
- found = TRUE;
- }
- ++i;
- }
- if ( !found ) {
- // we request a size bigger than the ones in the list, select the biggest one
- d->sizeList->setCurrentItem( d->sizeList->count() - 1 );
- }
-
- d->sizeEdit->blockSignals( TRUE );
- d->sizeEdit->setText( ( d->smoothScalable ? TQString::number( d->size ) : d->sizeList->currentText() ) );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->sizeList->hasFocus() )
- d->sizeEdit->selectAll();
- d->sizeEdit->blockSignals( FALSE );
- } else {
- d->sizeEdit->clear();
- }
-
- d->sizeList->blockSignals( FALSE );
- updateSample();
-}
-
-void TQFontDialog::updateSample()
-{
- if ( d->familyList->currentText().isEmpty() )
- d->sampleEdit->clear();
- else
- d->sampleEdit->setFont( font() );
-}
-
-/*!
- \internal
-*/
-void TQFontDialog::scriptHighlighted( int index )
-{
- d->script = (TQFont::Script)index;
- d->sampleEdit->setText( d->fdb.scriptSample( d->script ) );
- updateFamilies();
-}
-
-/*!
- \internal
-*/
-void TQFontDialog::familyHighlighted( int i )
-{
- d->family = d->familyList->text( i );
- d->familyEdit->setText( d->family );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->familyList->hasFocus() )
- d->familyEdit->selectAll();
-
- updateStyles();
-}
-
-
-/*!
- \internal
-*/
-
-void TQFontDialog::styleHighlighted( int index )
-{
- TQString s = d->styleList->text( index );
- d->styleEdit->setText( s );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->styleList->hasFocus() )
- d->styleEdit->selectAll();
-
- d->style = s;
-
- updateSizes();
-}
-
-
-/*!
- \internal
-*/
-
-void TQFontDialog::sizeHighlighted( const TQString &s )
-{
- d->sizeEdit->setText( s );
- if ( tqstyle().tqstyleHint(TQStyle::SH_FontDialog_SelectAssociatedText, this) &&
- d->sizeEdit->hasFocus() )
- d->sizeEdit->selectAll();
-
- d->size = s.toInt();
- updateSample();
-}
-
-/*!
- \internal
- This slot is called if the user changes the font size.
- The size is passed in the \a s argument as a \e string.
-*/
-
-void TQFontDialog::sizeChanged( const TQString &s )
-{
- // no need to check if the conversion is valid, since we have an TQIntValidator in the size edit
- int size = s.toInt();
- if ( d->size == size )
- return;
-
- d->size = size;
- if ( d->sizeList->count() != 0 ) {
- int i;
- for ( i = 0 ; i < (int)d->sizeList->count() - 1 ; i++ ) {
- if ( d->sizeList->text(i).toInt() >= d->size )
- break;
- }
- d->sizeList->blockSignals( TRUE );
- d->sizeList->setCurrentItem( i );
- d->sizeList->blockSignals( FALSE );
- }
- updateSample();
-}
-
-/*!
- \internal
- Sets the font highlighted in the TQFontDialog to font \a f.
-
- \sa font()
-*/
-
-void TQFontDialog::setFont( const TQFont &f )
-{
- d->family = f.family();
- d->style = d->fdb.styleString( f );
- d->size = f.pointSize();
- if ( d->size == -1 ) {
- TQFontInfo fi( f );
- d->size = fi.pointSize();
- }
- d->strikeout->setChecked( f.strikeOut() );
- d->underline->setChecked( f.underline() );
-
- updateFamilies();
-}
-
-/*!
- \internal
- Returns the font which the user has chosen.
-
- \sa setFont()
-*/
-
-TQFont TQFontDialog::font() const
-{
- int pSize = d->sizeEdit->text().toInt();
-
- TQFont f = d->fdb.font( d->familyList->currentText(), d->style, pSize );
- f.setStrikeOut( d->strikeout->isChecked() );
- f.setUnderline( d->underline->isChecked() );
- return f;
-}
-
-#endif