diff --git a/recipientseditor.cpp b/recipientseditor.cpp index 771fccee1..fd5c51001 100644 --- a/recipientseditor.cpp +++ b/recipientseditor.cpp @@ -438,7 +438,7 @@ void SideWidget::initRecipientPicker() { if ( mRecipientPicker ) return; - mRecipientPicker = new RecipientsPicker( 0 ); + mRecipientPicker = new RecipientsPicker( this ); connect( mRecipientPicker, SIGNAL( pickedRecipient( const QString & ) ), SIGNAL( pickedRecipient( const QString & ) ) ); @@ -466,8 +466,8 @@ void SideWidget::pickRecipient() #else mRecipientPicker->setRecipients( mView->recipients() ); mRecipientPicker->show(); - mRecipientPicker->raise(); mPickerPositioner->reposition(); + mRecipientPicker->raise(); #endif } diff --git a/recipientspicker.cpp b/recipientspicker.cpp index 92ee53dfb..21835e19d 100644 --- a/recipientspicker.cpp +++ b/recipientspicker.cpp @@ -26,14 +26,13 @@ #include #include #include -#include #include +#include #include #include #include #include -#include RecipientItem::RecipientItem() { @@ -115,26 +114,34 @@ RecipientItem::List RecipientsCollection::items() const RecipientsPicker::RecipientsPicker( QWidget *parent ) - : KDialogBase( parent, "RecipientsPicker", true, i18n( "Select Recipient" ), - KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true ) + : QWidget( parent, "RecipientsPicker", WType_Dialog ) { - QVBox *vbox = makeVBoxMainWidget(); + setCaption( i18n("Select Recipient") ); - QHBox *hbox = new QHBox( vbox ); - QLabel *label = new QLabel( i18n("Addressbook:"), hbox ); - - mCollectionCombo = new QComboBox( hbox ); + QBoxLayout *topLayout = new QVBoxLayout( this ); + topLayout->setSpacing( KDialog::spacingHint() ); + topLayout->setMargin( KDialog::marginHint() ); + + QBoxLayout *resLayout = new QHBoxLayout( topLayout ); + + QLabel *label = new QLabel( i18n("AddressBook:"), this ); + resLayout->addWidget( label ); + + mCollectionCombo = new QComboBox( this ); + resLayout->addWidget( mCollectionCombo ); connect( mCollectionCombo, SIGNAL( highlighted( int ) ), SLOT( updateList() ) ); connect( mCollectionCombo, SIGNAL( activated( int ) ), SLOT( updateList() ) ); - hbox = new QHBox( vbox ); - label = new QLabel( i18n("Search:"), hbox ); - mSearchLine = new KListViewSearchLine( hbox ); - - mRecipientList = new KListView( vbox ); + QBoxLayout *searchLayout = new QHBoxLayout( topLayout ); + + label = new QLabel( i18n("Search:"), this ); + searchLayout->addWidget( label ); + + mRecipientList = new KListView( this ); mRecipientList->setAllColumnsShowFocus( true ); + topLayout->addWidget( mRecipientList ); mRecipientList->addColumn( i18n("->") ); mRecipientList->addColumn( i18n("Name") ); mRecipientList->addColumn( i18n("Email") ); @@ -143,7 +150,20 @@ RecipientsPicker::RecipientsPicker( QWidget *parent ) connect( mRecipientList, SIGNAL( returnPressed( QListViewItem * ) ), SLOT( slotPicked( QListViewItem * ) ) ); - mSearchLine->setListView( mRecipientList ); + mSearchLine = new KListViewSearchLine( this, mRecipientList ); + searchLayout->addWidget( mSearchLine ); + + QBoxLayout *buttonLayout = new QHBoxLayout( topLayout ); + + buttonLayout->addStretch( 1 ); + + QPushButton *button = new QPushButton( i18n("&Ok"), this ); + buttonLayout->addWidget( button ); + connect( button, SIGNAL( clicked() ), SLOT( slotOk() ) ); + + button = new QPushButton( i18n("&Cancel"), this ); + buttonLayout->addWidget( button ); + connect( button, SIGNAL( clicked() ), SLOT( close() ) ); initCollections(); @@ -252,4 +272,11 @@ void RecipientsPicker::slotPicked( QListViewItem *viewItem ) close(); } +void RecipientsPicker::keyPressEvent( QKeyEvent *ev ) +{ + if ( ev->key() == Key_Escape ) close(); + + QWidget::keyPressEvent( ev ); +} + #include "recipientspicker.moc" diff --git a/recipientspicker.h b/recipientspicker.h index 563b8d4f2..70f274549 100644 --- a/recipientspicker.h +++ b/recipientspicker.h @@ -79,7 +79,7 @@ class RecipientsCollection RecipientItem::List mItems; }; -class RecipientsPicker : public KDialogBase +class RecipientsPicker : public QWidget { Q_OBJECT public: @@ -94,6 +94,8 @@ class RecipientsPicker : public KDialogBase void initCollections(); void insertCollection( RecipientsCollection *coll, int index ); + void keyPressEvent( QKeyEvent *ev ); + protected slots: void updateList(); void slotOk();