Source Code (Use browser search to find items of interest.)

Class Index

kedit'COptionDialog (./kdeutils/kedit/optiondialog.h:36)

class COptionDialog : public KDialogBase
{
  Q_OBJECT

  public:
    enum Page
    {
      page_font = 0,
      page_color,
      page_spell,
      page_misc,
      page_max
    };

    COptionDialog( QWidget *parent = 0, char *name = 0, bool modal = false );
    ~COptionDialog( void );

    void setFont( const SFontState &font );
    void setColor( const SColorState &color );
    void setSpell( const SSpellState &spell );
    void setMisc( const SMiscState &misc );
    void setState( const SOptionState &state );

  protected slots:
    virtual void slotDefault( void );
    virtual void slotOk( void );
    virtual void slotApply( void );
    virtual void slotHelp( void );

  private:
    struct SFontWidgets
    {
      KFontChooser *chooser;
    };

    struct SColorWidgets
    {
      KColorButton *fgColor;
      KColorButton *bgColor;
    };

    struct SSpellWidgets
    {
      KSpellConfig *config;
    };

    struct SMiscWidgets
    {
      QComboBox *wrapCombo;
      QLabel    *wrapLabel;
      QLineEdit *wrapInput;
      QCheckBox *backupCheck;
      QLineEdit *mailInput;
    };

  private slots:
    void wrapMode( int mode );

  private:
    void setupFontPage( void );
    void setupColorPage( void );
    void setupSpellPage( void );
    void setupMiscPage( void );

  signals:
    void fontChoice( const SFontState &font );
    void colorChoice( const SColorState &color );
    void spellChoice( const SSpellState &spell );
    void miscChoice( const SMiscState &misc );

  private:
    SOptionState   mState;
    SColorWidgets  mColor;
    SFontWidgets   mFont;
    SSpellWidgets  mSpell;
    SMiscWidgets   mMisc;
};


kedit'COptionDialog::COptionDialog() (./kdeutils/kedit/optiondialog.cpp:42)

COptionDialog::COptionDialog( QWidget *parent, char *name, bool modal )
  :KDialogBase( IconList, i18n("Configure"), Help|Default|Apply|Ok|Cancel,
		Ok, parent, name, modal, true )
{
  setHelp( "kedit/index.html", QString::null );

  setupFontPage();
  setupColorPage();
  setupSpellPage();
  setupMiscPage();
}


kedit'COptionDialog::~COptionDialog() (./kdeutils/kedit/optiondialog.cpp:54)

COptionDialog::~COptionDialog( void )
{
}



kedit'COptionDialog::setupFontPage() (./kdeutils/kedit/optiondialog.cpp:59)

void COptionDialog::setupFontPage( void )
{
  //
  // 2000-02-19 Espen Sand.
  // It is ok to use a QVBox page here because the font dialog will use
  // all vertical space correctly.
  //
  QVBox *page = addVBoxPage( i18n("Font"), i18n("Editor font" ), 
			     UserIcon("fonts") );
  mFont.chooser = new KFontChooser( page,"font",false,QStringList(),false,6 );
  mFont.chooser->setSampleText( i18n("KEdit editor font") );
}



kedit'COptionDialog::setupColorPage() (./kdeutils/kedit/optiondialog.cpp:73)

void COptionDialog::setupColorPage( void )
{
  QFrame *page = addPage( i18n("Color"), i18n("Text color in editor area"),
			  UserIcon("colors") );
  QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );

  QGridLayout *gbox = new QGridLayout( 2, 2 );
  topLayout->addLayout(gbox);

  QLabel *label;
  mColor.fgColor = new KColorButton( page );
  mColor.bgColor = new KColorButton( page );
  label = new QLabel( mColor.fgColor, "Foreground color:", page );
  label = new QLabel( mColor.bgColor, "Background color:", page );

  gbox->addWidget( label, 0, 0 );
  gbox->addWidget( label, 1, 0 );
  gbox->addWidget( mColor.fgColor, 0, 1 );
  gbox->addWidget( mColor.bgColor, 1, 1 );

  topLayout->addStretch(10);
}



kedit'COptionDialog::setupSpellPage() (./kdeutils/kedit/optiondialog.cpp:97)

void COptionDialog::setupSpellPage( void )
{
  QFrame *page = addPage( i18n("Spelling"), i18n("Spell checker behavior"),
			  SmallIcon("spell") );
  QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );

  mSpell.config = new KSpellConfig( page, "spell", 0, false );
  topLayout->addWidget( mSpell.config );

  topLayout->addStretch(10);
}



kedit'COptionDialog::setupMiscPage() (./kdeutils/kedit/optiondialog.cpp:110)

