/* * This file is part of the KDE Help Center * * Copyright (C) 2003 Frerich Raabe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "fontdialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace KHC; FontDialog::FontDialog( QWidget *parent ) : KDialog( parent ) { setModal( true ); setCaption( i18n( "Font Configuration" ) ); setButtons( Ok | Cancel ); m_mainWidget = new KVBox( this ); setMainWidget( m_mainWidget ); setupFontSizesBox(); setupFontTypesBox(); setupFontEncodingBox(); load(); connect( this, SIGNAL( okClicked() ), SLOT( slotOk() ) ); } void FontDialog::slotOk() { save(); accept(); } void FontDialog::setupFontSizesBox() { QGroupBox *gb = new QGroupBox( i18n( "Sizes" ), m_mainWidget ); QGridLayout *layout = new QGridLayout( gb ); layout->setSpacing( KDialog::spacingHint() ); layout->setMargin( KDialog::marginHint() * 2 ); QLabel *lMinFontSize = new QLabel( i18nc( "The smallest size a will have", "M&inimum font size:" ), gb ); layout->addWidget( lMinFontSize, 0, 0 ); m_minFontSize = new KIntNumInput( gb ); layout->addWidget( m_minFontSize, 0, 1 ); m_minFontSize->setRange( 1, 20 ); lMinFontSize->setBuddy( m_minFontSize ); QLabel *lMedFontSize = new QLabel( i18nc( "The normal size a font will have", "M&edium font size:" ), gb ); layout->addWidget( lMedFontSize, 1, 0 ); m_medFontSize = new KIntNumInput( gb ); layout->addWidget( m_medFontSize, 1, 1 ); m_medFontSize->setRange( 4, 28 ); lMedFontSize->setBuddy( m_medFontSize ); } void FontDialog::setupFontTypesBox() { QGroupBox *gb = new QGroupBox( i18n( "Fonts" ), m_mainWidget ); QGridLayout *layout = new QGridLayout( gb ); layout->setSpacing( KDialog::spacingHint() ); layout->setMargin( KDialog::marginHint() * 2 ); QLabel *lStandardFont = new QLabel( i18n( "S&tandard font:" ), gb ); layout->addWidget( lStandardFont, 0, 0 ); m_standardFontCombo = new KFontComboBox( gb ); layout->addWidget( m_standardFontCombo, 0, 1 ); lStandardFont->setBuddy( m_standardFontCombo ); QLabel *lFixedFont = new QLabel( i18n( "F&ixed font:" ), gb ); layout->addWidget( lFixedFont, 1, 0 ); m_fixedFontCombo = new KFontComboBox( gb ); layout->addWidget( m_fixedFontCombo, 1, 1 ); lFixedFont->setBuddy( m_fixedFontCombo ); QLabel *lSerifFont = new QLabel( i18n( "S&erif font:" ), gb ); layout->addWidget( lSerifFont, 2, 0 ); m_serifFontCombo = new KFontComboBox( gb ); layout->addWidget( m_serifFontCombo, 2, 1 ); lSerifFont->setBuddy( m_serifFontCombo ); QLabel *lSansSerifFont = new QLabel( i18n( "S&ans serif font:" ), gb ); layout->addWidget( lSansSerifFont, 3, 0 ); m_sansSerifFontCombo = new KFontComboBox( gb ); layout->addWidget( m_sansSerifFontCombo, 3, 1 ); lSansSerifFont->setBuddy( m_sansSerifFontCombo ); QLabel *lItalicFont = new QLabel( i18n( "&Italic font:" ), gb ); layout->addWidget( lItalicFont, 4, 0 ); m_italicFontCombo = new KFontComboBox( gb ); layout->addWidget( m_italicFontCombo, 4, 1 ); lItalicFont->setBuddy( m_italicFontCombo ); QLabel *lFantasyFont = new QLabel( i18n( "&Fantasy font:" ), gb ); layout->addWidget( lFantasyFont, 5, 0 ); m_fantasyFontCombo = new KFontComboBox( gb ); layout->addWidget( m_fantasyFontCombo, 5, 1 ); lFantasyFont->setBuddy( m_fantasyFontCombo ); } void FontDialog::setupFontEncodingBox() { QGroupBox *gb = new QGroupBox( i18n( "Encoding" ), m_mainWidget ); QGridLayout *layout = new QGridLayout( gb ); layout->setSpacing( KDialog::spacingHint() ); layout->setMargin( KDialog::marginHint() * 2 ); QLabel *lDefaultEncoding = new QLabel( i18n( "&Default encoding:" ), gb ); layout->addWidget( lDefaultEncoding, 0, 0 ); m_defaultEncoding = new KComboBox( false, gb ); layout->addWidget( m_defaultEncoding, 0, 1 ); QStringList encodings = KGlobal::charsets()->availableEncodingNames(); encodings.prepend( i18n( "Use Language Encoding" ) ); m_defaultEncoding->addItems( encodings ); lDefaultEncoding->setBuddy( m_defaultEncoding ); QLabel *lFontSizeAdjustement = new QLabel( i18n( "&Font size adjustment:" ), gb ); layout->addWidget( lFontSizeAdjustement, 1, 0 ); m_fontSizeAdjustement = new KIntSpinBox( gb ); m_fontSizeAdjustement->setRange( -5, 5 ); m_fontSizeAdjustement->setSingleStep( 1 ); layout->addWidget( m_fontSizeAdjustement, 1, 1 ); lFontSizeAdjustement->setBuddy( m_fontSizeAdjustement ); } void FontDialog::load() { KSharedConfig::Ptr cfg = KGlobal::config(); { KConfigGroup configGroup( cfg, "HTML Settings" ); m_minFontSize->setValue( configGroup.readEntry( "MinimumFontSize", (int)HTML_DEFAULT_MIN_FONT_SIZE ) ); m_medFontSize->setValue( configGroup.readEntry( "MediumFontSize", 10 ) ); QStringList fonts = configGroup.readEntry( "Fonts" , QStringList() ); if ( fonts.isEmpty() ) fonts << KGlobalSettings::generalFont().family() << KGlobalSettings::fixedFont().family() << QLatin1String(HTML_DEFAULT_VIEW_SERIF_FONT) << QLatin1String(HTML_DEFAULT_VIEW_SANSSERIF_FONT) << QLatin1String(HTML_DEFAULT_VIEW_CURSIVE_FONT) << QLatin1String(HTML_DEFAULT_VIEW_FANTASY_FONT) << QString(); m_standardFontCombo->setCurrentFont( fonts[ 0 ] ); m_fixedFontCombo->setCurrentFont( fonts[ 1 ] ); m_serifFontCombo->setCurrentFont( fonts[ 2 ] ); m_sansSerifFontCombo->setCurrentFont( fonts[ 3 ] ); m_italicFontCombo->setCurrentFont( fonts[ 4 ] ); m_fantasyFontCombo->setCurrentFont( fonts[ 5 ] ); QString encoding = configGroup.readEntry( "DefaultEncoding" ); if (encoding.isEmpty()) m_defaultEncoding->setCurrentIndex( 0 ); else m_defaultEncoding->setCurrentItem( encoding ); m_fontSizeAdjustement->setValue( fonts[ 6 ].toInt() ); } } void FontDialog::save() { KSharedConfig::Ptr cfg = KGlobal::config(); { KConfigGroup configGroup( cfg, "General" ); configGroup.writeEntry( "UseKonqSettings", false ); } { KConfigGroup configGroup( cfg, "HTML Settings" ); configGroup.writeEntry( "MinimumFontSize", m_minFontSize->value() ); configGroup.writeEntry( "MediumFontSize", m_medFontSize->value() ); QStringList fonts; fonts << m_standardFontCombo->currentFont().family() << m_fixedFontCombo->currentFont().family() << m_serifFontCombo->currentFont().family() << m_sansSerifFontCombo->currentFont().family() << m_italicFontCombo->currentFont().family() << m_fantasyFontCombo->currentFont().family() << QString::number( m_fontSizeAdjustement->value() ); configGroup.writeEntry( "Fonts", fonts ); if ( m_defaultEncoding->currentText() == i18n( "Use Language Encoding" ) ) configGroup.writeEntry( "DefaultEncoding", QString() ); else configGroup.writeEntry( "DefaultEncoding", m_defaultEncoding->currentText() ); } cfg->sync(); } #include "moc_fontdialog.cpp" // vim:ts=4:sw=4:noet