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

Class Index

khexedit'CInsertDialog (./kdeutils/khexedit/dialog.h:297)

class CInsertDialog : public KDialogBase
{
  Q_OBJECT
  
  public:
    CInsertDialog( QWidget *parent=0, const char *name=0, bool modal=false );
    ~CInsertDialog( void );

  protected:
    virtual void showEvent( QShowEvent *e );

  private slots:
    void slotOk( void );
    void cursorCheck( void );
    void patternSelectorChanged( int index );
    void patternInputChanged( const QString &text );

  signals:
    void execute( SInsertData &id );

  private:
    QSpinBox *mSizeBox;
    QLabel *mOffsetLabel;
    QComboBox *mPatternSelector;
    QLineEdit *mPatternInput;
    QLineEdit *mOffsetInput;
    QCheckBox *mCheckPattern;
    QCheckBox *mCheckOnCursor;

    QString    mPatternString[4];
    QByteArray mPatternData;
    CHexValidator *mPatternValidator;
};





khexedit'CInsertDialog::CInsertDialog() (./kdeutils/khexedit/dialog.cc:1046)

CInsertDialog::CInsertDialog( QWidget *parent, const char *name, bool modal )
  :KDialogBase( Plain, i18n("Insert Pattern"), Ok|Cancel, Ok, 
		parent, name, modal )
{

  QString text;
  QVBoxLayout *topLayout = new QVBoxLayout( plainPage(), 0, spacingHint() );
  if( topLayout == 0 ) { return; }

  QVBoxLayout *vbox = new QVBoxLayout();
  if( vbox == 0 ) { return; }
  topLayout->addLayout( vbox );

  mSizeBox = new QSpinBox( plainPage() );
  if( mSizeBox == 0 ) { return; }
  mSizeBox->setMinimumWidth( fontMetrics().maxWidth()*17 );
  mSizeBox->setRange( 1, MAXINT );
  mSizeBox->setValue( 1 );
  
  QLabel *label = new QLabel( mSizeBox, i18n("&Size"), plainPage() );
  if( label == 0 ) { return; }

  vbox->addWidget( label );
  vbox->addWidget( mSizeBox );

  mPatternSelector = new QComboBox( false, plainPage() );
  if( mPatternSelector == 0 ) { return; }
  mPatternSelector->setMinimumWidth( fontMetrics().maxWidth()*17 );
  mPatternSelector->insertStringList( formatStrings() );
  connect( mPatternSelector, SIGNAL(activated(int)),
	   SLOT(patternSelectorChanged(int)) );

  text = i18n("Fo&rmat (pattern)");
  label = new QLabel( mPatternSelector, text, plainPage() );
  if( label == 0 ) { return; }
 
  vbox->addWidget( label );
  vbox->addWidget( mPatternSelector );

  mPatternInput = new QLineEdit( plainPage() );
  if( mPatternInput == 0 ) { return; }
  mPatternInput->setMinimumWidth( fontMetrics().maxWidth()*17 );
  mPatternValidator = new CHexValidator( this, CHexValidator::regularText );
  if( mPatternValidator == 0 ) { return; }
  mPatternInput->setValidator( mPatternValidator );
  connect( mPatternInput, SIGNAL(textChanged(const QString&)), 
	   SLOT(patternInputChanged(const QString&)) );

  label = new QLabel( mPatternInput, i18n("&Pattern"), plainPage() );
  if( label == 0 ) { return; }

  vbox->addWidget( label );
  vbox->addWidget( mPatternInput );

  mOffsetInput = new QLineEdit( plainPage() );
  mOffsetInput->setMinimumWidth( fontMetrics().maxWidth()*17 );

  mOffsetLabel = new QLabel( mOffsetInput, i18n("&Offset"), plainPage() );
  if( mOffsetLabel == 0 ) { return; }

  vbox->addWidget( mOffsetLabel );
  vbox->addWidget( mOffsetInput );

  QButtonGroup *group = new QButtonGroup( i18n("Options"), plainPage() );
  if( group == 0 ) { return; }
  topLayout->addWidget( group, 10 );


  QGridLayout *gbox = new QGridLayout( group, 4, 2, spacingHint() );
  if( gbox == 0 ) { return; }
  gbox->addRowSpacing( 0, fontMetrics().lineSpacing() );

  mCheckPattern = new QCheckBox( i18n("R&epeat pattern"), group );
  gbox->addWidget( mCheckPattern, 1, 0 );
  mCheckOnCursor = new QCheckBox( i18n("&Insert on cursor position"), group );
  gbox->addWidget( mCheckOnCursor, 2, 0 );
  connect( mCheckOnCursor, SIGNAL(clicked()), SLOT(cursorCheck()) );
  gbox->setRowStretch( 3, 10 ); 
}



khexedit'CInsertDialog::~CInsertDialog() (./kdeutils/khexedit/dialog.cc:1127)

CInsertDialog::~CInsertDialog( void )
{
  delete mPatternValidator;
}



khexedit'CInsertDialog::showEvent() (./kdeutils/khexedit/dialog.cc:1133)

void CInsertDialog::showEvent( QShowEvent *e )
{
  KDialogBase::showEvent(e);
  mPatternInput->setFocus();
}



khexedit'CInsertDialog::patternSelectorChanged() (./kdeutils/khexedit/dialog.cc:1140)

void CInsertDialog::patternSelectorChanged( int index )
{
  mPatternValidator->setState( (CHexValidator::EState)index );
  mPatternInput->setText( mPatternString[ index ] );
}



khexedit'CInsertDialog::patternInputChanged() (./kdeutils/khexedit/dialog.cc:1147)

void CInsertDialog::patternInputChanged( const QString &text )
{
  mPatternString[ mPatternSelector->currentItem() ] = text;
  mPatternValidator->convert( mPatternData, 
    mPatternString[ mPatternSelector->currentItem() ] );
}



khexedit'CInsertDialog::slotOk() (./kdeutils/khexedit/dialog.cc:1155)

void CInsertDialog::slotOk( void )
{
  if( mPatternData.isEmpty() == true )
  {
    showEntryFailure( this, QString("") );
    return;
  }

  SInsertData id;
  id.size = mSizeBox->value();
  id.repeatPattern = mCheckPattern->isChecked();
  id.onCursor = mCheckOnCursor->isChecked();
  id.pattern = mPatternData;

  if( id.onCursor == false )
  {
    bool success = stringToOffset( mOffsetInput->text(), id.offset );
    if( success == false )
    {
      showEntryFailure( this, QString("") );
      return;
    }
  }

  hide();
  execute( id );
}



khexedit'CInsertDialog::cursorCheck() (./kdeutils/khexedit/dialog.cc:1184)

void CInsertDialog::cursorCheck( void )
{
  bool state = mCheckOnCursor->isChecked() == true ? false : true;
  mOffsetLabel->setEnabled( state );
  mOffsetInput->setEnabled( state );
}