author | zautrix <zautrix> | 2004-09-03 19:28:45 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-03 19:28:45 (UTC) |
commit | 7b3148175ea540f0d7b4bc79e05dd52f2cd47771 (patch) (side-by-side diff) | |
tree | 5194240a1015a7fe9bab697233965dd807c464fd | |
parent | 14399c0c21955d30b2d69684e0cf11edb9fd9b63 (diff) | |
download | kdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.zip kdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.tar.gz kdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.tar.bz2 |
Made addressee select dialog useable
-rw-r--r-- | kabc/addresseedialog.cpp | 69 | ||||
-rw-r--r-- | kabc/addresseedialog.h | 5 |
2 files changed, 50 insertions, 24 deletions
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp index 033e857..cb6c12f 100644 --- a/kabc/addresseedialog.cpp +++ b/kabc/addresseedialog.cpp @@ -41,3 +41,6 @@ AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) : { - setText( Name, addressee.realName() ); + QString name = addressee.familyName()+", "+ addressee.givenName(); + if ( name.length() == 2 ) + name = addressee.realName(); + setText( Name,name); setText( Email, addressee.preferredEmail() ); @@ -47,13 +50,8 @@ QString AddresseeItem::key( int column, bool ) const { - /* LR + if (column == Email) { QString value = text(Email); - QRegExp emailRe("<\\S*>"); - int match = emailRe.search(value); - if (match > -1) - value = value.mid(match + 1, emailRe.matchedLength() - 2); - - return value.lower(); + int val = value.findRev("@"); + return value.mid( val) + value.left( val ); } - */ return text(column).lower(); @@ -79,14 +77,9 @@ AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : SLOT( slotOk() ) ); - connect( mAddresseeList, SIGNAL( selectionChanged( QListViewItem * ) ), - SLOT( updateEdit( QListViewItem * ) ) ); - mAddresseeEdit = new KLineEdit( topWidget ); - //mAddresseeEdit->setCompletionMode( KGlobalSettings::CompletionAuto ); - // connect( mAddresseeEdit->completionObject(), SIGNAL( match( const QString & ) ), - // SLOT( selectItem( const QString & ) ) ); + mAddresseeEdit = new QLineEdit( topWidget ); + connect( mAddresseeEdit, SIGNAL( returnPressed() ), + SLOT( loadAddressBook() ) ); mAddresseeEdit->setFocus(); - //mAddresseeEdit->completionObject()->setIgnoreCase( true ); - listLayout->addWidget( mAddresseeEdit ); - //setInitialSize( QSize( 450, 300 ) ); + listLayout->addWidget( mAddresseeEdit ); @@ -114,4 +107,5 @@ AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : SLOT( addSelected( QListViewItem * ) ) ); + connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ), + SLOT( selectNextItem( QListViewItem * ) ) ); - // setInitialSize( QSize( 650, 350 ) ); } @@ -135,3 +129,14 @@ void AddresseeDialog::loadAddressBook() mItemDict.clear(); + if ( mAddresseeEdit->text().isEmpty() ) { + AddressBook::Iterator it; + for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { + new AddresseeItem( mAddresseeList, (*it) ); + } + return; + } //mAddresseeEdit->completionObject()->clear(); + QRegExp re; + re.setWildcard(true); // most people understand these better. + re.setCaseSensitive(false); + re.setPattern( "*"+ mAddresseeEdit->text() + "*"); @@ -139,5 +144,12 @@ void AddresseeDialog::loadAddressBook() for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { + QString name = (*it).familyName()+", "+ (*it).givenName(); + if ( name.length() == 2 ) + name = (*it).realName(); + name += (*it).preferredEmail(); +#if QT_VERSION >= 300 + if (re.search(name)) != -1) +#else + if (re.match(name) != -1) +#endif AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) ); - addCompletionItem( (*it).realName(), item ); - addCompletionItem( (*it).preferredEmail(), item ); } @@ -172,2 +184,12 @@ void AddresseeDialog::updateEdit( QListViewItem *item ) +void AddresseeDialog::selectNextItem( QListViewItem *item ) +{ + addSelected( item ); + QListViewItem *next = item->nextSibling(); + if ( next ) { + next->setSelected( true ); + item->setSelected( false ); + mAddresseeList->setCurrentItem( next ); + } +} void AddresseeDialog::addSelected( QListViewItem *item ) @@ -184,2 +206,3 @@ void AddresseeDialog::addSelected( QListViewItem *item ) } + } @@ -191,5 +214,7 @@ void AddresseeDialog::removeSelected() if ( !addrItem ) return; - + QListViewItem *next = item->nextSibling(); mSelectedDict.remove( addrItem->addressee().uid() ); delete addrItem; + if ( next ) + next->setSelected( true ); } diff --git a/kabc/addresseedialog.h b/kabc/addresseedialog.h index 74e7871..99c74bd 100644 --- a/kabc/addresseedialog.h +++ b/kabc/addresseedialog.h @@ -131,2 +131,3 @@ class AddresseeDialog : public KDialogBase void selectItem( const QString & ); + void selectNextItem( QListViewItem *item ); void updateEdit( QListViewItem *item ); @@ -134,2 +135,3 @@ class AddresseeDialog : public KDialogBase void removeSelected(); + void loadAddressBook(); @@ -139,3 +141,2 @@ class AddresseeDialog : public KDialogBase private: - void loadAddressBook(); void addCompletionItem( const QString &str, QListViewItem *item ); @@ -145,3 +146,3 @@ class AddresseeDialog : public KDialogBase KListView *mAddresseeList; - KLineEdit *mAddresseeEdit; + QLineEdit *mAddresseeEdit; |