summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2004-09-03 19:28:45 (UTC)
committer zautrix <zautrix>2004-09-03 19:28:45 (UTC)
commit7b3148175ea540f0d7b4bc79e05dd52f2cd47771 (patch) (unidiff)
tree5194240a1015a7fe9bab697233965dd807c464fd /kabc
parent14399c0c21955d30b2d69684e0cf11edb9fd9b63 (diff)
downloadkdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.zip
kdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.tar.gz
kdepimpi-7b3148175ea540f0d7b4bc79e05dd52f2cd47771.tar.bz2
Made addressee select dialog useable
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addresseedialog.cpp73
-rw-r--r--kabc/addresseedialog.h5
2 files changed, 52 insertions, 26 deletions
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp
index 033e857..cb6c12f 100644
--- a/kabc/addresseedialog.cpp
+++ b/kabc/addresseedialog.cpp
@@ -1,264 +1,289 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <qlayout.h> 21#include <qlayout.h>
22#include <qpushbutton.h> 22#include <qpushbutton.h>
23#include <qgroupbox.h> 23#include <qgroupbox.h>
24#include <qapplication.h> 24#include <qapplication.h>
25#include <qregexp.h> 25#include <qregexp.h>
26 26
27#include <klocale.h> 27#include <klocale.h>
28#include <kdebug.h> 28#include <kdebug.h>
29#include <kglobalsettings.h> 29#include <kglobalsettings.h>
30 30
31#include "stdaddressbook.h" 31#include "stdaddressbook.h"
32 32
33#include "addresseedialog.h" 33#include "addresseedialog.h"
34//#include "addresseedialog.moc" 34//#include "addresseedialog.moc"
35 35
36using namespace KABC; 36using namespace KABC;
37 37
38AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) : 38AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) :
39 QListViewItem( parent ), 39 QListViewItem( parent ),
40 mAddressee( addressee ) 40 mAddressee( addressee )
41{ 41{
42 setText( Name, addressee.realName() ); 42 QString name = addressee.familyName()+", "+ addressee.givenName();
43 setText( Email, addressee.preferredEmail() ); 43 if ( name.length() == 2 )
44 name = addressee.realName();
45 setText( Name,name);
46 setText( Email, addressee.preferredEmail() );
44} 47}
45 48
46QString AddresseeItem::key( int column, bool ) const 49QString AddresseeItem::key( int column, bool ) const
47{ 50{
48 /* LR 51
49 if (column == Email) { 52 if (column == Email) {
50 QString value = text(Email); 53 QString value = text(Email);
51 QRegExp emailRe("<\\S*>"); 54 int val = value.findRev("@");
52 int match = emailRe.search(value); 55 return value.mid( val) + value.left( val );
53 if (match > -1)
54 value = value.mid(match + 1, emailRe.matchedLength() - 2);
55
56 return value.lower();
57 } 56 }
58 */
59 return text(column).lower(); 57 return text(column).lower();
60} 58}
61 59
62AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : 60AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) :
63 KDialogBase( KDialogBase::Plain, i18n("Select Addressee"), 61 KDialogBase( KDialogBase::Plain, i18n("Select Addressee"),
64 Ok|Cancel, Ok, parent ), mMultiple( multiple ) 62 Ok|Cancel, Ok, parent ), mMultiple( multiple )
65{ 63{
66 QWidget *topWidget = plainPage(); 64 QWidget *topWidget = plainPage();
67 65
68 QBoxLayout *topLayout = new QHBoxLayout( topWidget ); 66 QBoxLayout *topLayout = new QHBoxLayout( topWidget );
69 QBoxLayout *listLayout = new QVBoxLayout; 67 QBoxLayout *listLayout = new QVBoxLayout;
70 topLayout->addLayout( listLayout ); 68 topLayout->addLayout( listLayout );
71 69
72 mAddresseeList = new KListView( topWidget ); 70 mAddresseeList = new KListView( topWidget );
73 mAddresseeList->addColumn( i18n("Name") ); 71 mAddresseeList->addColumn( i18n("Name") );
74 mAddresseeList->addColumn( i18n("Email") ); 72 mAddresseeList->addColumn( i18n("Email") );
75 mAddresseeList->setAllColumnsShowFocus( true ); 73 mAddresseeList->setAllColumnsShowFocus( true );
76 mAddresseeList->setFullWidth( true ); 74 mAddresseeList->setFullWidth( true );
77 listLayout->addWidget( mAddresseeList ); 75 listLayout->addWidget( mAddresseeList );
78 connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ), 76 connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ),
79 SLOT( slotOk() ) ); 77 SLOT( slotOk() ) );
80 connect( mAddresseeList, SIGNAL( selectionChanged( QListViewItem * ) ),
81 SLOT( updateEdit( QListViewItem * ) ) );
82 78
83 mAddresseeEdit = new KLineEdit( topWidget ); 79 mAddresseeEdit = new QLineEdit( topWidget );
84 //mAddresseeEdit->setCompletionMode( KGlobalSettings::CompletionAuto ); 80 connect( mAddresseeEdit, SIGNAL( returnPressed() ),
85 // connect( mAddresseeEdit->completionObject(), SIGNAL( match( const QString & ) ), 81 SLOT( loadAddressBook() ) );
86 // SLOT( selectItem( const QString & ) ) );
87 mAddresseeEdit->setFocus(); 82 mAddresseeEdit->setFocus();
88 //mAddresseeEdit->completionObject()->setIgnoreCase( true ); 83
89 listLayout->addWidget( mAddresseeEdit ); 84 listLayout->addWidget( mAddresseeEdit );
90 85
91 //setInitialSize( QSize( 450, 300 ) );
92
93 if ( mMultiple ) { 86 if ( mMultiple ) {
94 QBoxLayout *selectedLayout = new QVBoxLayout; 87 QBoxLayout *selectedLayout = new QVBoxLayout;
95 topLayout->addLayout( selectedLayout ); 88 topLayout->addLayout( selectedLayout );
96 topLayout->setSpacing( spacingHint() ); 89 topLayout->setSpacing( spacingHint() );
97 90
98 QGroupBox *selectedGroup = new QGroupBox( 1, Horizontal, i18n("Selected"), 91 QGroupBox *selectedGroup = new QGroupBox( 1, Horizontal, i18n("Selected"),
99 topWidget ); 92 topWidget );
100 selectedLayout->addWidget( selectedGroup ); 93 selectedLayout->addWidget( selectedGroup );
101 94
102 mSelectedList = new KListView( selectedGroup ); 95 mSelectedList = new KListView( selectedGroup );
103 mSelectedList->addColumn( i18n("Name") ); 96 mSelectedList->addColumn( i18n("Name") );
104 mSelectedList->addColumn( i18n("Email") ); 97 mSelectedList->addColumn( i18n("Email") );
105 mSelectedList->setAllColumnsShowFocus( true ); 98 mSelectedList->setAllColumnsShowFocus( true );
106 mSelectedList->setFullWidth( true ); 99 mSelectedList->setFullWidth( true );
107 connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ), 100 connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ),
108 SLOT( removeSelected() ) ); 101 SLOT( removeSelected() ) );
109 102
110 QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup ); 103 QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup );
111 connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) ); 104 connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) );
112 105
113 connect( mAddresseeList, SIGNAL( clicked( QListViewItem * ) ), 106 connect( mAddresseeList, SIGNAL( clicked( QListViewItem * ) ),
114 SLOT( addSelected( QListViewItem * ) ) ); 107 SLOT( addSelected( QListViewItem * ) ) );
108 connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ),
109 SLOT( selectNextItem( QListViewItem * ) ) );
115 110
116 // setInitialSize( QSize( 650, 350 ) );
117 } 111 }
118 112
119 mAddressBook = StdAddressBook::self( true ); 113 mAddressBook = StdAddressBook::self( true );
120 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ), 114 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ),
121 SLOT( addressBookChanged() ) ); 115 SLOT( addressBookChanged() ) );
122 connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ), 116 connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ),
123 SLOT( addressBookChanged() ) ); 117 SLOT( addressBookChanged() ) );
124 118
125 loadAddressBook(); 119 loadAddressBook();
126} 120}
127 121
128AddresseeDialog::~AddresseeDialog() 122AddresseeDialog::~AddresseeDialog()
129{ 123{
130} 124}
131 125
132void AddresseeDialog::loadAddressBook() 126void AddresseeDialog::loadAddressBook()
133{ 127{
134 mAddresseeList->clear(); 128 mAddresseeList->clear();
135 mItemDict.clear(); 129 mItemDict.clear();
130 if ( mAddresseeEdit->text().isEmpty() ) {
131 AddressBook::Iterator it;
132 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
133 new AddresseeItem( mAddresseeList, (*it) );
134 }
135 return;
136 }
136 //mAddresseeEdit->completionObject()->clear(); 137 //mAddresseeEdit->completionObject()->clear();
138 QRegExp re;
139 re.setWildcard(true); // most people understand these better.
140 re.setCaseSensitive(false);
141 re.setPattern( "*"+ mAddresseeEdit->text() + "*");
137 142
138 AddressBook::Iterator it; 143 AddressBook::Iterator it;
139 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 144 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
140 AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) ); 145 QString name = (*it).familyName()+", "+ (*it).givenName();
141 addCompletionItem( (*it).realName(), item ); 146 if ( name.length() == 2 )
142 addCompletionItem( (*it).preferredEmail(), item ); 147 name = (*it).realName();
148 name += (*it).preferredEmail();
149#if QT_VERSION >= 300
150 if (re.search(name)) != -1)
151#else
152 if (re.match(name) != -1)
153#endif
154 AddresseeItem *item = new AddresseeItem( mAddresseeList, (*it) );
143 } 155 }
144} 156}
145 157
146void AddresseeDialog::addCompletionItem( const QString &str, QListViewItem *item ) 158void AddresseeDialog::addCompletionItem( const QString &str, QListViewItem *item )
147{ 159{
148 if ( str.isEmpty() ) return; 160 if ( str.isEmpty() ) return;
149 161
150 mItemDict.insert( str, item ); 162 mItemDict.insert( str, item );
151 //mAddresseeEdit->completionObject()->addItem( str ); 163 //mAddresseeEdit->completionObject()->addItem( str );
152} 164}
153 165
154void AddresseeDialog::selectItem( const QString &str ) 166void AddresseeDialog::selectItem( const QString &str )
155{ 167{
156 if ( str.isEmpty() ) return; 168 if ( str.isEmpty() ) return;
157 169
158 QListViewItem *item = mItemDict.find( str ); 170 QListViewItem *item = mItemDict.find( str );
159 if ( item ) { 171 if ( item ) {
160 mAddresseeList->blockSignals( true ); 172 mAddresseeList->blockSignals( true );
161 mAddresseeList->setSelected( item, true ); 173 mAddresseeList->setSelected( item, true );
162 mAddresseeList->ensureItemVisible( item ); 174 mAddresseeList->ensureItemVisible( item );
163 mAddresseeList->blockSignals( false ); 175 mAddresseeList->blockSignals( false );
164 } 176 }
165} 177}
166 178
167void AddresseeDialog::updateEdit( QListViewItem *item ) 179void AddresseeDialog::updateEdit( QListViewItem *item )
168{ 180{
169 mAddresseeEdit->setText( item->text( 0 ) ); 181 mAddresseeEdit->setText( item->text( 0 ) );
170 mAddresseeEdit->setSelection( 0, item->text( 0 ).length() ); 182 mAddresseeEdit->setSelection( 0, item->text( 0 ).length() );
171} 183}
172 184
185void AddresseeDialog::selectNextItem( QListViewItem *item )
186{
187 addSelected( item );
188 QListViewItem *next = item->nextSibling();
189 if ( next ) {
190 next->setSelected( true );
191 item->setSelected( false );
192 mAddresseeList->setCurrentItem( next );
193 }
194}
173void AddresseeDialog::addSelected( QListViewItem *item ) 195void AddresseeDialog::addSelected( QListViewItem *item )
174{ 196{
175 AddresseeItem *addrItem = (AddresseeItem *)( item ); 197 AddresseeItem *addrItem = (AddresseeItem *)( item );
176 if ( !addrItem ) return; 198 if ( !addrItem ) return;
177 199
178 Addressee a = addrItem->addressee(); 200 Addressee a = addrItem->addressee();
179 201
180 QListViewItem *selectedItem = mSelectedDict.find( a.uid() ); 202 QListViewItem *selectedItem = mSelectedDict.find( a.uid() );
181 if ( !selectedItem ) { 203 if ( !selectedItem ) {
182 selectedItem = new AddresseeItem( mSelectedList, a ); 204 selectedItem = new AddresseeItem( mSelectedList, a );
183 mSelectedDict.insert( a.uid(), selectedItem ); 205 mSelectedDict.insert( a.uid(), selectedItem );
184 } 206 }
207
185} 208}
186 209
187void AddresseeDialog::removeSelected() 210void AddresseeDialog::removeSelected()
188{ 211{
189 QListViewItem *item = mSelectedList->selectedItem(); 212 QListViewItem *item = mSelectedList->selectedItem();
190 AddresseeItem *addrItem = (AddresseeItem *)( item ); 213 AddresseeItem *addrItem = (AddresseeItem *)( item );
191 if ( !addrItem ) return; 214 if ( !addrItem ) return;
192 215 QListViewItem *next = item->nextSibling();
193 mSelectedDict.remove( addrItem->addressee().uid() ); 216 mSelectedDict.remove( addrItem->addressee().uid() );
194 delete addrItem; 217 delete addrItem;
218 if ( next )
219 next->setSelected( true );
195} 220}
196 221
197Addressee AddresseeDialog::addressee() 222Addressee AddresseeDialog::addressee()
198{ 223{
199 AddresseeItem *aItem = 0; 224 AddresseeItem *aItem = 0;
200 225
201 if ( mMultiple ) 226 if ( mMultiple )
202 aItem = (AddresseeItem *)( mSelectedList->firstChild() ); 227 aItem = (AddresseeItem *)( mSelectedList->firstChild() );
203 else 228 else
204 aItem = (AddresseeItem *)( mAddresseeList->selectedItem() ); 229 aItem = (AddresseeItem *)( mAddresseeList->selectedItem() );
205 230
206 if (aItem) return aItem->addressee(); 231 if (aItem) return aItem->addressee();
207 return Addressee(); 232 return Addressee();
208} 233}
209 234
210Addressee::List AddresseeDialog::addressees() 235Addressee::List AddresseeDialog::addressees()
211{ 236{
212 Addressee::List al; 237 Addressee::List al;
213 AddresseeItem *aItem = 0; 238 AddresseeItem *aItem = 0;
214 239
215 if ( mMultiple ) { 240 if ( mMultiple ) {
216 QListViewItem *item = mSelectedList->firstChild(); 241 QListViewItem *item = mSelectedList->firstChild();
217 while( item ) { 242 while( item ) {
218 aItem = (AddresseeItem *)( item ); 243 aItem = (AddresseeItem *)( item );
219 if ( aItem ) al.append( aItem->addressee() ); 244 if ( aItem ) al.append( aItem->addressee() );
220 item = item->nextSibling(); 245 item = item->nextSibling();
221 } 246 }
222 } 247 }
223 else 248 else
224 { 249 {
225 aItem = (AddresseeItem *)( mAddresseeList->selectedItem() ); 250 aItem = (AddresseeItem *)( mAddresseeList->selectedItem() );
226 if (aItem) al.append( aItem->addressee() ); 251 if (aItem) al.append( aItem->addressee() );
227 } 252 }
228 253
229 return al; 254 return al;
230} 255}
231 256
232Addressee AddresseeDialog::getAddressee( QWidget *parent ) 257Addressee AddresseeDialog::getAddressee( QWidget *parent )
233{ 258{
234 AddresseeDialog *dlg = new AddresseeDialog( parent ); 259 AddresseeDialog *dlg = new AddresseeDialog( parent );
235 Addressee addressee; 260 Addressee addressee;
236 int result = dlg->exec(); 261 int result = dlg->exec();
237 262
238 if ( result == QDialog::Accepted ) { 263 if ( result == QDialog::Accepted ) {
239 addressee = dlg->addressee(); 264 addressee = dlg->addressee();
240 } 265 }
241 266
242 delete dlg; 267 delete dlg;
243 return addressee; 268 return addressee;
244} 269}
245 270
246Addressee::List AddresseeDialog::getAddressees( QWidget *parent ) 271Addressee::List AddresseeDialog::getAddressees( QWidget *parent )
247{ 272{
248 AddresseeDialog *dlg = new AddresseeDialog( parent, true ); 273 AddresseeDialog *dlg = new AddresseeDialog( parent, true );
249 Addressee::List addressees; 274 Addressee::List addressees;
250 if ( QApplication::desktop()->width() <= 640 ) 275 if ( QApplication::desktop()->width() <= 640 )
251 dlg->showMaximized(); 276 dlg->showMaximized();
252 int result = dlg->exec(); 277 int result = dlg->exec();
253 if ( result == QDialog::Accepted ) { 278 if ( result == QDialog::Accepted ) {
254 addressees = dlg->addressees(); 279 addressees = dlg->addressees();
255 } 280 }
256 281
257 delete dlg; 282 delete dlg;
258 return addressees; 283 return addressees;
259} 284}
260 285
261void AddresseeDialog::addressBookChanged() 286void AddresseeDialog::addressBookChanged()
262{ 287{
263 loadAddressBook(); 288 loadAddressBook();
264} 289}
diff --git a/kabc/addresseedialog.h b/kabc/addresseedialog.h
index 74e7871..99c74bd 100644
--- a/kabc/addresseedialog.h
+++ b/kabc/addresseedialog.h
@@ -36,125 +36,126 @@ namespace KABC {
36*/ 36*/
37class AddresseeItem : public QListViewItem 37class AddresseeItem : public QListViewItem
38{ 38{
39 public: 39 public:
40 40
41 /** 41 /**
42 Type of column 42 Type of column
43 @li @p Name - Name in Addressee 43 @li @p Name - Name in Addressee
44 @li @p Email - Email in Addressee 44 @li @p Email - Email in Addressee
45 */ 45 */
46 enum columns { Name = 0, Email = 1 }; 46 enum columns { Name = 0, Email = 1 };
47 47
48 /** 48 /**
49 Constructor. 49 Constructor.
50 50
51 @param parent The parent listview. 51 @param parent The parent listview.
52 @param addressee The associated addressee. 52 @param addressee The associated addressee.
53 */ 53 */
54 AddresseeItem( QListView *parent, const Addressee &addressee ); 54 AddresseeItem( QListView *parent, const Addressee &addressee );
55 55
56 /** 56 /**
57 Returns the addressee. 57 Returns the addressee.
58 */ 58 */
59 Addressee addressee() const { return mAddressee; } 59 Addressee addressee() const { return mAddressee; }
60 60
61 /** 61 /**
62 Method used by QListView to sort the items. 62 Method used by QListView to sort the items.
63 */ 63 */
64 virtual QString key( int column, bool ascending ) const; 64 virtual QString key( int column, bool ascending ) const;
65 65
66 private: 66 private:
67 Addressee mAddressee; 67 Addressee mAddressee;
68}; 68};
69 69
70/** 70/**
71 @short Dialog for selecting address book entries. 71 @short Dialog for selecting address book entries.
72 72
73 This class provides a dialog for selecting entries from the standard KDE 73 This class provides a dialog for selecting entries from the standard KDE
74 address book. Use the getAddressee() function to open a modal dialog, 74 address book. Use the getAddressee() function to open a modal dialog,
75 returning an address book entry. 75 returning an address book entry.
76 76
77 In the dialog you can select an entry from the list with the mouse or type in 77 In the dialog you can select an entry from the list with the mouse or type in
78 the first letters of the name or email address you are searching for. The 78 the first letters of the name or email address you are searching for. The
79 entry matching best is automatically selected. Use double click, pressing 79 entry matching best is automatically selected. Use double click, pressing
80 return or pressing the ok button to return the selected addressee to the 80 return or pressing the ok button to return the selected addressee to the
81 application. 81 application.
82*/ 82*/
83class AddresseeDialog : public KDialogBase 83class AddresseeDialog : public KDialogBase
84{ 84{
85 Q_OBJECT 85 Q_OBJECT
86 86
87 public: 87 public:
88 /** 88 /**
89 Construct addressbook entry select dialog. 89 Construct addressbook entry select dialog.
90 90
91 @param parent parent widget 91 @param parent parent widget
92 */ 92 */
93 AddresseeDialog( QWidget *parent=0, bool multiple=false ); 93 AddresseeDialog( QWidget *parent=0, bool multiple=false );
94 94
95 /** 95 /**
96 Destructor. 96 Destructor.
97 */ 97 */
98 virtual ~AddresseeDialog(); 98 virtual ~AddresseeDialog();
99 99
100 /** 100 /**
101 Return the address chosen. 101 Return the address chosen.
102 102
103 If it is a multiple select, this will return only the first address chosen 103 If it is a multiple select, this will return only the first address chosen
104 */ 104 */
105 Addressee addressee(); 105 Addressee addressee();
106 106
107 /** 107 /**
108 Return the list of addresses chosen 108 Return the list of addresses chosen
109 */ 109 */
110 Addressee::List addressees(); 110 Addressee::List addressees();
111 111
112 /** 112 /**
113 Select a single address book entry. 113 Select a single address book entry.
114 114
115 Open addressee select dialog and return the entry selected by the user. 115 Open addressee select dialog and return the entry selected by the user.
116 If the user doesn't select an entry or presses cancel, the returned 116 If the user doesn't select an entry or presses cancel, the returned
117 addressee is empty. 117 addressee is empty.
118 */ 118 */
119 static Addressee getAddressee( QWidget *parent ); 119 static Addressee getAddressee( QWidget *parent );
120 120
121 /** 121 /**
122 Select multiple address book entries. 122 Select multiple address book entries.
123 123
124 Open addressee select dialog and return the entries selected by the user. 124 Open addressee select dialog and return the entries selected by the user.
125 If the user doesn't select an entry or presses cancel, the returned 125 If the user doesn't select an entry or presses cancel, the returned
126 addressee list is empty. 126 addressee list is empty.
127 */ 127 */
128 static Addressee::List getAddressees( QWidget *parent ); 128 static Addressee::List getAddressees( QWidget *parent );
129 129
130 private slots: 130 private slots:
131 void selectItem( const QString & ); 131 void selectItem( const QString & );
132 void selectNextItem( QListViewItem *item );
132 void updateEdit( QListViewItem *item ); 133 void updateEdit( QListViewItem *item );
133 void addSelected( QListViewItem *item ); 134 void addSelected( QListViewItem *item );
134 void removeSelected(); 135 void removeSelected();
136 void loadAddressBook();
135 137
136 protected slots: 138 protected slots:
137 void addressBookChanged(); 139 void addressBookChanged();
138 140
139 private: 141 private:
140 void loadAddressBook();
141 void addCompletionItem( const QString &str, QListViewItem *item ); 142 void addCompletionItem( const QString &str, QListViewItem *item );
142 143
143 bool mMultiple; 144 bool mMultiple;
144 145
145 KListView *mAddresseeList; 146 KListView *mAddresseeList;
146 KLineEdit *mAddresseeEdit; 147 QLineEdit *mAddresseeEdit;
147 148
148 KListView *mSelectedList; 149 KListView *mSelectedList;
149 150
150 AddressBook *mAddressBook; 151 AddressBook *mAddressBook;
151 152
152 QDict<QListViewItem> mItemDict; 153 QDict<QListViewItem> mItemDict;
153 QDict<QListViewItem> mSelectedDict; 154 QDict<QListViewItem> mSelectedDict;
154 155
155 class AddresseeDialogPrivate; 156 class AddresseeDialogPrivate;
156 AddresseeDialogPrivate *d; 157 AddresseeDialogPrivate *d;
157}; 158};
158 159
159} 160}
160#endif 161#endif