-rw-r--r-- | kabc/address.cpp | 27 | ||||
-rw-r--r-- | kabc/address.h | 2 | ||||
-rw-r--r-- | kabc/addressee.cpp | 25 | ||||
-rw-r--r-- | kabc/addressee.h | 4 | ||||
-rw-r--r-- | kaddressbook/views/kaddressbookcardview.cpp | 22 | ||||
-rw-r--r-- | kaddressbook/views/kaddressbookiconview.cpp | 39 | ||||
-rw-r--r-- | kaddressbook/views/kaddressbooktableview.cpp | 16 |
7 files changed, 128 insertions, 7 deletions
diff --git a/kabc/address.cpp b/kabc/address.cpp index 5ffe511..6151f9e 100644 --- a/kabc/address.cpp +++ b/kabc/address.cpp | |||
@@ -92,24 +92,51 @@ QStringList Address::asList() | |||
92 | { | 92 | { |
93 | QStringList result; | 93 | QStringList result; |
94 | if ( ! mPostOfficeBox.isEmpty() )result.append(mPostOfficeBox); | 94 | if ( ! mPostOfficeBox.isEmpty() )result.append(mPostOfficeBox); |
95 | if ( ! mExtended.isEmpty())result.append(mExtended); | 95 | if ( ! mExtended.isEmpty())result.append(mExtended); |
96 | if ( ! mStreet.isEmpty())result.append(mStreet); | 96 | if ( ! mStreet.isEmpty())result.append(mStreet); |
97 | if ( ! mLocality.isEmpty() )result.append(mLocality); | 97 | if ( ! mLocality.isEmpty() )result.append(mLocality); |
98 | if ( ! mRegion.isEmpty())result.append(mRegion); | 98 | if ( ! mRegion.isEmpty())result.append(mRegion); |
99 | if ( ! mPostalCode.isEmpty())result.append(mPostalCode); | 99 | if ( ! mPostalCode.isEmpty())result.append(mPostalCode); |
100 | if ( ! mCountry.isEmpty())result.append(mCountry); | 100 | if ( ! mCountry.isEmpty())result.append(mCountry); |
101 | if ( ! mLabel.isEmpty() )result.append(mLabel); | 101 | if ( ! mLabel.isEmpty() )result.append(mLabel); |
102 | return result; | 102 | return result; |
103 | } | 103 | } |
104 | |||
105 | bool Address::matchAddress( QRegExp* re ) const | ||
106 | { | ||
107 | |||
108 | #if QT_VERSION >= 0x030000 | ||
109 | if (re->search( mPostOfficeBox ) == 0) return true; | ||
110 | if (re->search( mExtended ) == 0) return true; | ||
111 | if (re->search( mStreet ) == 0) return true; | ||
112 | if (re->search( mLocality ) == 0) return true; | ||
113 | if (re->search( mRegion ) == 0) return true; | ||
114 | if (re->search( mPostalCode ) == 0) return true; | ||
115 | if (re->search( mCountry ) == 0) return true; | ||
116 | if (re->search( mLabel ) == 0) return true; | ||
117 | #else | ||
118 | if (re->match( mPostOfficeBox ) == 0) return true; | ||
119 | if (re->match( mExtended ) == 0) return true; | ||
120 | if (re->match( mStreet ) == 0) return true; | ||
121 | if (re->match( mLocality ) == 0) return true; | ||
122 | if (re->match( mRegion ) == 0) return true; | ||
123 | if (re->match( mPostalCode ) == 0) return true; | ||
124 | if (re->match( mCountry ) == 0) return true; | ||
125 | if (re->match( mLabel ) == 0) return true; | ||
126 | #endif | ||
127 | |||
128 | return false; | ||
129 | } | ||
130 | |||
104 | void Address::clear() | 131 | void Address::clear() |
105 | { | 132 | { |
106 | *this = Address(); | 133 | *this = Address(); |
107 | } | 134 | } |
108 | 135 | ||
109 | void Address::setId( const QString &id ) | 136 | void Address::setId( const QString &id ) |
110 | { | 137 | { |
111 | mEmpty = false; | 138 | mEmpty = false; |
112 | 139 | ||
113 | mId = id; | 140 | mId = id; |
114 | } | 141 | } |
115 | 142 | ||
diff --git a/kabc/address.h b/kabc/address.h index 37dd851..38ad20b 100644 --- a/kabc/address.h +++ b/kabc/address.h | |||
@@ -21,24 +21,25 @@ | |||
21 | /* | 21 | /* |
22 | Enhanced Version of the file for platform independent KDE tools. | 22 | Enhanced Version of the file for platform independent KDE tools. |
23 | Copyright (c) 2004 Ulf Schenk | 23 | Copyright (c) 2004 Ulf Schenk |
24 | 24 | ||
25 | $Id$ | 25 | $Id$ |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #ifndef KABC_ADDRESS_H | 28 | #ifndef KABC_ADDRESS_H |
29 | #define KABC_ADDRESS_H | 29 | #define KABC_ADDRESS_H |
30 | 30 | ||
31 | #include <qmap.h> | 31 | #include <qmap.h> |
32 | #include <qstring.h> | 32 | #include <qstring.h> |
33 | #include <qregexp.h> | ||
33 | #include <qstringlist.h> | 34 | #include <qstringlist.h> |
34 | #include <qvaluelist.h> | 35 | #include <qvaluelist.h> |
35 | 36 | ||
36 | // template tags for address formatting localization | 37 | // template tags for address formatting localization |
37 | #define KABC_FMTTAG_realname QString("%n") | 38 | #define KABC_FMTTAG_realname QString("%n") |
38 | #define KABC_FMTTAG_REALNAME QString("%N") | 39 | #define KABC_FMTTAG_REALNAME QString("%N") |
39 | #define KABC_FMTTAG_company QString("%cm") | 40 | #define KABC_FMTTAG_company QString("%cm") |
40 | #define KABC_FMTTAG_COMPANY QString("%CM") | 41 | #define KABC_FMTTAG_COMPANY QString("%CM") |
41 | #define KABC_FMTTAG_pobox QString("%p") | 42 | #define KABC_FMTTAG_pobox QString("%p") |
42 | #define KABC_FMTTAG_street QString("%s") | 43 | #define KABC_FMTTAG_street QString("%s") |
43 | #define KABC_FMTTAG_STREET QString("%S") | 44 | #define KABC_FMTTAG_STREET QString("%S") |
44 | #define KABC_FMTTAG_zipcode QString("%z") | 45 | #define KABC_FMTTAG_zipcode QString("%z") |
@@ -86,24 +87,25 @@ class Address | |||
86 | 87 | ||
87 | /** | 88 | /** |
88 | Constructor that creates an empty Address, which is initialized | 89 | Constructor that creates an empty Address, which is initialized |
89 | with a unique id (see @ref id()). | 90 | with a unique id (see @ref id()). |
90 | */ | 91 | */ |
91 | Address(); | 92 | Address(); |
92 | 93 | ||
93 | /** | 94 | /** |
94 | This is like @ref Address() just above, with the difference | 95 | This is like @ref Address() just above, with the difference |
95 | that you can specify the type. | 96 | that you can specify the type. |
96 | */ | 97 | */ |
97 | Address( int ); | 98 | Address( int ); |
99 | bool matchAddress( QRegExp* searchExp ) const; | ||
98 | 100 | ||
99 | bool operator==( const Address & ) const; | 101 | bool operator==( const Address & ) const; |
100 | bool operator!=( const Address & ) const; | 102 | bool operator!=( const Address & ) const; |
101 | 103 | ||
102 | /** | 104 | /** |
103 | Returns true, if the address is empty. | 105 | Returns true, if the address is empty. |
104 | */ | 106 | */ |
105 | bool isEmpty() const; | 107 | bool isEmpty() const; |
106 | 108 | ||
107 | /** | 109 | /** |
108 | Clears all entries of the address. | 110 | Clears all entries of the address. |
109 | */ | 111 | */ |
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 155ce24..7e1e414 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp | |||
@@ -297,25 +297,50 @@ void Addressee::computeCsum(const QString &dev) | |||
297 | } | 297 | } |
298 | uint cs = getCsum4List(l); | 298 | uint cs = getCsum4List(l); |
299 | 299 | ||
300 | #if 0 | 300 | #if 0 |
301 | for ( iii = 0; iii < l.count(); ++iii) | 301 | for ( iii = 0; iii < l.count(); ++iii) |
302 | qDebug("%d***%s***",iii,l[iii].latin1()); | 302 | qDebug("%d***%s***",iii,l[iii].latin1()); |
303 | qDebug("CSUM computed %d %s %s", cs,QString::number (cs ).latin1(), uid().latin1() ); | 303 | qDebug("CSUM computed %d %s %s", cs,QString::number (cs ).latin1(), uid().latin1() ); |
304 | #endif | 304 | #endif |
305 | 305 | ||
306 | 306 | ||
307 | setCsum( dev, QString::number (cs )); | 307 | setCsum( dev, QString::number (cs )); |
308 | } | 308 | } |
309 | bool Addressee::matchAddress( QRegExp* re ) const | ||
310 | { | ||
311 | KABC::Address::List::Iterator addressIter; | ||
312 | for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end(); | ||
313 | ++addressIter ) { | ||
314 | if ( (*addressIter).matchAddress( re ) ) | ||
315 | return true; | ||
316 | } | ||
317 | return false; | ||
318 | } | ||
319 | bool Addressee::matchPhoneNumber( QRegExp* re ) const | ||
320 | { | ||
321 | KABC::PhoneNumber::List::Iterator phoneIter; | ||
322 | |||
323 | for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); ++phoneIter ) { | ||
324 | #if QT_VERSION >= 0x030000 | ||
325 | if (re->search( (*phoneIter).number() ) == 0) | ||
326 | #else | ||
327 | if (re->match( (*phoneIter).number() ) == 0) | ||
328 | #endif | ||
329 | return true; | ||
309 | 330 | ||
331 | } | ||
332 | return false; | ||
333 | |||
334 | } | ||
310 | void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) | 335 | void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) |
311 | { | 336 | { |
312 | // merge all standard non-outlook fields. | 337 | // merge all standard non-outlook fields. |
313 | //if isSubSet (e.g. mobile phone sync) merge all fields | 338 | //if isSubSet (e.g. mobile phone sync) merge all fields |
314 | 339 | ||
315 | detach(); | 340 | detach(); |
316 | if ( isSubSet ) { | 341 | if ( isSubSet ) { |
317 | if ( mData->name.isEmpty() ) mData->name = ad.mData->name; | 342 | if ( mData->name.isEmpty() ) mData->name = ad.mData->name; |
318 | if ( mData->formattedName.isEmpty() ) mData->formattedName = ad.mData->formattedName; | 343 | if ( mData->formattedName.isEmpty() ) mData->formattedName = ad.mData->formattedName; |
319 | if ( mData->familyName.isEmpty() ) mData->familyName = ad.mData->familyName; | 344 | if ( mData->familyName.isEmpty() ) mData->familyName = ad.mData->familyName; |
320 | if ( mData->givenName.isEmpty() ) mData->givenName = ad.mData->givenName ; | 345 | if ( mData->givenName.isEmpty() ) mData->givenName = ad.mData->givenName ; |
321 | if ( mData->additionalName ) mData->additionalName = ad.mData->additionalName; | 346 | if ( mData->additionalName ) mData->additionalName = ad.mData->additionalName; |
diff --git a/kabc/addressee.h b/kabc/addressee.h index a2fbcf5..d1c07cb 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h | |||
@@ -22,24 +22,25 @@ | |||
22 | /* | 22 | /* |
23 | Enhanced Version of the file for platform independent KDE tools. | 23 | Enhanced Version of the file for platform independent KDE tools. |
24 | Copyright (c) 2004 Ulf Schenk | 24 | Copyright (c) 2004 Ulf Schenk |
25 | 25 | ||
26 | $Id$ | 26 | $Id$ |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #ifndef KABC_ADDRESSEE_H | 29 | #ifndef KABC_ADDRESSEE_H |
30 | #define KABC_ADDRESSEE_H | 30 | #define KABC_ADDRESSEE_H |
31 | 31 | ||
32 | #include <qdatetime.h> | 32 | #include <qdatetime.h> |
33 | #include <qstring.h> | 33 | #include <qstring.h> |
34 | #include <qregexp.h> | ||
34 | #include <qstringlist.h> | 35 | #include <qstringlist.h> |
35 | #include <qvaluelist.h> | 36 | #include <qvaluelist.h> |
36 | 37 | ||
37 | #include <ksharedptr.h> | 38 | #include <ksharedptr.h> |
38 | #include <kurl.h> | 39 | #include <kurl.h> |
39 | 40 | ||
40 | #include "address.h" | 41 | #include "address.h" |
41 | #include "agent.h" | 42 | #include "agent.h" |
42 | #include "geo.h" | 43 | #include "geo.h" |
43 | #include "key.h" | 44 | #include "key.h" |
44 | #include "phonenumber.h" | 45 | #include "phonenumber.h" |
45 | #include "picture.h" | 46 | #include "picture.h" |
@@ -641,24 +642,27 @@ class Addressee | |||
641 | 642 | ||
642 | /** | 643 | /** |
643 | Remove phone number. If no phone number with the given id exists for this | 644 | Remove phone number. If no phone number with the given id exists for this |
644 | addresse nothing happens. | 645 | addresse nothing happens. |
645 | */ | 646 | */ |
646 | void removePhoneNumber( const PhoneNumber &phoneNumber ); | 647 | void removePhoneNumber( const PhoneNumber &phoneNumber ); |
647 | 648 | ||
648 | /** | 649 | /** |
649 | Return phone number, which matches the given type. | 650 | Return phone number, which matches the given type. |
650 | */ | 651 | */ |
651 | PhoneNumber phoneNumber( int type ) const; | 652 | PhoneNumber phoneNumber( int type ) const; |
652 | 653 | ||
654 | bool matchPhoneNumber( QRegExp* searchExp ) const; | ||
655 | bool matchAddress( QRegExp* searchExp ) const; | ||
656 | |||
653 | /** | 657 | /** |
654 | Return list of all phone numbers. | 658 | Return list of all phone numbers. |
655 | */ | 659 | */ |
656 | PhoneNumber::List phoneNumbers() const; | 660 | PhoneNumber::List phoneNumbers() const; |
657 | 661 | ||
658 | /** | 662 | /** |
659 | Return list of phone numbers with a special type. | 663 | Return list of phone numbers with a special type. |
660 | */ | 664 | */ |
661 | PhoneNumber::List phoneNumbers( int type ) const; | 665 | PhoneNumber::List phoneNumbers( int type ) const; |
662 | 666 | ||
663 | /** | 667 | /** |
664 | Return phone number with the given id. | 668 | Return phone number with the given id. |
diff --git a/kaddressbook/views/kaddressbookcardview.cpp b/kaddressbook/views/kaddressbookcardview.cpp index ca21016..b503652 100644 --- a/kaddressbook/views/kaddressbookcardview.cpp +++ b/kaddressbook/views/kaddressbookcardview.cpp | |||
@@ -320,36 +320,54 @@ void KAddressBookCardView::doSearch( const QString& s,KABC::Field *field ) | |||
320 | if (re.match(field->value( *it ).lower()) == 0) | 320 | if (re.match(field->value( *it ).lower()) == 0) |
321 | #endif | 321 | #endif |
322 | new AddresseeCardViewItem(fields(), mShowEmptyFields, | 322 | new AddresseeCardViewItem(fields(), mShowEmptyFields, |
323 | addressBook(), *it, mCardView); | 323 | addressBook(), *it, mCardView); |
324 | 324 | ||
325 | } | 325 | } |
326 | } else { | 326 | } else { |
327 | KABC::Field::List fieldList = allFields(); | 327 | KABC::Field::List fieldList = allFields(); |
328 | KABC::Field::List::ConstIterator fieldIt; | 328 | KABC::Field::List::ConstIterator fieldIt; |
329 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { | 329 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { |
330 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) | 330 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) |
331 | continue; | 331 | continue; |
332 | bool match = false; | ||
332 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { | 333 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { |
333 | #if QT_VERSION >= 0x030000 | 334 | #if QT_VERSION >= 0x030000 |
334 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) | 335 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) |
335 | #else | 336 | #else |
336 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) | 337 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) |
337 | #endif | 338 | #endif |
338 | { | 339 | { |
339 | new AddresseeCardViewItem(fields(), mShowEmptyFields, | 340 | new AddresseeCardViewItem(fields(), mShowEmptyFields, |
340 | addressBook(), *it, mCardView); | 341 | addressBook(), *it, mCardView); |
342 | match = true; | ||
341 | break; | 343 | break; |
342 | } | 344 | } |
343 | } | 345 | } |
346 | if ( ! match ) { | ||
347 | if ( (*it).matchPhoneNumber( &re ) ) { | ||
348 | new AddresseeCardViewItem(fields(), mShowEmptyFields, | ||
349 | addressBook(), *it, mCardView); | ||
350 | match = true; | ||
351 | break; | ||
352 | } | ||
353 | } | ||
354 | if ( ! match ) { | ||
355 | if ( (*it).matchAddress( &re ) ) { | ||
356 | new AddresseeCardViewItem(fields(), mShowEmptyFields, | ||
357 | addressBook(), *it, mCardView); | ||
358 | match = true; | ||
359 | break; | ||
360 | } | ||
361 | } | ||
344 | } | 362 | } |
345 | } | 363 | } |
346 | mCardView->viewport()->setUpdatesEnabled( true ); | 364 | mCardView->viewport()->setUpdatesEnabled( true ); |
347 | mCardView->viewport()->update(); | 365 | mCardView->viewport()->update(); |
348 | if ( mCardView->firstItem() ) { | 366 | if ( mCardView->firstItem() ) { |
349 | mCardView->setCurrentItem ( mCardView->firstItem() ); | 367 | mCardView->setCurrentItem ( mCardView->firstItem() ); |
350 | mCardView->setSelected ( mCardView->firstItem() , true ); | 368 | mCardView->setSelected ( mCardView->firstItem() , true ); |
351 | } | 369 | } |
352 | else | 370 | else |
353 | emit selected(QString::null); | 371 | emit selected(QString::null); |
354 | } | 372 | } |
355 | QStringList KAddressBookCardView::selectedUids() | 373 | QStringList KAddressBookCardView::selectedUids() |
diff --git a/kaddressbook/views/kaddressbookiconview.cpp b/kaddressbook/views/kaddressbookiconview.cpp index 4bbdf1d..d6ddec3 100644 --- a/kaddressbook/views/kaddressbookiconview.cpp +++ b/kaddressbook/views/kaddressbookiconview.cpp | |||
@@ -141,44 +141,57 @@ class AddresseeIconViewItem : public QIconViewItem | |||
141 | 141 | ||
142 | const KABC::Addressee &addressee() const { return mAddressee; } | 142 | const KABC::Addressee &addressee() const { return mAddressee; } |
143 | 143 | ||
144 | void refresh() | 144 | void refresh() |
145 | { | 145 | { |
146 | // Update our addressee, since it may have changed elsewhere | 146 | // Update our addressee, since it may have changed elsewhere |
147 | mAddressee = mDocument->findByUid(mAddressee.uid()); | 147 | mAddressee = mDocument->findByUid(mAddressee.uid()); |
148 | 148 | ||
149 | if (!mAddressee.isEmpty()) | 149 | if (!mAddressee.isEmpty()) |
150 | setText( mAddressee.givenName() + " " + mAddressee.familyName() ); | 150 | setText( mAddressee.givenName() + " " + mAddressee.familyName() ); |
151 | 151 | ||
152 | QPixmap icon; | 152 | QPixmap icon; |
153 | QPixmap defaultIcon( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop, 128 ) ); | 153 | |
154 | KABC::Picture pic = mAddressee.photo(); | 154 | KABC::Picture pic = mAddressee.photo(); |
155 | if ( pic.data().isNull() ) | 155 | if ( pic.data().isNull() ) |
156 | pic = mAddressee.logo(); | 156 | pic = mAddressee.logo(); |
157 | 157 | ||
158 | if ( pic.isIntern() && !pic.data().isNull() ) { | 158 | if ( pic.isIntern() && !pic.data().isNull() ) { |
159 | QImage img = pic.data(); | 159 | QImage img = pic.data(); |
160 | #ifndef KAB_EMBEDDED | 160 | #ifndef KAB_EMBEDDED |
161 | if ( img.width() > img.height() ) | 161 | if ( img.width() > img.height() ) |
162 | icon = img.scaleWidth( 32 ); | 162 | icon = img.scaleWidth( 32 ); |
163 | else | 163 | else |
164 | icon = img.scaleHeight( 32 ); | 164 | icon = img.scaleHeight( 32 ); |
165 | #else //KAB_EMBEDDED | 165 | #else //KAB_EMBEDDED |
166 | |||
167 | int wid = pic.data().width(); | ||
168 | int hei = pic.data().height(); | ||
169 | int max = 48; | ||
170 | if ( wid > max || hei > max ) { | ||
171 | if ( wid > hei ) { | ||
172 | hei = (hei*max)/wid; | ||
173 | wid = max; | ||
174 | } else { | ||
175 | wid = (wid*max)/hei; | ||
176 | hei = max; | ||
177 | } | ||
178 | } | ||
166 | qDebug("AddresseeIconViewItem::refresh - scale here dependend of the displaysize and the right factor"); | 179 | qDebug("AddresseeIconViewItem::refresh - scale here dependend of the displaysize and the right factor"); |
167 | icon.convertFromImage(img.smoothScale(32, 32)); | 180 | icon.convertFromImage(img.smoothScale(wid, hei)); |
168 | #endif //KAB_EMBEDDED | 181 | #endif //KAB_EMBEDDED |
169 | 182 | ||
170 | } else | 183 | } else { |
171 | icon = defaultIcon; | 184 | icon = KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop, 128 ); |
172 | 185 | } | |
173 | setPixmap( icon ); | 186 | setPixmap( icon ); |
174 | } | 187 | } |
175 | 188 | ||
176 | private: | 189 | private: |
177 | KABC::Field::List mFields; | 190 | KABC::Field::List mFields; |
178 | KABC::AddressBook *mDocument; | 191 | KABC::AddressBook *mDocument; |
179 | KABC::Addressee mAddressee; | 192 | KABC::Addressee mAddressee; |
180 | }; | 193 | }; |
181 | 194 | ||
182 | /////////////////////////////// | 195 | /////////////////////////////// |
183 | // KAddressBookView | 196 | // KAddressBookView |
184 | 197 | ||
@@ -274,34 +287,50 @@ void KAddressBookIconView::doSearch( const QString& s ,KABC::Field *field ) | |||
274 | if (re.match(field->value( *it ).lower()) == 0) | 287 | if (re.match(field->value( *it ).lower()) == 0) |
275 | #endif | 288 | #endif |
276 | mIconList.append(new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); | 289 | mIconList.append(new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); |
277 | 290 | ||
278 | 291 | ||
279 | } | 292 | } |
280 | } else { | 293 | } else { |
281 | KABC::Field::List fieldList = allFields(); | 294 | KABC::Field::List fieldList = allFields(); |
282 | KABC::Field::List::ConstIterator fieldIt; | 295 | KABC::Field::List::ConstIterator fieldIt; |
283 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { | 296 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { |
284 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) | 297 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) |
285 | continue; | 298 | continue; |
299 | bool match = false; | ||
286 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { | 300 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { |
287 | #if QT_VERSION >= 0x030000 | 301 | #if QT_VERSION >= 0x030000 |
288 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) | 302 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) |
289 | #else | 303 | #else |
290 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) | 304 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) |
291 | #endif | 305 | #endif |
292 | { | 306 | { |
293 | mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); | 307 | mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); |
308 | match = true; | ||
294 | break; | 309 | break; |
295 | } | 310 | } |
311 | } | ||
312 | if ( ! match ) { | ||
313 | if ( (*it).matchPhoneNumber( &re ) ) { | ||
314 | mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); | ||
315 | match = true; | ||
316 | break; | ||
317 | } | ||
318 | } | ||
319 | if ( ! match ) { | ||
320 | if ( (*it).matchAddress( &re ) ) { | ||
321 | mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); | ||
322 | match = true; | ||
323 | break; | ||
324 | } | ||
296 | } | 325 | } |
297 | } | 326 | } |
298 | } | 327 | } |
299 | mIconView->arrangeItemsInGrid( true ); | 328 | mIconView->arrangeItemsInGrid( true ); |
300 | if ( mIconView->firstItem() ) { | 329 | if ( mIconView->firstItem() ) { |
301 | mIconView->setCurrentItem ( mIconView->firstItem() ); | 330 | mIconView->setCurrentItem ( mIconView->firstItem() ); |
302 | mIconView->setSelected ( mIconView->firstItem() , true ); | 331 | mIconView->setSelected ( mIconView->firstItem() , true ); |
303 | } | 332 | } |
304 | else | 333 | else |
305 | emit selected(QString::null); | 334 | emit selected(QString::null); |
306 | } | 335 | } |
307 | QStringList KAddressBookIconView::selectedUids() | 336 | QStringList KAddressBookIconView::selectedUids() |
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp index 348f491..02fc40a 100644 --- a/kaddressbook/views/kaddressbooktableview.cpp +++ b/kaddressbook/views/kaddressbooktableview.cpp | |||
@@ -161,36 +161,52 @@ void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field ) | |||
161 | #else | 161 | #else |
162 | if (re.match(field->value( *it ).lower()) == 0) | 162 | if (re.match(field->value( *it ).lower()) == 0) |
163 | #endif | 163 | #endif |
164 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); | 164 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); |
165 | 165 | ||
166 | } | 166 | } |
167 | } else { | 167 | } else { |
168 | KABC::Field::List fieldList = allFields(); | 168 | KABC::Field::List fieldList = allFields(); |
169 | KABC::Field::List::ConstIterator fieldIt; | 169 | KABC::Field::List::ConstIterator fieldIt; |
170 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { | 170 | for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) { |
171 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) | 171 | if ( (*it).uid().left(2) == "la" && (*it).uid().left(19) == QString("last-syncAddressee-") ) |
172 | continue; | 172 | continue; |
173 | bool match = false; | ||
173 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { | 174 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { |
174 | #if QT_VERSION >= 0x030000 | 175 | #if QT_VERSION >= 0x030000 |
175 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) | 176 | if (re.search((*fieldIt)->value( *it ).lower()) == 0) |
176 | #else | 177 | #else |
177 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) | 178 | if (re.match((*fieldIt)->value( *it ).lower()) == 0) |
178 | #endif | 179 | #endif |
179 | { | 180 | { |
180 | //qDebug("match %s %s %s", pattern.latin1(), (*fieldIt)->value( *it ).latin1(), (*fieldIt)->label().latin1() ); | 181 | //qDebug("match %s %s %s", pattern.latin1(), (*fieldIt)->value( *it ).latin1(), (*fieldIt)->label().latin1() ); |
181 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); | 182 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); |
183 | match = true; | ||
182 | break; | 184 | break; |
183 | } | 185 | } |
184 | } | 186 | } |
187 | if ( ! match ) { | ||
188 | if ( (*it).matchPhoneNumber( &re ) ) { | ||
189 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); | ||
190 | match = true; | ||
191 | break; | ||
192 | } | ||
193 | } | ||
194 | if ( ! match ) { | ||
195 | if ( (*it).matchAddress( &re ) ) { | ||
196 | ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); | ||
197 | match = true; | ||
198 | break; | ||
199 | } | ||
200 | } | ||
185 | } | 201 | } |
186 | } | 202 | } |
187 | // Sometimes the background pixmap gets messed up when we add lots | 203 | // Sometimes the background pixmap gets messed up when we add lots |
188 | // of items. | 204 | // of items. |
189 | //mListView->repaint(); | 205 | //mListView->repaint(); |
190 | if ( mListView->firstChild() ) { | 206 | if ( mListView->firstChild() ) { |
191 | mListView->setCurrentItem ( mListView->firstChild() ); | 207 | mListView->setCurrentItem ( mListView->firstChild() ); |
192 | mListView->setSelected ( mListView->firstChild(), true ); | 208 | mListView->setSelected ( mListView->firstChild(), true ); |
193 | } | 209 | } |
194 | else | 210 | else |
195 | emit selected(QString::null); | 211 | emit selected(QString::null); |
196 | 212 | ||