summaryrefslogtreecommitdiffabout
path: root/kabc/addresseedialog.cpp
Side-by-side diff
Diffstat (limited to 'kabc/addresseedialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addresseedialog.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp
index e89584d..3e7b72c 100644
--- a/kabc/addresseedialog.cpp
+++ b/kabc/addresseedialog.cpp
@@ -35,24 +35,25 @@
#include "addresseedialog.h"
#include "KDGanttMinimizeSplitter.h"
//#include "addresseedialog.moc"
using namespace KABC;
AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) :
QListViewItem( parent ),
mAddressee( addressee )
{
setText( Name,addressee.realName());
setText( Email, addressee.preferredEmail() );
+ setText( Category, addressee.categories().join(";") );
}
QString AddresseeItem::key( int column, bool ) const
{
if (column == Email) {
QString value = text(Email);
int val = value.findRev("@");
return value.mid( val) + value.left( val );
}
return text(column).lower();
}
@@ -71,57 +72,67 @@ AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) :
mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
topLayout->addWidget(mMiniSplitter );
QWidget *listWidget = new QWidget( mMiniSplitter );
QBoxLayout *listLayout = new QVBoxLayout (listWidget) ;
//topLayout->addLayout( listLayout );
mAddresseeList = new KListView( listWidget );
mAddresseeList->addColumn( i18n("Name") );
mAddresseeList->addColumn( i18n("Email") );
+ mAddresseeList->addColumn( i18n("Category") );
mAddresseeList->setAllColumnsShowFocus( true );
mAddresseeList->setFullWidth( true );
listLayout->addWidget( mAddresseeList );
connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ),
SLOT( slotOk() ) );
- mAddresseeEdit = new QLineEdit( listWidget );
+ QHBox* searchBox = new QHBox ( listWidget );
+ mAddresseeEdit = new QLineEdit( searchBox );
connect( mAddresseeEdit, SIGNAL( returnPressed() ),
SLOT( loadAddressBook() ) );
mAddresseeEdit->setFocus();
+ QPushButton *searchButton = new QPushButton( i18n("Search!"), searchBox );
+ connect ( searchButton, SIGNAL( clicked() ), SLOT( loadAddressBook() ) );
- listLayout->addWidget( mAddresseeEdit );
+ listLayout->addWidget( searchBox );
if ( mMultiple ) {
//QBoxLayout *selectedLayout = new QVBoxLayout;
//topLayout->addLayout( selectedLayout );
//topLayout->setSpacing( spacingHint() );
QVBox *selectedGroup = new QVBox( mMiniSplitter );
new QLabel ( i18n("Selected:"), selectedGroup );
//selectedLayout->addWidget( selectedGroup );
mSelectedList = new KListView( selectedGroup );
mSelectedList->addColumn( i18n("Name") );
mSelectedList->addColumn( i18n("Email") );
mSelectedList->setAllColumnsShowFocus( true );
mSelectedList->setFullWidth( true );
- connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ),
+ //connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ),
+ // SLOT( removeSelected() ) );
+ connect( mSelectedList, SIGNAL( clicked( QListViewItem * ) ),
+ SLOT( removeSelected() ) );
+ connect( mSelectedList, SIGNAL( returnPressed( QListViewItem *) ),
SLOT( removeSelected() ) );
+#if 0
QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup );
connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) );
+#endif
connect( mAddresseeList, SIGNAL( clicked( QListViewItem * ) ),
SLOT( addSelected( QListViewItem * ) ) );
connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ),
SLOT( selectNextItem( QListViewItem * ) ) );
}
mAddressBook = StdAddressBook::self( true );
connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ),
SLOT( addressBookChanged() ) );
#if 0
connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ),
@@ -155,24 +166,25 @@ void AddresseeDialog::loadAddressBook()
//mAddresseeEdit->completionObject()->clear();
QRegExp re;
re.setWildcard(true); // most people understand these better.
re.setCaseSensitive(false);
re.setPattern( "*"+ mAddresseeEdit->text() + "*");
AddressBook::Iterator it;
for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") )
continue;
QString name = (*it).realName();
name += (*it).preferredEmail();
+ name += (*it).categories().join(";");
#if QT_VERSION >= 0x030000
if (re.search(name) != -1)
#else
if (re.match(name) != -1)
#endif
AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) );
}
}
void AddresseeDialog::addCompletionItem( const QString &str, QListViewItem *item )
{
if ( str.isEmpty() ) return;