summaryrefslogtreecommitdiffabout
path: root/kaddressbook/views/kaddressbookiconview.cpp
Unidiff
Diffstat (limited to 'kaddressbook/views/kaddressbookiconview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/views/kaddressbookiconview.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/kaddressbook/views/kaddressbookiconview.cpp b/kaddressbook/views/kaddressbookiconview.cpp
index 50ff285..78d63b0 100644
--- a/kaddressbook/views/kaddressbookiconview.cpp
+++ b/kaddressbook/views/kaddressbookiconview.cpp
@@ -93,12 +93,13 @@ AddresseeIconView::AddresseeIconView(QWidget *parent, const char *name)
93} 93}
94 94
95AddresseeIconView::~AddresseeIconView() 95AddresseeIconView::~AddresseeIconView()
96{ 96{
97} 97}
98 98
99
99void AddresseeIconView::itemDropped(QDropEvent *e, 100void AddresseeIconView::itemDropped(QDropEvent *e,
100 const QValueList<QIconDragItem> &) 101 const QValueList<QIconDragItem> &)
101{ 102{
102 emit addresseeDropped(e); 103 emit addresseeDropped(e);
103} 104}
104 105
@@ -229,13 +230,59 @@ void KAddressBookIconView::readConfig(KConfig *config)
229 this, SLOT(addresseeExecuted(QIconViewItem *))); 230 this, SLOT(addresseeExecuted(QIconViewItem *)));
230*/ 231*/
231 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)), 232 connect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)),
232 this, SLOT(addresseeExecuted(QIconViewItem *))); 233 this, SLOT(addresseeExecuted(QIconViewItem *)));
233 234
234} 235}
236void KAddressBookIconView::doSearch( const QString& s ,KABC::Field *field )
237{
238 mIconView->clear();
239 mIconList.clear();
240 if ( s.isEmpty() || s == "*" ) {
241 refresh();
242 return;
243 }
244 QString pattern = s.lower()+"*";
245 QRegExp re;
246 re.setWildcard(true); // most people understand these better.
247 re.setCaseSensitive(false);
248 re.setPattern( pattern );
249 if (!re.isValid())
250 return;
251 KABC::Addressee::List addresseeList = addressees();
252 KABC::Addressee::List::Iterator it;
253 if ( field ) {
254 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
255#if QT_VERSION >= 300
256 if (re.search(field->value( *it ).lower()) != -1)
257#else
258 if (re.match(field->value( *it ).lower()) != -1)
259#endif
260 mIconList.append(new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView ));
261
235 262
263 }
264 } else {
265 KABC::Field::List fieldList = fields();
266 KABC::Field::List::ConstIterator fieldIt;
267 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
268 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
269#if QT_VERSION >= 300
270 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
271#else
272 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
273#endif
274 {
275 mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView ));
276 continue;
277 }
278 }
279 }
280 }
281 mIconView->arrangeItemsInGrid( true );
282}
236QStringList KAddressBookIconView::selectedUids() 283QStringList KAddressBookIconView::selectedUids()
237{ 284{
238 QStringList uidList; 285 QStringList uidList;
239 QIconViewItem *item; 286 QIconViewItem *item;
240 AddresseeIconViewItem *aItem; 287 AddresseeIconViewItem *aItem;
241 288