? kdelogo.xpm ? kmail.patch Index: accountdialog.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/accountdialog.cpp,v retrieving revision 1.28 diff -u -p -B -w -r1.28 accountdialog.cpp --- accountdialog.cpp 2001/03/06 21:46:08 1.28 +++ accountdialog.cpp 2001/03/24 19:05:04 @@ -558,6 +558,7 @@ void AccountDialog::setupSettings() KMAcctLocal *acctLocal = dynamic_cast(mAccount); mLocal.nameEdit->setText( mAccount->name() ); + mLocal.nameEdit->setFocus(); mLocal.locationEdit->setEditText( acctLocal->location() ); if (acctLocal->mLock == mutt_dotlock) mLocal.lockMutt->setChecked(true); @@ -584,6 +585,7 @@ void AccountDialog::setupSettings() { KMAcctExpPop &ap = *(KMAcctExpPop*)mAccount; mPop.nameEdit->setText( mAccount->name() ); + mPop.nameEdit->setFocus(); mPop.loginEdit->setText( ap.login() ); mPop.passwordEdit->setText( ap.passwd()); mPop.hostEdit->setText( ap.host() ); @@ -604,6 +606,7 @@ void AccountDialog::setupSettings() { KMAcctImap &ai = *(KMAcctImap*)mAccount; mImap.nameEdit->setText( mAccount->name() ); + mImap.nameEdit->setFocus(); mImap.loginEdit->setText( ai.login() ); mImap.passwordEdit->setText( ai.passwd()); mImap.hostEdit->setText( ai.host() ); Index: addtoaddressbook.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/addtoaddressbook.cpp,v retrieving revision 1.6 diff -u -p -B -w -r1.6 addtoaddressbook.cpp --- addtoaddressbook.cpp 2000/08/06 17:01:55 1.6 +++ addtoaddressbook.cpp 2001/03/24 19:05:04 @@ -88,6 +88,16 @@ AddToKabDialog::~AddToKabDialog() { } +void AddToKabDialog::show() +{ + // no need to ask the user whether to "select" or "create" an entry, + // when there is nothing to select. + if (list->count() == 0) + newEntry(); + else + KDialogBase::show(); +} + void AddToKabDialog::addToEntry() { KabKey key; @@ -184,6 +194,7 @@ void AddToKabDialog::newEntry() layout.addWidget(lineedits[count], row, 1); ++row; } + lineedits[0]->setFocus(); lineedits[2]->setText(url.mid(0, 255)); // "mailto:" is already chopped dialog.setMainWidget(mainwidget); dialog.adjustSize(); Index: addtoaddressbook.h =================================================================== RCS file: /home/kde/kdenetwork/kmail/addtoaddressbook.h,v retrieving revision 1.1 diff -u -p -B -w -r1.1 addtoaddressbook.h --- addtoaddressbook.h 2000/05/13 21:49:55 1.1 +++ addtoaddressbook.h 2001/03/24 19:05:04 @@ -39,6 +39,9 @@ class AddToKabDialog : public KDialogBas public: AddToKabDialog(QString url, KabAPI *, QWidget *parent); ~AddToKabDialog(); + + virtual void show(); + protected slots: /** Create a new entry and add it to the address book. */ void newEntry(); Index: configuredialog.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/configuredialog.cpp,v retrieving revision 1.88 diff -u -p -B -w -r1.88 configuredialog.cpp --- configuredialog.cpp 2001/03/21 10:49:03 1.88 +++ configuredialog.cpp 2001/03/24 19:05:06 @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -61,12 +62,14 @@ #include #include #include +#include #include #include "accountdialog.h" #include "colorlistbox.h" #include "configuredialog.h" +#include "kbusyptr.h" #include "kmaccount.h" #include "kmacctmgr.h" #include "kmacctseldlg.h" @@ -202,6 +205,7 @@ NewIdentityDialog::NewIdentityDialog( QW glay->addWidget( label, 0, 0 ); mLineEdit = new QLineEdit( page ); + mLineEdit->setFocus(); glay->addWidget( mLineEdit, 0, 1 ); QButtonGroup *buttonGroup = new QButtonGroup( page ); @@ -617,15 +621,13 @@ void ConfigureDialog::makeIdentityPage( mIdentity.signatureFileLabel = new QLabel( i18n("Signature File:"), page ); glay->addWidget( mIdentity.signatureFileLabel, 8, 0 ); - mIdentity.signatureFileEdit = new QLineEdit( page ); + mIdentity.signatureFileEdit = new KURLRequester( page ); + QPushButton *button = mIdentity.signatureFileEdit->button(); + button->setText( i18n("Choose...") ); + button->setAutoDefault( false ); connect( mIdentity.signatureFileEdit, SIGNAL(textChanged(const QString &)), this, SLOT( slotSignatureFile(const QString &)) ); - glay->addWidget( mIdentity.signatureFileEdit, 8, 1 ); - mIdentity.signatureBrowseButton = new QPushButton( i18n("Choose..."), page ); - connect( mIdentity.signatureBrowseButton, SIGNAL(clicked()), - this, SLOT(slotSignatureChooser()) ); - mIdentity.signatureBrowseButton->setAutoDefault( false ); - glay->addWidget( mIdentity.signatureBrowseButton, 8, 2 ); + glay->addMultiCellWidget( mIdentity.signatureFileEdit, 8, 8, 1, 2 ); mIdentity.signatureExecCheck = new QCheckBox( i18n("The file is a program"), page ); @@ -635,6 +637,7 @@ void ConfigureDialog::makeIdentityPage( this, SLOT(slotSignatureEdit()) ); mIdentity.signatureEditButton->setAutoDefault( false ); glay->addWidget( mIdentity.signatureEditButton, 9, 2 ); + button->setMinimumSize( mIdentity.signatureEditButton->sizeHint() ); mIdentity.signatureTextRadio = new QRadioButton( i18n("Specify signature below"), page ); @@ -2250,7 +2253,7 @@ void ConfigureDialog::slotDoApply( bool // Make other components read the new settings // KMMessage::readConfig(); - + kernel->kbp()->busy(); // this can take some time when a large folder is open QListIterator it(*KMainWindow::memberList); for( it.toFirst(); it.current(); ++it ) { @@ -2259,7 +2262,7 @@ void ConfigureDialog::slotDoApply( bool ((KMTopLevelWidget*)it.current())->readConfig(); } } - + kernel->kbp()->idle(); } @@ -2277,7 +2280,7 @@ void ConfigureDialog::saveActiveIdentity entry->setPgpIdentity( mIdentity.pgpIdentityEdit->text() ); entry->setEmailAddress( mIdentity.emailEdit->text() ); entry->setReplyToAddress( mIdentity.replytoEdit->text() ); - entry->setSignatureFileName( mIdentity.signatureFileEdit->text() ); + entry->setSignatureFileName( mIdentity.signatureFileEdit->url() ); entry->setSignatureInlineText( mIdentity.signatureTextEdit->text() ); entry->setSignatureFileIsAProgram( mIdentity.signatureExecCheck->isChecked() ); @@ -2307,14 +2310,14 @@ void ConfigureDialog::setIdentityInforma IdentityEntry *entry = mIdentityList.get( mIdentity.mActiveIdentity ); if( entry == 0 ) { - mIdentity.nameEdit->setText(""); - mIdentity.organizationEdit->setText(""); - mIdentity.pgpIdentityEdit->setText(""); - mIdentity.emailEdit->setText(""); - mIdentity.replytoEdit->setText(""); - mIdentity.signatureFileEdit->setText(""); + mIdentity.nameEdit->clear(); + mIdentity.organizationEdit->clear(); + mIdentity.pgpIdentityEdit->clear(); + mIdentity.emailEdit->clear(); + mIdentity.replytoEdit->clear(); + mIdentity.signatureFileEdit->clear(); mIdentity.signatureExecCheck->setChecked( false ); - mIdentity.signatureTextEdit->setText( "" ); + mIdentity.signatureTextEdit->clear(); useSignatureFile = true; } else @@ -2324,7 +2327,7 @@ void ConfigureDialog::setIdentityInforma mIdentity.pgpIdentityEdit->setText( entry->pgpIdentity() ); mIdentity.emailEdit->setText( entry->emailAddress() ); mIdentity.replytoEdit->setText( entry->replyToAddress() ); - mIdentity.signatureFileEdit->setText( entry->signatureFileName() ); + mIdentity.signatureFileEdit->setURL( entry->signatureFileName() ); mIdentity.signatureExecCheck->setChecked(entry->signatureFileIsAProgram()); mIdentity.signatureTextEdit->setText( entry->signatureInlineText() ); useSignatureFile = entry->useSignatureFile(); @@ -2502,7 +2505,6 @@ void ConfigureDialog::slotSignatureType( mIdentity.signatureFileLabel->setEnabled( flag ); mIdentity.signatureFileEdit->setEnabled( flag ); mIdentity.signatureExecCheck->setEnabled( flag ); - mIdentity.signatureBrowseButton->setEnabled( flag ); if( flag==true ) { mIdentity.signatureEditButton->setEnabled( @@ -2516,30 +2518,12 @@ void ConfigureDialog::slotSignatureType( } -void ConfigureDialog::slotSignatureChooser( void ) +void ConfigureDialog::slotSignatureChooser( KURLRequester *req ) { - KFileDialog *d = new KFileDialog( QDir::homeDirPath(), "*", this, 0, true ); - d->setCaption(i18n("Choose Signature File")); + if ( req->url().isEmpty() ) + req->fileDialog()->setURL( QDir::homeDirPath() ); - if( d->exec() == QDialog::Accepted ) - { - KURL url = d->selectedURL(); - if( url.isEmpty() == true ) - { - delete d; - return; - } - - if( url.isLocalFile() == false ) - { - KMessageBox::sorry( this, i18n( "Only local files supported yet." ) ); - delete d; - return; - } - - mIdentity.signatureFileEdit->setText(url.path()); - } - delete d; + req->fileDialog()->setCaption(i18n("Choose Signature File")); } @@ -2557,7 +2541,7 @@ void ConfigureDialog::slotSignatureFile( void ConfigureDialog::slotSignatureEdit( void ) { - QString fileName = mIdentity.signatureFileEdit->text().stripWhiteSpace(); + QString fileName = mIdentity.signatureFileEdit->url().stripWhiteSpace(); if( fileName.isEmpty() == true ) { KMessageBox::error( this, i18n("You must specify a filename") ); Index: configuredialog.h =================================================================== RCS file: /home/kde/kdenetwork/kmail/configuredialog.h,v retrieving revision 1.35 diff -u -p -B -w -r1.35 configuredialog.h --- configuredialog.h 2001/03/16 07:19:49 1.35 +++ configuredialog.h 2001/03/24 19:05:06 @@ -33,6 +33,7 @@ class QRadioButton; class KIntNumInput; class KColorButton; class KFontChooser; +class KURLRequester; class KpgpConfig; class ColorListBox; class KMAccount; @@ -281,10 +282,9 @@ class ConfigureDialog : public KDialogBa QLineEdit *pgpIdentityEdit; QLineEdit *emailEdit; QLineEdit *replytoEdit; - QLineEdit *signatureFileEdit; + KURLRequester *signatureFileEdit; QLabel *signatureFileLabel; QCheckBox *signatureExecCheck; - QPushButton *signatureBrowseButton; QPushButton *signatureEditButton; QPushButton *transportButton; QRadioButton *signatureFileRadio; @@ -480,7 +480,7 @@ class ConfigureDialog : public KDialogBa void slotRemoveIdentity( void ); void slotIdentitySelectorChanged( void ); void slotSignatureType( int id ); - void slotSignatureChooser( void ); + void slotSignatureChooser( KURLRequester * ); void slotSignatureEdit( void ); void slotSignatureFile( const QString &filename ); void slotSignatureExecMode( bool state ); Index: kmcomposewin.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/kmcomposewin.cpp,v retrieving revision 1.325 diff -u -p -B -w -r1.325 kmcomposewin.cpp --- kmcomposewin.cpp 2001/03/22 19:24:36 1.325 +++ kmcomposewin.cpp 2001/03/24 19:05:07 @@ -2535,6 +2535,13 @@ void KMComposeWin::slotEditKeys() KKeyDialog::configureKeys(actionCollection(), xmlFile(), true, this); } +void KMComposeWin::setReplyFocus( bool hasMessage ) +{ + mEditor->setFocus(); + if ( hasMessage ) + mEditor->setCursorPosition( 1, 0 ); +} + //============================================================================= // Index: kmcomposewin.h =================================================================== RCS file: /home/kde/kdenetwork/kmail/kmcomposewin.h,v retrieving revision 1.108 diff -u -p -B -w -r1.108 kmcomposewin.h --- kmcomposewin.h 2001/02/23 13:20:32 1.108 +++ kmcomposewin.h 2001/03/24 19:05:07 @@ -183,6 +183,11 @@ public: /** Recode to the specified charset */ void setCharset(const QString& aCharset, bool forceDefault = FALSE); + /** Sets the focus to the edit-widget and the cursor below the + "On ... you wrote" line when hasMessage is true. + Make sure you call this _after_ setMsg(). */ + void setReplyFocus( bool hasMessage = true ); + public slots: //Actions: void slotPrint(); Index: kmheaders.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/kmheaders.cpp,v retrieving revision 1.252 diff -u -p -B -w -r1.252 kmheaders.cpp --- kmheaders.cpp 2001/03/23 17:13:02 1.252 +++ kmheaders.cpp 2001/03/24 19:05:08 @@ -323,6 +323,7 @@ KMHeaders::KMHeaders(KMMainWin *aOwner, mSortCol = KMMsgList::sfDate; mSortDescending = FALSE; setShowSortIndicator(true); + setFocusPolicy( WheelFocus ); addColumn( i18n("Subject"), 310 ); addColumn( i18n("Sender"), 170 ); @@ -1254,6 +1255,7 @@ void KMHeaders::noQuoteReplyToMsg() win = new KMComposeWin(msg->createReply(FALSE, FALSE, "", TRUE), msg->headerField( "X-KMail-Identity" )); win->setCharset(msg->codec()->name(), TRUE); + win->setReplyFocus(false); win->show(); kernel->kbp()->idle(); } @@ -1271,6 +1273,7 @@ void KMHeaders::replyToMsg (QString sele win = new KMComposeWin(msg->createReply(FALSE, FALSE, selection), msg->headerField( "X-KMail-Identity" )); win->setCharset(msg->codec()->name(), TRUE); + win->setReplyFocus(); win->show(); kernel->kbp()->idle(); } @@ -1288,6 +1291,7 @@ void KMHeaders::replyAllToMsg (QString s win = new KMComposeWin(msg->createReply(TRUE, FALSE, selection), msg->headerField( "X-KMail-Identity" )); win->setCharset(msg->codec()->name(), TRUE); + win->setReplyFocus(); win->show(); kernel->kbp()->idle(); } @@ -1304,6 +1308,7 @@ void KMHeaders::replyListToMsg (QString win = new KMComposeWin(msg->createReply(true, true, selection), msg->headerField( "X-KMail-Identity" )); win->setCharset(msg->codec()->name(), TRUE); + win->setReplyFocus(); win->show(); kernel->kbp()->idle(); } Index: kmreaderwin.cpp =================================================================== RCS file: /home/kde/kdenetwork/kmail/kmreaderwin.cpp,v retrieving revision 1.253 diff -u -p -B -w -r1.253 kmreaderwin.cpp --- kmreaderwin.cpp 2001/03/13 12:01:26 1.253 +++ kmreaderwin.cpp 2001/03/24 19:05:09 @@ -311,6 +311,7 @@ QString KMReaderWin::quoteFontTag( int q void KMReaderWin::initHtmlWidget(void) { mViewer = new KHTMLPart(this, "khtml"); + mViewer->widget()->setFocusPolicy(WheelFocus); // Let's better be paranoid and disable plugins (it defaults to enabled): mViewer->enablePlugins(false); mViewer->enableJScript(false); // just make this explicit