diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-08 12:30:30 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-08 12:30:30 +0900 |
commit | 7ec5a57fc3f04526f36477e22066199372beb0ee (patch) | |
tree | f46ff23820fcfbf612070cce46b7496bc766a9fd /khexedit/dialog.cc | |
parent | 062ea53b46c9b76c78fcde2fb0df8b2411af3f39 (diff) | |
download | tdeutils-7ec5a57fc3f04526f36477e22066199372beb0ee.tar.gz tdeutils-7ec5a57fc3f04526f36477e22066199372beb0ee.zip |
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'khexedit/dialog.cc')
-rw-r--r-- | khexedit/dialog.cc | 1433 |
1 files changed, 0 insertions, 1433 deletions
diff --git a/khexedit/dialog.cc b/khexedit/dialog.cc deleted file mode 100644 index c2f2d80..0000000 --- a/khexedit/dialog.cc +++ /dev/null @@ -1,1433 +0,0 @@ -/* - * khexedit - Versatile hex editor - * Copyright (C) 1999 Espen Sand, espensa@online.no - * - * 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 <ctype.h> -#include <iostream> -#include <limits.h> - -#include <tqbuttongroup.h> -#include <tqfileinfo.h> -#include <tqlayout.h> -#include <tqvalidator.h> - -#include <tdefiledialog.h> -#include <tdelocale.h> -#include <tdemessagebox.h> -#include <kseparator.h> -#include <kstdguiitem.h> - -#include "dialog.h" -#include <tqpushbutton.h> - -static const TQStringList &formatStrings( void ); -static const TQStringList &operationStrings( void ); - - -CGotoDialog::CGotoDialog( TQWidget *parent, const char *name, bool modal ) - :KDialogBase( Plain, i18n("Goto Offset"), Ok|Cancel, Ok, parent, name, - modal ) -{ - TQVBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - TQVBoxLayout *vbox = new TQVBoxLayout(); - if( vbox == 0 ) { return; } - topLayout->addLayout( vbox ); - - mComboBox = new TQComboBox( true, plainPage() ); - if( mComboBox == 0 ) { return; } - mComboBox->setMaxCount( 10 ); - mComboBox->setInsertionPolicy( TQComboBox::AtTop ); - mComboBox->setMinimumWidth( fontMetrics().maxWidth()*17 ); - - TQLabel *label = new TQLabel( mComboBox, i18n("O&ffset:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mComboBox ); - - TQButtonGroup *group = new TQButtonGroup( i18n("Options"), plainPage() ); - if( group == 0 ) { return; } - topLayout->addWidget( group, 10 ); - - TQGridLayout *gbox = new TQGridLayout( group, 4, 2, spacingHint() ); - if( gbox == 0 ) { return; } - gbox->addRowSpacing( 0, fontMetrics().lineSpacing() ); - mCheckFromCursor = new TQCheckBox( i18n("&From cursor"), group ); - gbox->addWidget( mCheckFromCursor, 1, 0 ); - mCheckBackward = new TQCheckBox( i18n("&Backwards"), group ); - gbox->addWidget( mCheckBackward, 1, 1 ); - mCheckVisible = new TQCheckBox( i18n("&Stay visible"), group ); - gbox->addWidget( mCheckVisible, 2, 0 ); - gbox->setRowStretch( 3, 10 ); - - TDEConfig &config = *kapp->config(); - config.setGroup("Goto Dialog"); - mCheckFromCursor->setChecked( config.readBoolEntry( "FromCursor", false ) ); - mCheckVisible->setChecked( config.readBoolEntry( "StayVisible", true ) ); - mCheckBackward->setChecked( config.readBoolEntry( "Backwards", false ) ); -} - - - -CGotoDialog::~CGotoDialog( void ) -{ - TDEConfig &config = *kapp->config(); - config.setGroup("Goto Dialog"); - config.writeEntry( "FromCursor", mCheckFromCursor->isChecked() ); - config.writeEntry( "StayVisible", mCheckVisible->isChecked() ); - config.writeEntry( "Backwards", mCheckBackward->isChecked() ); - config.sync(); -} - - - -void CGotoDialog::showEvent( TQShowEvent *e ) -{ - KDialogBase::showEvent(e); - mComboBox->setFocus(); -} - - - -// -// Format of input string: -// 0x<HexNumber>|<DecimalNumber>s<Bit> -// s = :,. or space -// -void CGotoDialog::slotOk( void ) -{ - uint offset; - bool success = stringToOffset( mComboBox->currentText(), offset ); - if( success == false ) - { - showEntryFailure( this, TQString("") ); - return; - } - - if( mCheckVisible->isChecked() == false ) - { - hide(); - } - emit gotoOffset( offset, 7, mCheckFromCursor->isChecked(), - mCheckBackward->isChecked() == true ? false : true ); - - #if 0 - const char *p = mComboBox->currentText(); - if( strlen( p ) == 0 ) - { - return; - } - - // - // Skip any whitespaces in front of string - // - for( ; *p != 0 && isspace( *p ) ; p++ ); - - uint offset, bit; - int match; - if( strncmp( p, "0x", 2 ) == 0 || strncmp( p, "0X", 2 ) == 0 ) - { - match = sscanf( p+2, "%x", &offset ); - } - else - { - match = sscanf( p, "%u", &offset ); - } - - if( match == 0 ) - { - return; - } - - bit = 7; - - p = strpbrk( p, ":,. " ); - if( p != 0 ) - { - match = sscanf( p+1, "%u", &bit ); - if( match == 0 ) - { - return; - } - if( bit > 7 ) { bit = 7; } - } - #endif -} - - - -CFindDialog::CFindDialog( TQWidget *parent, const char *name, bool modal ) - :KDialogBase( Plain, i18n("Find"), Ok|Cancel, Ok, parent, name, modal ) -{ - - TQVBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - TQVBoxLayout *vbox = new TQVBoxLayout(); - if( vbox == 0 ) { return; } - topLayout->addLayout( vbox ); - - mSelector = new TQComboBox( false, plainPage() ); - if( mSelector == 0 ) { return; } - mSelector->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mSelector->insertStringList( formatStrings() ); - connect( mSelector, TQT_SIGNAL(activated(int)), TQT_SLOT(selectorChanged(int)) ); - - TQLabel *label = new TQLabel( mSelector, i18n("Fo&rmat:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mSelector ); - - mInput = new TQLineEdit( plainPage() ); - if( mInput == 0 ) { return; } - mInput->setMinimumWidth( fontMetrics().maxWidth()*17 ); - connect( mInput, TQT_SIGNAL(textChanged(const TQString&)), - TQT_SLOT(inputChanged(const TQString&)) ); - mFindValidator = new CHexValidator( this, CHexValidator::regularText ); - if( mFindValidator == 0 ) { return; } - mInput->setValidator( mFindValidator ); - - label = new TQLabel( mInput, i18n("F&ind:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mInput ); - - TQButtonGroup *group = new TQButtonGroup( i18n("Options"), plainPage() ); - if( group == 0 ) { return; } - topLayout->addWidget( group, 10 ); - - TQGridLayout *gbox = new TQGridLayout( group, 5, 2, spacingHint() ); - if( gbox == 0 ) { return; } - gbox->addRowSpacing( 0, fontMetrics().lineSpacing() ); - - mCheckFromCursor = new TQCheckBox( i18n("&From cursor"), group ); - gbox->addWidget( mCheckFromCursor, 1, 0 ); - mCheckBackward = new TQCheckBox( i18n("&Backwards"), group ); - gbox->addWidget( mCheckBackward, 1, 1 ); - mCheckInSelection = new TQCheckBox( i18n("&In selection"), group ); - gbox->addWidget( mCheckInSelection, 2, 0 ); - mCheckUseNavigator = new TQCheckBox( i18n("&Use navigator"),group); - gbox->addWidget( mCheckUseNavigator, 2, 1 ); - mCheckIgnoreCase = new TQCheckBox( i18n("Ignore c&ase"),group); - gbox->addWidget( mCheckIgnoreCase, 3, 0 ); - gbox->setRowStretch( 4, 10 ); - - TDEConfig &config = *kapp->config(); - config.setGroup("Find Dialog"); - mCheckFromCursor->setChecked( config.readBoolEntry( "FromCursor", true ) ); - mCheckInSelection->setChecked( config.readBoolEntry( "InSelection", false) ); - mCheckIgnoreCase->setChecked( config.readBoolEntry( "IgnoreCase", false ) ); - mCheckBackward->setChecked( config.readBoolEntry( "Backwards", false ) ); - mCheckUseNavigator->setChecked( config.readBoolEntry( "UseNavigator", true)); - uint val = config.readUnsignedNumEntry( "Format", 0 ); - mSelector->setCurrentItem(TQMIN(4,val) ); - selectorChanged( mSelector->currentItem() ); - enableButtonOK(!mInput->text().isEmpty()); -} - - -CFindDialog::~CFindDialog( void ) -{ - TDEConfig &config = *kapp->config(); - config.setGroup("Find Dialog"); - config.writeEntry( "FromCursor", mCheckFromCursor->isChecked() ); - config.writeEntry( "InSelection", mCheckInSelection->isChecked() ); - config.writeEntry( "IgnoreCase", mCheckIgnoreCase->isChecked() ); - config.writeEntry( "Backwards", mCheckBackward->isChecked() ); - config.writeEntry( "UseNavigator", mCheckUseNavigator->isChecked() ); - config.writeEntry( "Format", mSelector->currentItem() ); - config.sync(); -} - - -void CFindDialog::selectorChanged( int index ) -{ - mFindValidator->setState( (CHexValidator::EState)index ); - mInput->setText( mFindString[ index ] ); - mCheckIgnoreCase->setEnabled( index == 4 ); -} - - -void CFindDialog::inputChanged( const TQString &text ) -{ - mFindString[ mSelector->currentItem() ] = text; - mFindValidator->convert( mFindData, - mFindString[ mSelector->currentItem() ] ); - enableButtonOK(!text.isEmpty()); -} - - -void CFindDialog::showEvent( TQShowEvent *e ) -{ - KDialogBase::showEvent(e); - mInput->setFocus(); -} - - -bool CFindDialog::isEmpty( void ) -{ - return( mFindData.isEmpty() ); -} - - -void CFindDialog::slotOk( void ) -{ - if( isEmpty() == true ) - { - showEntryFailure( this, TQString("") ); - return; - } - - SSearchControl sc; - sc.key = mFindData; - sc.keyType = mSelector->currentItem(); - sc.fromCursor = mCheckFromCursor->isChecked(); - sc.inSelection = mCheckInSelection->isChecked(); - sc.forward = mCheckBackward->isChecked() == true ? false : true; - sc.ignoreCase = mCheckIgnoreCase->isEnabled() && mCheckIgnoreCase->isChecked(); - - hide(); - emit findData( sc, Find_First, mCheckUseNavigator->isChecked() ); -} - - -void CFindDialog::findAgain( EOperation operation ) -{ - if( isEmpty() == true ) - { - showEntryFailure( this, TQString("") ); - return; - } - - SSearchControl sc; - sc.key = mFindData; - sc.fromCursor = true; - sc.inSelection = mCheckInSelection->isChecked(); - sc.ignoreCase = mCheckIgnoreCase->isEnabled() && mCheckIgnoreCase->isChecked(); - if( operation == find_Next ) - { - sc.forward = true; - } - else if( operation == find_Previous ) - { - sc.forward = false; - } - else - { - sc.forward = mCheckBackward->isChecked() == true ? false : true; - } - - hide(); - emit findData( sc, Find_Next, false ); -} - - - -CFindNavigatorDialog::CFindNavigatorDialog( TQWidget *parent, const char *name, - bool modal ) - :KDialogBase( Plain, i18n("Find (Navigator)"), User3|User2|User1|Close, - User2, parent, name, modal, true, i18n("New &Key"), - i18n("&Next"), i18n("&Previous") ) -{ - TQString text; - TQBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - topLayout->addSpacing( spacingHint() ); // A little bit extra space - - TQHBoxLayout *hbox = new TQHBoxLayout(); - if( hbox == 0 ) { return; } - topLayout->addLayout( hbox ); - - text = i18n("Searching for:"); - TQLabel *label = new TQLabel( text, plainPage() ); - hbox->addWidget( label ); - - mKey = new TQLineEdit( plainPage() ); - mKey->setMinimumWidth( fontMetrics().width("M") * 20 ); - mKey->setFocusPolicy( TQ_NoFocus ); - hbox->addWidget( mKey ); - - topLayout->addSpacing( spacingHint() ); // A little bit extra space - topLayout->addStretch(10); -} - - -CFindNavigatorDialog::~CFindNavigatorDialog( void ) -{ -} - - -void CFindNavigatorDialog::defineData( SSearchControl &sc ) -{ - mSearchControl = sc; - mSearchControl.key.duplicate( sc.key ); - - if( mSearchControl.key.isEmpty() == true ) - { - mKey->setText(""); - return; - } - - if( mSearchControl.keyType == 0 ) - { - TQString str; - for( uint i=0; i<mSearchControl.key.size(); i++ ) - { - str += mSearchControl.key[i]; - } - mKey->setText( str ); - - } - else if( mSearchControl.keyType == 1 ) - { - TQString str("0x "); - for( uint i=0; i<mSearchControl.key.size(); i++ ) - { - str += TQString().sprintf("%02X ", (unsigned char)mSearchControl.key[i]); - } - mKey->setText( str ); - } - else if( mSearchControl.keyType == 2 ) - { - TQString str; - for( uint i=0; i<mSearchControl.key.size(); i++ ) - { - str += TQString().sprintf("%03o ", (unsigned char)mSearchControl.key[i]); - } - mKey->setText( str ); - } - else - { - char buf[10]; - memset( buf, 0, sizeof( buf ) ); buf[8] = ' '; - - TQString str; - for( uint i=0; i<mSearchControl.key.size(); i++ ) - { - unsigned char data = (unsigned char)mSearchControl.key[i]; - for( int j = 0; j < 8; j++ ) - { - buf[7-j] = (data&(1<<j)) ? '1' : '0'; - } - str += buf; - } - mKey->setText( str ); - } -} - - -void CFindNavigatorDialog::slotUser3( void ) // Previous -{ - done( repPrevious ); -} - - -void CFindNavigatorDialog::slotUser2( void ) // Next -{ - done( repNext ); -} - - -void CFindNavigatorDialog::slotUser1( void ) // New key -{ - done( repNewKey ); -} - - -void CFindNavigatorDialog::slotClose( void ) -{ - done( repClose ); -} - - -void CFindNavigatorDialog::done( int resultCode ) -{ - setResult( resultCode ); - if( resultCode == repClose || resultCode == repNewKey ) - { - if( resultCode == repNewKey ) - { - emit makeKey(); - } - hide(); - return; - } - - mSearchControl.forward = resultCode == repNext ? true : false; - emit findData( mSearchControl, Find_Next, true ); -} - - - - -CReplaceDialog::CReplaceDialog( TQWidget *parent, const char *name, bool modal ) - :KDialogBase( Plain, i18n("Find & Replace"), Ok|Cancel, Ok, - parent, name, modal ) -{ - TQString text; - TQVBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - TQVBoxLayout *vbox = new TQVBoxLayout(); - if( vbox == 0 ) { return; } - topLayout->addLayout( vbox ); - - - mFindSelector = new TQComboBox( false, plainPage() ); - if( mFindSelector == 0 ) { return; } - mFindSelector->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mFindSelector->insertStringList( formatStrings() ); - connect( mFindSelector, TQT_SIGNAL(activated(int)), - TQT_SLOT(findSelectorChanged(int)) ); - - text = i18n("Fo&rmat (find):"); - TQLabel *label = new TQLabel( mFindSelector, text, plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mFindSelector ); - - mFindInput = new TQLineEdit( plainPage() ); - if( mFindInput == 0 ) { return; } - mFindInput->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mFindValidator = new CHexValidator( this, CHexValidator::regularText ); - if( mFindValidator == 0 ) { return; } - mFindInput->setValidator( mFindValidator ); - connect( mFindInput, TQT_SIGNAL(textChanged(const TQString&)), - TQT_SLOT(findInputChanged(const TQString&)) ); - - label = new TQLabel( mFindInput, i18n("F&ind:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mFindInput ); - - mReplaceSelector = new TQComboBox( false, plainPage() ); - if( mReplaceSelector == 0 ) { return; } - mReplaceSelector->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mReplaceSelector->insertStringList( formatStrings() ); - connect( mReplaceSelector, TQT_SIGNAL(activated(int)), - TQT_SLOT(replaceSelectorChanged(int)) ); - - text = i18n("For&mat (replace):"); - label = new TQLabel( mReplaceSelector, text, plainPage() ); - if( label == 0 ) { return; } - label->setFixedHeight( label->sizeHint().height() ); - - vbox->addWidget( label ); - vbox->addWidget( mReplaceSelector ); - - mReplaceInput = new TQLineEdit( plainPage() ); - if( mReplaceInput == 0 ) { return; } - mReplaceInput->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mReplaceValidator = new CHexValidator( this, CHexValidator::regularText ); - if( mReplaceValidator == 0 ) { return; } - mReplaceInput->setValidator( mReplaceValidator ); - connect( mReplaceInput, TQT_SIGNAL(textChanged(const TQString&)), - TQT_SLOT(replaceInputChanged(const TQString&)) ); - - label = new TQLabel( mReplaceInput, i18n("Rep&lace:"), plainPage() ); - if( label == 0 ) { return; } - label->setFixedHeight( label->sizeHint().height() ); - - vbox->addWidget( label ); - vbox->addWidget( mReplaceInput ); - - TQButtonGroup *group = new TQButtonGroup( i18n("Options"), plainPage() ); - if( group == 0 ) { return; } - topLayout->addWidget( group, 10 ); - - TQGridLayout *gbox = new TQGridLayout( group, 5, 2, spacingHint() ); - if( gbox == 0 ) { return; } - gbox->addRowSpacing( 0, fontMetrics().lineSpacing() ); - mCheckFromCursor = new TQCheckBox( i18n("&From cursor"), group ); - gbox->addWidget( mCheckFromCursor, 1, 0 ); - mCheckBackward = new TQCheckBox( i18n("&Backwards"), group ); - gbox->addWidget( mCheckBackward, 1, 1 ); - mCheckInSelection = new TQCheckBox( i18n("&In selection"), group ); - gbox->addWidget( mCheckInSelection, 2, 0 ); - mCheckPrompt = new TQCheckBox( i18n("&Prompt"), group ); - gbox->addWidget( mCheckPrompt, 2, 1 ); - mCheckIgnoreCase = new TQCheckBox( i18n("Ignore c&ase"), group ); - gbox->addWidget( mCheckIgnoreCase, 3, 0 ); - gbox->setRowStretch( 4, 10 ); - - TDEConfig &config = *kapp->config(); - config.setGroup("Replace Dialog"); - mCheckFromCursor->setChecked( config.readBoolEntry( "FromCursor", true ) ); - mCheckInSelection->setChecked( config.readBoolEntry( "InSelection", false) ); - mCheckIgnoreCase->setChecked( config.readBoolEntry( "IgnoreCase", false ) ); - mCheckBackward->setChecked( config.readBoolEntry( "Backwards", false ) ); - mCheckPrompt->setChecked( config.readBoolEntry( "Prompt", true)); - uint val = config.readUnsignedNumEntry( "FindFormat", 0 ); - mFindSelector->setCurrentItem(TQMIN(4,val) ); - findSelectorChanged( mFindSelector->currentItem() ); - val = config.readUnsignedNumEntry( "ReplaceFormat", 0 ); - mReplaceSelector->setCurrentItem(TQMIN(4,val) ); - replaceSelectorChanged( mReplaceSelector->currentItem() ); - enableButtonOK(!mFindInput->text().isEmpty()); -} - - -CReplaceDialog::~CReplaceDialog( void ) -{ - TDEConfig &config = *kapp->config(); - config.setGroup("Replace Dialog"); - config.writeEntry( "FromCursor", mCheckFromCursor->isChecked() ); - config.writeEntry( "InSelection", mCheckInSelection->isChecked() ); - config.writeEntry( "IgnoreCase", mCheckIgnoreCase->isChecked() ); - config.writeEntry( "Backwards", mCheckBackward->isChecked() ); - config.writeEntry( "Prompt", mCheckPrompt->isChecked() ); - config.writeEntry( "FindFormat", mFindSelector->currentItem() ); - config.writeEntry( "ReplaceFormat", mReplaceSelector->currentItem() ); - config.sync(); -} - - -void CReplaceDialog::findSelectorChanged( int index ) -{ - mFindValidator->setState( (CHexValidator::EState)index ); - mFindInput->setText( mFindString[ index ] ); - mCheckIgnoreCase->setEnabled( index == 4 ); -} - - -void CReplaceDialog::findInputChanged( const TQString &text ) -{ - mFindString[ mFindSelector->currentItem() ] = text; - mFindValidator->convert( mFindData, - mFindString[ mFindSelector->currentItem() ] ); - enableButtonOK(!text.isEmpty()); -} - - -void CReplaceDialog::replaceSelectorChanged( int index ) -{ - mReplaceValidator->setState( (CHexValidator::EState)index ); - mReplaceInput->setText( mReplaceString[ index ] ); -} - - -void CReplaceDialog::replaceInputChanged( const TQString &text ) -{ - mReplaceString[ mReplaceSelector->currentItem() ] = text; - mReplaceValidator->convert( mReplaceData, - mReplaceString[ mReplaceSelector->currentItem() ] ); -} - - -void CReplaceDialog::showEvent( TQShowEvent *e ) -{ - KDialogBase::showEvent(e); - mFindInput->setFocus(); -} - - -void CReplaceDialog::slotOk( void ) -{ - if( mFindData.isEmpty() == true ) - { - showEntryFailure( this, TQString("") ); - return; - } - - if( mFindData == mReplaceData ) - { - showEntryFailure( this,i18n("Source and target values can not be equal.")); - return; - } - - hide(); - - SSearchControl sc; - sc.key = mFindData; - sc.val = mReplaceData; - sc.fromCursor = mCheckFromCursor->isChecked(); - sc.inSelection = mCheckInSelection->isChecked(); - sc.forward = mCheckBackward->isChecked() == true ? false : true; - - sc.ignoreCase = mCheckIgnoreCase->isEnabled() && mCheckIgnoreCase->isChecked(); - - emit replaceData( sc, mCheckPrompt->isChecked() ? Replace_First: Replace_AllInit ); -} - - - - - -CReplacePromptDialog::CReplacePromptDialog( TQWidget *parent, const char *name, - bool modal ) - :KDialogBase( Plain, i18n("Find & Replace"), User3|User2|User1|Close, - User2, parent, name, modal, true, i18n("Replace &All"), - i18n("Do Not Replace"), i18n("Replace")) -{ - TQString text; - TQBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - topLayout->addSpacing( spacingHint() ); // A little bit extra space - - text = i18n("Replace marked data at cursor position?"); - TQLabel* label = new TQLabel( text, plainPage() ); - topLayout->addWidget( label ); - - topLayout->addSpacing( spacingHint() ); // A little bit extra space - topLayout->addStretch(10); -} - - -CReplacePromptDialog::~CReplacePromptDialog( void ) -{ -} - - -void CReplacePromptDialog::defineData( SSearchControl &sc ) -{ - mSearchControl = sc; - mSearchControl.key.duplicate( sc.key ); - mSearchControl.val.duplicate( sc.val ); -} - - -void CReplacePromptDialog::slotUser3( void ) -{ - done( repYes ); -} - - -void CReplacePromptDialog::slotUser2( void ) -{ - done( repNo ); -} - - -void CReplacePromptDialog::slotUser1( void ) -{ - done( repAll ); -} - - -void CReplacePromptDialog::slotClose( void ) -{ - done( repClose ); -} - - -void CReplacePromptDialog::done( int returnCode ) -{ - if( returnCode == repClose ) - { - hide(); - } - else if( returnCode == repYes ) - { - emit replaceData( mSearchControl, Replace_Next ); - } - else if( returnCode == repNo ) - { - emit replaceData( mSearchControl, Replace_Ignore ); - } - else - { - emit replaceData( mSearchControl, Replace_All ); - } -} - - - - -CFilterDialog::CFilterDialog( TQWidget *parent, const char *name, bool modal ) - :KDialogBase( Plain, i18n("Binary Filter"), Ok|Cancel, Ok, - parent, name, modal ) -{ - TQString text; - TQVBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - TQVBoxLayout *vbox = new TQVBoxLayout(); - if( vbox == 0 ) { return; } - topLayout->addLayout( vbox ); - - - mOperationSelector = new TQComboBox( false, plainPage() ); - if( mOperationSelector == 0 ) { return; } - mOperationSelector->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mOperationSelector->insertStringList( operationStrings() ); - connect( mOperationSelector, TQT_SIGNAL(activated(int)), - TQT_SLOT(operationSelectorChanged(int)) ); - - text = i18n("O&peration:"); - TQLabel *label = new TQLabel( mOperationSelector, text, plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mOperationSelector ); - - KSeparator *separator = new KSeparator( plainPage() ); - separator->setOrientation( TQFrame::HLine ); - vbox->addWidget( separator ); - - - mWidgetStack = new TQWidgetStack( plainPage(), "pagestack" ); - if( mWidgetStack == 0 ) { return; } - vbox->addWidget( mWidgetStack ); - - makeEmptyLayout(); - makeOperandLayout(); - makeBitSwapLayout(); - makeRotateLayout(); - mWidgetStack->raiseWidget( (int)OperandPage ); - - - TQButtonGroup *group = new TQButtonGroup( i18n("Options"), plainPage() ); - if( group == 0 ) { return; } - topLayout->addWidget( group, 10 ); - - TQGridLayout *gbox = new TQGridLayout( group, 4, 2, spacingHint() ); - if( gbox == 0 ) { return; } - gbox->addRowSpacing( 0, fontMetrics().lineSpacing() ); - mCheckFromCursor = new TQCheckBox( i18n("&From cursor"), group ); - gbox->addWidget( mCheckFromCursor, 1, 0 ); - mCheckBackward = new TQCheckBox( i18n("&Backwards"), group ); - gbox->addWidget( mCheckBackward, 1, 1 ); - mCheckInSelection = new TQCheckBox( i18n("&In selection"), group ); - gbox->addWidget( mCheckInSelection, 2, 0 ); - mCheckVisible = new TQCheckBox( i18n("&Stay visible"), group ); - gbox->addWidget( mCheckVisible, 2, 1 ); - gbox->setRowStretch( 3, 10 ); -} - - -CFilterDialog::~CFilterDialog( void ) -{ - delete mOperandValidator; -} - - -void CFilterDialog::makeEmptyLayout( void ) -{ - TQFrame *page = new TQFrame( plainPage() ); - if( page == 0 ) { return; } - mWidgetStack->addWidget( page, EmptyPage ); -} - - -void CFilterDialog::makeOperandLayout( void ) -{ - TQString text; - - TQFrame *page = new TQFrame( plainPage() ); - if( page == 0 ) { return; } - mWidgetStack->addWidget( page, OperandPage ); - - TQVBoxLayout *vbox = new TQVBoxLayout( page, 0, spacingHint() ); - if( vbox == 0 ) { return; } - - mOperandSelector = new TQComboBox( false, page ); - if( mOperandSelector == 0 ) { return; } - mOperandSelector->setFixedHeight( mOperandSelector->sizeHint().height()); - mOperandSelector->setMinimumWidth( fontMetrics().width("M")*20 ); - mOperandSelector->insertStringList( formatStrings() ); - connect( mOperandSelector, TQT_SIGNAL(activated(int)), - TQT_SLOT(operandSelectorChanged(int)) ); - - text = i18n("Fo&rmat (operand):"); - mOperandFormatLabel = new TQLabel( mOperandSelector, text, page ); - if( mOperandFormatLabel == 0 ) { return; } - - vbox->addWidget( mOperandFormatLabel ); - vbox->addWidget( mOperandSelector ); - - mOperandInput = new TQLineEdit( page ); - if( mOperandInput == 0 ) { return; } - mOperandInput->setMinimumWidth( fontMetrics().width("M") * 20 ); - mOperandValidator = new CHexValidator( this, CHexValidator::regularText ); - if( mOperandValidator == 0 ) { return; } - mOperandInput->setValidator( mOperandValidator ); - connect( mOperandInput, TQT_SIGNAL(textChanged(const TQString&)), - TQT_SLOT(operandInputChanged(const TQString&)) ); - - mOperandInputLabel = new TQLabel( mOperandInput, i18n("O&perand:"), page ); - if( mOperandInputLabel == 0 ) { return; } - - vbox->addWidget( mOperandInputLabel ); - vbox->addWidget( mOperandInput ); - vbox->addSpacing( 1 ); -} - - -void CFilterDialog::makeBitSwapLayout( void ) -{ - TQString text; - - TQFrame *page = new TQFrame( plainPage() ); - if( page == 0 ) { return; } - mWidgetStack->addWidget( page, BitSwapPage ); - - TQVBoxLayout *vbox = new TQVBoxLayout( page, 0, spacingHint() ); - if( vbox == 0 ) { return; } - - text = i18n("Swap rule"); - TQLabel *label = new TQLabel( text, page ); - if( label == 0 ) { return; } - label->setFixedHeight( label->sizeHint().height() ); - vbox->addWidget( label ); - - mByteWidget = new CByteWidget( page ); - vbox->addWidget( mByteWidget ); - - TQHBoxLayout *hbox = new TQHBoxLayout( 0 ); - vbox->addLayout( hbox ); - - text = i18n("&Reset"); - TQPushButton *resetButton = new TQPushButton( text, page ); - resetButton->setFixedHeight( resetButton->sizeHint().height() ); - connect( resetButton, TQT_SIGNAL(clicked()), mByteWidget, TQT_SLOT(reset()) ); - - hbox->addWidget( resetButton ); - hbox->addStretch( 10 ); -} - - -void CFilterDialog::makeRotateLayout( void ) -{ - TQString text; - - TQFrame *page = new TQFrame( plainPage() ); - if( page == 0 ) { return; } - mWidgetStack->addWidget( page, RotatePage ); - - TQVBoxLayout *vbox = new TQVBoxLayout( page, 0, spacingHint() ); - if( vbox == 0 ) { return; } - - mGroupSpin = new TQSpinBox( page ); - if( mGroupSpin == 0 ) { return; } - mGroupSpin->setMinimumWidth( fontMetrics().width("M")*20 ); - mGroupSpin->setRange(1, INT_MAX ); - - text = i18n("&Group size [bytes]"); - TQLabel *label = new TQLabel( mGroupSpin, text, page ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mGroupSpin ); - - mBitSpin = new TQSpinBox( page ); - if( mBitSpin == 0 ) { return; } - mBitSpin->setMinimumWidth( fontMetrics().width("M")*20 ); - mBitSpin->setRange(INT_MIN, INT_MAX); - - text = i18n("S&hift size [bits]"); - label = new TQLabel( mBitSpin, text, page ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mBitSpin ); -} - - - -void CFilterDialog::showEvent( TQShowEvent *e ) -{ - KDialogBase::showEvent(e); - mOperandInput->setFocus(); -} - - - -void CFilterDialog::slotOk( void ) -{ - SFilterControl fc; - switch( mOperationSelector->currentItem() ) - { - case SFilterControl::OperandAndData: - case SFilterControl::OperandOrData: - case SFilterControl::OperandXorData: - if( mOperandData.isEmpty() == true ) - { - showEntryFailure( this, TQString("") ); - return; - } - fc.operand = mOperandData; - break; - - case SFilterControl::InvertData: - case SFilterControl::ReverseData: - break; - - case SFilterControl::RotateData: - case SFilterControl::ShiftData: - fc.rotate[0] = mGroupSpin->value(); - fc.rotate[1] = mBitSpin->value(); - if( fc.rotate[1] == 0 ) - { - TQString msg = i18n("Shift size is zero."); - showEntryFailure( this, msg ); - return; - } - break; - - case SFilterControl::SwapBits: - if( mByteWidget->flag( fc.operand ) == false ) - { - TQString msg = i18n("Swap rule does not define any swapping."); - showEntryFailure( this, msg ); - return; - } - break; - - default: - return; - break; - - } - - if( mCheckVisible->isChecked() == false ) - { - hide(); - } - - fc.operation = (SFilterControl::Operation)mOperationSelector->currentItem(); - fc.fromCursor = mCheckFromCursor->isChecked(); - fc.inSelection = mCheckInSelection->isChecked(); - if( mCheckBackward->isEnabled() == true ) - { - fc.forward = mCheckBackward->isChecked() == true ? false : true; - } - else - { - fc.forward = true; - } - - emit filterData( fc ); -} - - -void CFilterDialog::operandSelectorChanged( int index ) -{ - mOperandValidator->setState( (CHexValidator::EState)index ); - mOperandInput->setText( mOperandString[ index ] ); -} - - -void CFilterDialog::operandInputChanged( const TQString &text ) -{ - mOperandString[ mOperandSelector->currentItem() ] = text; - mOperandValidator->convert( mOperandData, - mOperandString[ mOperandSelector->currentItem() ] ); -} - - -void CFilterDialog::operationSelectorChanged( int index ) -{ - if( index <= 2 ) - { - mWidgetStack->raiseWidget( OperandPage ); - mCheckBackward->setEnabled( true ); - } - else if( index <= 4 ) - { - mWidgetStack->raiseWidget( EmptyPage ); - mCheckBackward->setEnabled( true ); - } - else if( index <= 6 ) - { - mWidgetStack->raiseWidget( RotatePage ); - mCheckBackward->setEnabled( false ); - } - else - { - mWidgetStack->raiseWidget( BitSwapPage ); - mCheckBackward->setEnabled( true ); - } -} - - - - -CInsertDialog::CInsertDialog( TQWidget *parent, const char *name, bool modal ) - :KDialogBase( Plain, i18n("Insert Pattern"), Ok|Cancel, Ok, - parent, name, modal ) -{ - setButtonOKText(i18n("&Insert")); - - TQString text; - TQVBoxLayout *topLayout = new TQVBoxLayout( plainPage(), 0, spacingHint() ); - if( topLayout == 0 ) { return; } - - TQVBoxLayout *vbox = new TQVBoxLayout(); - if( vbox == 0 ) { return; } - topLayout->addLayout( vbox ); - - mSizeBox = new TQSpinBox( plainPage() ); - if( mSizeBox == 0 ) { return; } - mSizeBox->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mSizeBox->setRange( 1, INT_MAX ); - mSizeBox->setValue( 1 ); - - TQLabel *label = new TQLabel( mSizeBox, i18n("&Size:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mSizeBox ); - - mPatternSelector = new TQComboBox( false, plainPage() ); - if( mPatternSelector == 0 ) { return; } - mPatternSelector->setMinimumWidth( fontMetrics().maxWidth()*17 ); - mPatternSelector->insertStringList( formatStrings() ); - connect( mPatternSelector, TQT_SIGNAL(activated(int)), - TQT_SLOT(patternSelectorChanged(int)) ); - - text = i18n("Fo&rmat (pattern):"); - label = new TQLabel( mPatternSelector, text, plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mPatternSelector ); - - mPatternInput = new TQLineEdit( 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, TQT_SIGNAL(textChanged(const TQString&)), - TQT_SLOT(patternInputChanged(const TQString&)) ); - - label = new TQLabel( mPatternInput, i18n("&Pattern:"), plainPage() ); - if( label == 0 ) { return; } - - vbox->addWidget( label ); - vbox->addWidget( mPatternInput ); - - mOffsetInput = new TQLineEdit( plainPage() ); - mOffsetInput->setMinimumWidth( fontMetrics().maxWidth()*17 ); - - mOffsetLabel = new TQLabel( mOffsetInput, i18n("&Offset:"), plainPage() ); - if( mOffsetLabel == 0 ) { return; } - - vbox->addWidget( mOffsetLabel ); - vbox->addWidget( mOffsetInput ); - - TQButtonGroup *group = new TQButtonGroup( i18n("Options"), plainPage() ); - if( group == 0 ) { return; } - topLayout->addWidget( group, 10 ); - - - TQGridLayout *gbox = new TQGridLayout( group, 4, 2, spacingHint() ); - if( gbox == 0 ) { return; } - gbox->addRowSpacing( 0, fontMetrics().lineSpacing() ); - - mCheckPattern = new TQCheckBox( i18n("R&epeat pattern"), group ); - gbox->addWidget( mCheckPattern, 1, 0 ); - mCheckOnCursor = new TQCheckBox( i18n("&Insert on cursor position"), group ); - gbox->addWidget( mCheckOnCursor, 2, 0 ); - connect( mCheckOnCursor, TQT_SIGNAL(clicked()), TQT_SLOT(cursorCheck()) ); - gbox->setRowStretch( 3, 10 ); - - TDEConfig &config = *kapp->config(); - config.setGroup("Insert Pattern Dialog"); - mCheckPattern->setChecked( config.readBoolEntry( "RepeatPattern", false ) ); - mCheckOnCursor->setChecked( config.readBoolEntry( "InsertOnCursor", false) ); - cursorCheck(); - uint val = config.readUnsignedNumEntry( "Format", 0 ); - mPatternSelector->setCurrentItem( TQMIN(4,val) ); - patternSelectorChanged( mPatternSelector->currentItem() ); -} - - -CInsertDialog::~CInsertDialog( void ) -{ - TDEConfig &config = *kapp->config(); - config.setGroup("Insert Pattern Dialog"); - config.writeEntry( "RepeatPattern", mCheckPattern->isChecked() ); - config.writeEntry( "InsertOnCursor", mCheckOnCursor->isChecked() ); - config.writeEntry( "Format", mPatternSelector->currentItem() ); - config.sync(); -} - - -void CInsertDialog::showEvent( TQShowEvent *e ) -{ - KDialogBase::showEvent(e); - mPatternInput->setFocus(); -} - - -void CInsertDialog::patternSelectorChanged( int index ) -{ - mPatternValidator->setState( (CHexValidator::EState)index ); - mPatternInput->setText( mPatternString[ index ] ); -} - - -void CInsertDialog::patternInputChanged( const TQString &text ) -{ - mPatternString[ mPatternSelector->currentItem() ] = text; - mPatternValidator->convert( mPatternData, - mPatternString[ mPatternSelector->currentItem() ] ); -} - - -void CInsertDialog::slotOk( void ) -{ - if( mPatternData.isEmpty() == true ) - { - showEntryFailure( this, TQString("") ); - 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, TQString("") ); - return; - } - } - - hide(); - execute( id ); -} - - -void CInsertDialog::cursorCheck( void ) -{ - bool state = mCheckOnCursor->isChecked() == true ? false : true; - mOffsetLabel->setEnabled( state ); - mOffsetInput->setEnabled( state ); -} - - - - -void centerDialog( TQWidget *widget, TQWidget *centerParent ) -{ - if( centerParent == 0 || widget == 0 ) - { - return; - } - - TQPoint point = centerParent->mapToGlobal( TQPoint(0,0) ); - TQRect pos = centerParent->geometry(); - - widget->setGeometry( point.x() + pos.width()/2 - widget->width()/2, - point.y() + pos.height()/2 - widget->height()/2, - widget->width(), widget->height() ); -} - - -void centerDialogBottom( TQWidget *widget, TQWidget *centerParent ) -{ - if( centerParent == 0 || widget == 0 ) - { - return; - } - - TQPoint point = centerParent->mapToGlobal( TQPoint(0,0) ); - TQRect pos = centerParent->geometry(); - - widget->setGeometry( point.x() + pos.width()/2 - widget->width()/2, - point.y() + pos.height() - widget->height(), - widget->width(), widget->height() ); -} - - -void comboMatchText( TQComboBox *combo, const TQString &text ) -{ - for( int i=0; i < combo->count(); i++ ) - { - if( combo->text(i) == text ) - { - combo->setCurrentItem(i); - return; - } - } - combo->setCurrentItem(0); -} - - - - - -void showEntryFailure( TQWidget *parent, const TQString &msg ) -{ - TQString message; - message += i18n("Your request can not be processed."); - message += "\n"; - if( msg.isNull() == true || msg.isEmpty() == true ) - { - message += i18n("Examine argument(s) and try again."); - } - else - { - message += msg; - } - KMessageBox::sorry( parent, message, i18n("Invalid argument(s)") ); -} - - -bool verifyFileDestnation( TQWidget *parent, const TQString &title, - const TQString &path ) -{ - if( path.isEmpty() == true ) - { - TQString msg = i18n("You must specify a destination file."); - KMessageBox::sorry( parent, msg, title ); - return( false ); - } - - TQFileInfo info( path ); - if( info.exists() == true ) - { - if( info.isDir() == true ) - { - TQString msg = i18n("You have specified an existing folder."); - KMessageBox::sorry( parent, msg, title ); - return( false ); - } - - if( info.isWritable() == false ) - { - TQString msg = i18n("You do not have write permission to this file."); - KMessageBox::sorry( parent, msg, title ); - return( false ); - } - - TQString msg = i18n( "" - "You have specified an existing file.\n" - "Overwrite current file?" ); - int reply = KMessageBox::warningContinueCancel( parent, msg, title, i18n("Overwrite") ); - if( reply != KMessageBox::Continue ) - { - return( false ); - } - } - - return( true ); -} - - - -bool stringToOffset( const TQString & text, uint &offset ) -{ - if( text.isEmpty() ) - { - return( false ); - } - - const char * p = text.ascii(); // ####: Is this correct? - - // - // Skip any whitespaces in front of string - // - for( ; *p != 0 && isspace( *p ) ; p++ ); - - int match = 0; - bool space = false; - if( strncmp( p, "0x", 2 ) == 0 || strncmp( p, "0X", 2 ) == 0 ) - { - for( const char *q = p+2; *q != 0; q++ ) - { - if( isxdigit( *q ) == 0 || space == true ) - { - if( isspace( *q ) == 0 ) - { - return( false ); - } - space = true; - } - } - match = sscanf( p+2, "%x", &offset ); - } - else - { - for( const char *q = p; *q != 0; q++ ) - { - if( isdigit( *q ) == 0 || space == true ) - { - if( isspace( *q ) == 0 ) - { - return( false ); - } - space = true; - } - } - match = sscanf( p, "%u", &offset ); - } - - if( match == 0 ) - { - return( false ); - } - - return( true ); -} - - -static const TQStringList &formatStrings( void ) -{ - static TQStringList list; - if( list.isEmpty() == true ) - { - list.append( i18n( "Hexadecimal" ) ); - list.append( i18n( "Decimal" ) ); - list.append( i18n( "Octal" ) ); - list.append( i18n( "Binary" ) ); - list.append( i18n( "Regular Text" ) ); - } - return( list ); -} - - -static const TQStringList &operationStrings( void ) -{ - static TQStringList list; - if( list.isEmpty() == true ) - { - list.append( i18n( "operand AND data" ) ); - list.append( i18n( "operand OR data" ) ); - list.append( i18n( "operand XOR data" ) ); - list.append( i18n( "INVERT data" ) ); - list.append( i18n( "REVERSE data" ) ); - list.append( i18n( "ROTATE data" ) ); - list.append( i18n( "SHIFT data" ) ); - list.append( i18n( "Swap Individual Bits" ) ); - } - - return( list ); -} - - - - - -#include "dialog.moc" |