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

Class Index

kdelibs'SearchDialog (./kdelibs/kwrite/kwdialog.h:19)

class SearchDialog : public KDialogBase
{
    Q_OBJECT

  public:

    SearchDialog( QWidget *parent, QStringList &searchFor, QStringList &replaceWith, int flags );
    QString getSearchFor();
    QString getReplaceWith();
    int getFlags();

  protected slots:

    void slotOk();

  protected:

    QComboBox *m_search;
    QComboBox *m_replace;
    QCheckBox *m_opt1;
    QCheckBox *m_opt2;
    QCheckBox *m_opt3;
    QCheckBox *m_opt4;
    QCheckBox *m_opt5;
    QCheckBox *m_opt6;
};


kdelibs'SearchDialog::SearchDialog() (./kdelibs/kwrite/kwdialog.cpp:34)

SearchDialog::SearchDialog( QWidget *parent, QStringList &searchFor, QStringList &replaceWith, int flags )
  : KDialogBase( parent, 0L, true, i18n( "Find Text" ), Ok | Cancel, Ok )
  , m_replace( 0L )
{
  QWidget *page = new QWidget( this );
  setMainWidget( page );

  QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );

  m_search = new QComboBox( true, page );
  m_search->insertStringList( searchFor );
  m_search->setMinimumWidth( m_search->sizeHint().width() );
  m_search->lineEdit()->selectAll();
  QLabel *label = new QLabel( m_search, i18n( "&Text To Find:" ), page );
  topLayout->addWidget( label );
  topLayout->addWidget( m_search );

  if( flags & sfReplace )
  {
    // make it a replace dialog
    setCaption( i18n( "Replace Text" ) );
    m_replace = new QComboBox( true, page );
    m_replace->insertStringList( replaceWith );
    m_replace->setMinimumWidth( m_search->sizeHint().width() );
    label = new QLabel( m_replace, i18n( "&Replace With:" ), page );
    topLayout->addWidget( label );
    topLayout->addWidget( m_replace );
  }

  QGroupBox *group = new QGroupBox( i18n( "Options" ), page );
  topLayout->addWidget( group, 10 );

  QGridLayout *gbox = new QGridLayout( group, 5, 2, spacingHint() );
  gbox->addRowSpacing( 0, fontMetrics().lineSpacing() );
  gbox->setRowStretch( 4, 10 );

  m_opt1 = new QCheckBox( i18n( "C&ase Sensitive" ), group );
  gbox->addWidget( m_opt1, 1, 0 );

  m_opt2 = new QCheckBox(i18n("&Whole Words Only" ), group );
  gbox->addWidget( m_opt2, 2, 0 );

  m_opt3 = new QCheckBox(i18n("&From Cursor" ), group );
  gbox->addWidget( m_opt3, 3, 0 );

  m_opt4 = new QCheckBox(i18n("Find &Backwards" ), group );
  gbox->addWidget( m_opt4, 1, 1 );

  m_opt5 = new QCheckBox(i18n("&Selected Text" ), group );
  gbox->addWidget( m_opt5, 2, 1 );

  m_opt1->setChecked( flags & sfCaseSensitive );
  m_opt2->setChecked( flags & sfWholeWords );
  m_opt3->setChecked( flags & sfFromCursor );
  m_opt4->setChecked( flags & sfBackward );
  m_opt5->setChecked( flags & sfSelected );

  if( m_replace )
  {
    m_opt6 = new QCheckBox( i18n( "&Prompt On Replace" ), group );
    m_opt6->setChecked( flags & sfPrompt );
    gbox->addWidget( m_opt6, 3, 1 );
  }

  m_search->setFocus();
}


kdelibs'SearchDialog::getSearchFor() (./kdelibs/kwrite/kwdialog.cpp:101)

QString SearchDialog::getSearchFor()
{
  return m_search->currentText();
}


kdelibs'SearchDialog::getReplaceWith() (./kdelibs/kwrite/kwdialog.cpp:106)

QString SearchDialog::getReplaceWith()
{
  return m_replace->currentText();
}


kdelibs'SearchDialog::getFlags() (./kdelibs/kwrite/kwdialog.cpp:111)

int SearchDialog::getFlags()
{
  int flags = 0;

  if( m_opt1->isChecked() ) flags |= sfCaseSensitive;
  if( m_opt2->isChecked() ) flags |= sfWholeWords;
  if( m_opt3->isChecked() ) flags |= sfFromCursor;
  if( m_opt4->isChecked() ) flags |= sfBackward;
  if( m_opt5->isChecked() ) flags |= sfSelected;
  if( m_replace )
  {
    if( m_opt6->isChecked() )
      flags |= sfPrompt;

    flags |= sfReplace;
  }

  return flags;
}


kdelibs'SearchDialog::slotOk() (./kdelibs/kwrite/kwdialog.cpp:131)

void SearchDialog::slotOk()
{
  const char *text;

  text = m_search->currentText();

  if( text && *text )
    accept();
}

// this dialog is not modal