author | zautrix <zautrix> | 2005-06-20 06:01:55 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-06-20 06:01:55 (UTC) |
commit | 3876e95ff79298e9d95c506973c69790290b611e (patch) (side-by-side diff) | |
tree | 654477f1cf73911d57fff86f0e087faf4021e113 /kabc | |
parent | 19768fad9c35bd2611512dcdb426c879ad080493 (diff) | |
download | kdepimpi-3876e95ff79298e9d95c506973c69790290b611e.zip kdepimpi-3876e95ff79298e9d95c506973c69790290b611e.tar.gz kdepimpi-3876e95ff79298e9d95c506973c69790290b611e.tar.bz2 |
fixes in contact selection
-rw-r--r-- | kabc/addresseedialog.cpp | 18 | ||||
-rw-r--r-- | kabc/addresseedialog.h | 2 |
2 files changed, 16 insertions, 4 deletions
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp index e89584d..3e7b72c 100644 --- a/kabc/addresseedialog.cpp +++ b/kabc/addresseedialog.cpp @@ -23,117 +23,128 @@ #include <qgroupbox.h> #include <qapplication.h> #include <qregexp.h> #include <qvbox.h> #include <qlabel.h> #include <klocale.h> #include <kdebug.h> #include <kglobalsettings.h> #include "stdaddressbook.h" #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(); } AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : KDialogBase( KDialogBase::Plain, i18n("Select Addressee"), Ok|Cancel, No, parent ), mMultiple( multiple ) { qDebug("NEW AddresseeDialog "); QWidget *topWidget = plainPage(); QBoxLayout *topLayout = new QHBoxLayout( topWidget ); KDGanttMinimizeSplitter* mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, topWidget); 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* ) ), SLOT( addressBookChanged() ) ); #endif loadAddressBook(); QValueList<int> splitterSize; splitterSize.append( ( width() / 5 ) * 3 ); splitterSize.append( ( width() / 5 ) *2 ); mMiniSplitter->setSizes( splitterSize ); } AddresseeDialog::~AddresseeDialog() { qDebug("DELETE AddresseeDialog "); @@ -143,48 +154,49 @@ void AddresseeDialog::loadAddressBook() { mAddresseeList->clear(); mItemDict.clear(); if ( mAddresseeEdit->text().isEmpty() ) { 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; 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() + "*"); 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; mItemDict.insert( str, item ); //mAddresseeEdit->completionObject()->addItem( str ); } void AddresseeDialog::selectItem( const QString &str ) { if ( str.isEmpty() ) return; QListViewItem *item = mItemDict.find( str ); if ( item ) { mAddresseeList->blockSignals( true ); diff --git a/kabc/addresseedialog.h b/kabc/addresseedialog.h index 99c74bd..6fab62d 100644 --- a/kabc/addresseedialog.h +++ b/kabc/addresseedialog.h @@ -22,49 +22,49 @@ #define KABC_ADDRESSEEDIALOG_H #include <qdict.h> #include <kdialogbase.h> #include <klineedit.h> #include <klistview.h> #include "addressbook.h" namespace KABC { /** @short Special ListViewItem, that is used by the AddresseeDialog. */ class AddresseeItem : public QListViewItem { public: /** Type of column @li @p Name - Name in Addressee @li @p Email - Email in Addressee */ - enum columns { Name = 0, Email = 1 }; + enum columns { Name = 0, Email = 1,Category = 2 }; /** Constructor. @param parent The parent listview. @param addressee The associated addressee. */ AddresseeItem( QListView *parent, const Addressee &addressee ); /** Returns the addressee. */ Addressee addressee() const { return mAddressee; } /** Method used by QListView to sort the items. */ virtual QString key( int column, bool ascending ) const; private: Addressee mAddressee; }; /** |