void COptionDialog::setupMiscPage( void )
{
  QFrame *page = addPage( i18n("Miscellaneous"), i18n("Various properties"),
			  UserIcon("misc") );
  QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );

  QGridLayout *gbox = new QGridLayout( 5, 2 );
  topLayout->addLayout( gbox );

  QString text;

  text = i18n("Word Wrap:");
  QLabel *label = new QLabel( text, page, "wraplabel" );
  gbox->addWidget( label, 0, 0 );
  QStringList wrapList;
  wrapList.append( i18n("Disable wrapping") );
  wrapList.append( i18n("Let editor width decide") );
  wrapList.append( i18n("At specified column") );
  mMisc.wrapCombo = new QComboBox( false, page );
  connect(mMisc.wrapCombo,SIGNAL(activated(int)),this,SLOT(wrapMode(int)));
  mMisc.wrapCombo->insertStringList( wrapList );
  gbox->addWidget( mMisc.wrapCombo, 0, 1 );

  text = i18n("Wrap Column:");
  mMisc.wrapLabel = new QLabel( text, page, "wrapcolumn" );
  gbox->addWidget( mMisc.wrapLabel, 1, 0 );
  mMisc.wrapInput = new QLineEdit( page, "values" );
  mMisc.wrapInput->setMinimumWidth( fontMetrics().maxWidth()*10 );
  gbox->addWidget( mMisc.wrapInput, 1, 1 );

  gbox->addRowSpacing( 2, spacingHint()*2 );  

  text = i18n("Make backup when saving a file");
  mMisc.backupCheck = new QCheckBox( text, page, "backup" );
  gbox->addMultiCellWidget( mMisc.backupCheck, 3, 3, 0, 1 );
  
  mMisc.mailInput = new QLineEdit( page, "mailcmd" );
  mMisc.mailInput->setMinimumWidth(fontMetrics().maxWidth()*10);
  text = i18n("Mail Command:");
  label = new QLabel( text, page,"mailcmdlabel" );
  gbox->addWidget( label, 4, 0 );
  gbox->addWidget( mMisc.mailInput, 4, 1 );

  topLayout->addStretch(10);
}



kedit'COptionDialog::wrapMode() (./kdeutils/kedit/optiondialog.cpp:157)

void COptionDialog::wrapMode( int mode )
{
  bool state = mode == 2 ? true : false;
  mMisc.wrapInput->setEnabled( state );
  mMisc.wrapLabel->setEnabled( state );
}



kedit'COptionDialog::slotOk() (./kdeutils/kedit/optiondialog.cpp:165)

void COptionDialog::slotOk( void )
{
  slotApply();
  accept();
}



kedit'COptionDialog::slotApply() (./kdeutils/kedit/optiondialog.cpp:172)

void COptionDialog::slotApply( void )
{
  switch( activePageIndex() )
  {
    case page_font:
      mState.font.font = mFont.chooser->font();
      emit fontChoice( mState.font );
    break;

    case page_color:
      mState.color.textFg = mColor.fgColor->color();
      mState.color.textBg = mColor.bgColor->color();
      emit colorChoice( mState.color );
    break;

    case page_spell:
      mState.spell.config = *mSpell.config;
      emit spellChoice( mState.spell );
    break;

    case page_misc:
      mState.misc.wrapMode    = mMisc.wrapCombo->currentItem();
      mState.misc.backupCheck = mMisc.backupCheck->isChecked();
      mState.misc.wrapColumn  = mMisc.wrapInput->text().toInt();
      mState.misc.mailCommand = mMisc.mailInput->text();
      emit miscChoice( mState.misc );
    break;
  }
}



kedit'COptionDialog::slotDefault() (./kdeutils/kedit/optiondialog.cpp:203)

void COptionDialog::slotDefault( void )
{
  //
  // The constructors store the default settings.
  //
  switch( activePageIndex() )
  {
    case page_font:
      setFont( SFontState() );
    break;

    case page_color:
      setColor( SColorState() );
    break;

    case page_spell:
      setSpell( SSpellState() );
    break;

    case page_misc:
      setMisc( SMiscState() );
    break;
  }
}



kedit'COptionDialog::slotHelp() (./kdeutils/kedit/optiondialog.cpp:229)

void COptionDialog::slotHelp( void )
{
  if( activePageIndex() == page_spell )
  {
    mSpell.config->activateHelp();
  }
  else
  {
    KDialogBase::slotHelp();
  }
}



kedit'COptionDialog::setFont() (./kdeutils/kedit/optiondialog.cpp:242)

void COptionDialog::setFont( const SFontState &font )
{
  mState.font = font;
  mFont.chooser->setFont( font.font, false );
}



kedit'COptionDialog::setColor() (./kdeutils/kedit/optiondialog.cpp:249)

void COptionDialog::setColor( const SColorState &color )
{
  mState.color = color;
  mColor.fgColor->setColor( color.textFg );
  mColor.bgColor->setColor( color.textBg );
}



kedit'COptionDialog::setSpell() (./kdeutils/kedit/optiondialog.cpp:257)

void COptionDialog::setSpell( const SSpellState &spell )
{
  *mSpell.config = spell.config;
}



kedit'COptionDialog::setMisc() (./kdeutils/kedit/optiondialog.cpp:263)

void COptionDialog::setMisc( const SMiscState &misc )
{
  mState.misc = misc;
  mMisc.wrapCombo->setCurrentItem( misc.wrapMode ); 
  mMisc.wrapInput->setText( QString().setNum(misc.wrapColumn) );
  mMisc.backupCheck->setChecked( misc.backupCheck );
  mMisc.mailInput->setText( misc.mailCommand );
  wrapMode( mMisc.wrapCombo->currentItem() );
}



kedit'COptionDialog::setState() (./kdeutils/kedit/optiondialog.cpp:274)

void COptionDialog::setState( const SOptionState &state )
{
  setFont( state.font );
  setColor( state.color );
  setSpell( state.spell );
  setMisc( state.misc );
}