summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt2
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt6
-rw-r--r--kabc/addressee.cpp25
-rw-r--r--kabc/addressee.h5
-rw-r--r--kabc/field.cpp20
-rw-r--r--kabc/phonenumber.cpp13
-rw-r--r--kaddressbook/views/kaddressbooktableview.cpp2
7 files changed, 61 insertions, 12 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 53eb428..bc0c62a 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,21 +1,23 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.0.26 ************ 3********** VERSION 2.0.26 ************
4 4
5And again fixed some bugs. 5And again fixed some bugs.
6Added two more fields to the KA/Pi view config:
7A "Mobile (home)" and a "Mobile (work)" field.
6 8
7********** VERSION 2.0.25 ************ 9********** VERSION 2.0.25 ************
8 10
9And again fixed some bugs. 11And again fixed some bugs.
10 12
11********** VERSION 2.0.24 ************ 13********** VERSION 2.0.24 ************
12 14
13Fixed again a lot of small bugs. 15Fixed again a lot of small bugs.
14Some performance optimizations in date navigator. 16Some performance optimizations in date navigator.
15Month view displays now multi days events on top of each cell, such that it is more likely that all multi days items of one event are in the same row. 17Month view displays now multi days events on top of each cell, such that it is more likely that all multi days items of one event are in the same row.
16 18
17********** VERSION 2.0.23 ************ 19********** VERSION 2.0.23 ************
18 20
19Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation. 21Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation.
20Fixed the (agenda) layout of KO/Pi on 5500er. 22Fixed the (agenda) layout of KO/Pi on 5500er.
21Some usebility enhancements (e.g. reselection the current item of the todo view after some changes). 23Some usebility enhancements (e.g. reselection the current item of the todo view after some changes).
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index e54e140..f67a34d 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -740,23 +740,23 @@
740{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 740{ "Receiving synced file...","Gesyncte Daten erhalten..." },
741{ "Received %1 bytes","%1 Bytes erhalten" }, 741{ "Received %1 bytes","%1 Bytes erhalten" },
742{ "Writing file to disk...","Speichere Datei..." }, 742{ "Writing file to disk...","Speichere Datei..." },
743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 743{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 744{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
745{ "Synchronize!","Synchronisiere!" }, 745{ "Synchronize!","Synchronisiere!" },
746{ "High clock skew!","Großer Uhrzeitunterschied!" }, 746{ "High clock skew!","Großer Uhrzeitunterschied!" },
747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 747{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 748{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, 749{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" },
750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, 750{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" },
751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, 751{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" },
752{ "Edit new contact","Bearbeite neuen Kontakt" }, 752{ "Edit new contact","Bearbeite neuen Kontakt" },
753{ "Edit ","Bearbeite " }, 753{ "Edit ","Bearbeite " },
754{ "No contact changed!","Kein Kontakt verändert" }, 754{ "No contact changed!","Kein Kontakt verändert" },
755{ "%1 contacts changed!","%1 Kontakte geändert!" }, 755{ "%1 contacts changed!","%1 Kontakte geändert!" },
756{ "","" }, 756{ "Mobile (home)","Handy (Arbeit)" },
757{ "","" }, 757{ "Mobile (work)","Handy (Privat)" },
758{ "","" }, 758{ "Def.Formatted Name","Def. Format. Name" },
759{ "","" }, 759{ "","" },
760{ "","" }, 760{ "","" },
761{ "","" }, 761{ "","" },
762{ "","" }, \ No newline at end of file 762{ "","" }, \ No newline at end of file
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 39d14bb..7f592e9 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -38,32 +38,33 @@ $Id$
38#include <libkcal/syncdefines.h> 38#include <libkcal/syncdefines.h>
39 39
40//US #include "resource.h" 40//US #include "resource.h"
41#include "addressee.h" 41#include "addressee.h"
42 42
43using namespace KABC; 43using namespace KABC;
44 44
45static bool matchBinaryPattern( int value, int pattern ); 45static bool matchBinaryPattern( int value, int pattern );
46static bool matchBinaryPatternA( int value, int pattern ); 46static bool matchBinaryPatternA( int value, int pattern );
47static bool matchBinaryPatternP( int value, int pattern ); 47static bool matchBinaryPatternP( int value, int pattern );
48 48
49struct Addressee::AddresseeData : public KShared 49struct Addressee::AddresseeData : public KShared
50{ 50{
51 QString uid; 51 QString uid;
52 QString name; 52 QString name;
53 QString formattedName; 53 QString formattedName;
54 QString defaultFormattedName;
54 QString familyName; 55 QString familyName;
55 QString givenName; 56 QString givenName;
56 QString additionalName; 57 QString additionalName;
57 QString prefix; 58 QString prefix;
58 QString suffix; 59 QString suffix;
59 QString nickName; 60 QString nickName;
60 QDateTime birthday; 61 QDateTime birthday;
61 QString mailer; 62 QString mailer;
62 TimeZone timeZone; 63 TimeZone timeZone;
63 Geo geo; 64 Geo geo;
64 QString title; 65 QString title;
65 QString role; 66 QString role;
66 QString organization; 67 QString organization;
67 QString note; 68 QString note;
68 QString productId; 69 QString productId;
69 QDateTime revision; 70 QDateTime revision;
@@ -734,43 +735,59 @@ QString Addressee::name() const
734 return mData->name; 735 return mData->name;
735} 736}
736 737
737QString Addressee::nameLabel() 738QString Addressee::nameLabel()
738{ 739{
739 return i18n("Name"); 740 return i18n("Name");
740} 741}
741 742
742 743
743void Addressee::setFormattedName( const QString &formattedName ) 744void Addressee::setFormattedName( const QString &formattedName )
744{ 745{
745 if ( formattedName == mData->formattedName ) return; 746 if ( formattedName == mData->formattedName ) return;
746 detach(); 747 detach();
747 mData->empty = false; 748 mData->empty = false;
748 mData->formattedName = formattedName; 749 mData->formattedName = formattedName;
749} 750}
751void Addressee::setDefaultFormattedName( const QString &formattedName )
752{
753 if ( formattedName == mData->defaultFormattedName ) return;
754 detach();
755 mData->empty = false;
756 mData->defaultFormattedName = formattedName;
757}
750 758
751QString Addressee::formattedName() const 759QString Addressee::formattedName() const
752{ 760{
753 return mData->formattedName; 761 return mData->formattedName;
754} 762}
763QString Addressee::defaultFormattedName() const
764{
765 return mData->defaultFormattedName;
766}
755 767
756QString Addressee::formattedNameLabel() 768QString Addressee::formattedNameLabel()
757{ 769{
758 return i18n("Formatted Name"); 770 return i18n("Formatted Name");
759} 771}
760 772
773QString Addressee::defaultFormattedNameLabel()
774{
775 return i18n("Def.Formatted Name");
776}
777
761 778
762void Addressee::setFamilyName( const QString &familyName ) 779void Addressee::setFamilyName( const QString &familyName )
763{ 780{
764 if ( familyName == mData->familyName ) return; 781 if ( familyName == mData->familyName ) return;
765 detach(); 782 detach();
766 mData->empty = false; 783 mData->empty = false;
767 mData->familyName = familyName; 784 mData->familyName = familyName;
768} 785}
769 786
770QString Addressee::familyName() const 787QString Addressee::familyName() const
771{ 788{
772 return mData->familyName; 789 return mData->familyName;
773} 790}
774 791
775QString Addressee::familyNameLabel() 792QString Addressee::familyNameLabel()
776{ 793{
@@ -967,32 +984,40 @@ QString Addressee::businessAddressLabelLabel()
967QString Addressee::homePhoneLabel() 984QString Addressee::homePhoneLabel()
968{ 985{
969 return i18n("Home Phone"); 986 return i18n("Home Phone");
970} 987}
971 988
972 989
973QString Addressee::businessPhoneLabel() 990QString Addressee::businessPhoneLabel()
974{ 991{
975 return i18n("Business Phone"); 992 return i18n("Business Phone");
976} 993}
977 994
978 995
979QString Addressee::mobilePhoneLabel() 996QString Addressee::mobilePhoneLabel()
980{ 997{
981 return i18n("Mobile Phone"); 998 return i18n("Mobile Phone");
982} 999}
1000QString Addressee::mobileWorkPhoneLabel()
1001{
1002 return i18n("Mobile (work)");
1003}
1004QString Addressee::mobileHomePhoneLabel()
1005{
1006 return i18n("Mobile (home)");
1007}
983 1008
984 1009
985QString Addressee::homeFaxLabel() 1010QString Addressee::homeFaxLabel()
986{ 1011{
987 return i18n("Home Fax"); 1012 return i18n("Home Fax");
988} 1013}
989 1014
990 1015
991QString Addressee::businessFaxLabel() 1016QString Addressee::businessFaxLabel()
992{ 1017{
993 return i18n("Business Fax"); 1018 return i18n("Business Fax");
994} 1019}
995 1020
996 1021
997QString Addressee::carPhoneLabel() 1022QString Addressee::carPhoneLabel()
998{ 1023{
diff --git a/kabc/addressee.h b/kabc/addressee.h
index 8051fec..0d688f8 100644
--- a/kabc/addressee.h
+++ b/kabc/addressee.h
@@ -141,40 +141,43 @@ class Addressee
141 Set name. 141 Set name.
142 */ 142 */
143 void setName( const QString &name ); 143 void setName( const QString &name );
144 /** 144 /**
145 Return name. 145 Return name.
146 */ 146 */
147 QString name() const; 147 QString name() const;
148 /** 148 /**
149 Return translated label for name field. 149 Return translated label for name field.
150 */ 150 */
151 static QString nameLabel(); 151 static QString nameLabel();
152 152
153 /** 153 /**
154 Set formatted name. 154 Set formatted name.
155 */ 155 */
156 void setFormattedName( const QString &formattedName ); 156 void setFormattedName( const QString &formattedName );
157 void setDefaultFormattedName( const QString &formattedName );
157 /** 158 /**
158 Return formatted name. 159 Return formatted name.
159 */ 160 */
160 QString formattedName() const; 161 QString formattedName() const;
162 QString defaultFormattedName() const;
161 /** 163 /**
162 Return translated label for formattedName field. 164 Return translated label for formattedName field.
163 */ 165 */
164 static QString formattedNameLabel(); 166 static QString formattedNameLabel();
167 static QString defaultFormattedNameLabel();
165 168
166 /** 169 /**
167 Set family name. 170 Set family name.
168 */ 171 */
169 void setFamilyName( const QString &familyName ); 172 void setFamilyName( const QString &familyName );
170 /** 173 /**
171 Return family name. 174 Return family name.
172 */ 175 */
173 QString familyName() const; 176 QString familyName() const;
174 /** 177 /**
175 Return translated label for familyName field. 178 Return translated label for familyName field.
176 */ 179 */
177 static QString familyNameLabel(); 180 static QString familyNameLabel();
178 181
179 /** 182 /**
180 Set given name. 183 Set given name.
@@ -315,32 +318,34 @@ class Addressee
315 static QString businessAddressLabelLabel(); 318 static QString businessAddressLabelLabel();
316 319
317 /** 320 /**
318 Return translated label for homePhone field. 321 Return translated label for homePhone field.
319 */ 322 */
320 static QString homePhoneLabel(); 323 static QString homePhoneLabel();
321 324
322 /** 325 /**
323 Return translated label for businessPhone field. 326 Return translated label for businessPhone field.
324 */ 327 */
325 static QString businessPhoneLabel(); 328 static QString businessPhoneLabel();
326 329
327 /** 330 /**
328 Return translated label for mobilePhone field. 331 Return translated label for mobilePhone field.
329 */ 332 */
330 static QString mobilePhoneLabel(); 333 static QString mobilePhoneLabel();
334 static QString mobileWorkPhoneLabel();
335 static QString mobileHomePhoneLabel();
331 336
332 /** 337 /**
333 Return translated label for homeFax field. 338 Return translated label for homeFax field.
334 */ 339 */
335 static QString homeFaxLabel(); 340 static QString homeFaxLabel();
336 341
337 /** 342 /**
338 Return translated label for businessFax field. 343 Return translated label for businessFax field.
339 */ 344 */
340 static QString businessFaxLabel(); 345 static QString businessFaxLabel();
341 346
342 /** 347 /**
343 Return translated label for carPhone field. 348 Return translated label for carPhone field.
344 */ 349 */
345 static QString carPhoneLabel(); 350 static QString carPhoneLabel();
346 351
diff --git a/kabc/field.cpp b/kabc/field.cpp
index 89d0b77..5c561c3 100644
--- a/kabc/field.cpp
+++ b/kabc/field.cpp
@@ -73,33 +73,36 @@ class Field::FieldImpl
73 HomePhone, 73 HomePhone,
74 BusinessPhone, 74 BusinessPhone,
75 MobilePhone, 75 MobilePhone,
76 HomeFax, 76 HomeFax,
77 BusinessFax, 77 BusinessFax,
78 CarPhone, 78 CarPhone,
79 Isdn, 79 Isdn,
80 Pager, 80 Pager,
81 Email, 81 Email,
82 Mailer, 82 Mailer,
83 Title, 83 Title,
84 Role, 84 Role,
85 Organization, 85 Organization,
86 Note, 86 Note,
87 Url, 87 Url,
88 Resource, 88 Resource,
89 Sip 89 Sip,
90 DefaultFormattedName,
91 MobileWorkPhone,
92 MobileHomePhone
90 }; 93 };
91 94
92 int fieldId() { return mFieldId; } 95 int fieldId() { return mFieldId; }
93 int category() { return mCategory; } 96 int category() { return mCategory; }
94 97
95 QString label() { return mLabel; } 98 QString label() { return mLabel; }
96 QString key() { return mKey; } 99 QString key() { return mKey; }
97 QString app() { return mApp; } 100 QString app() { return mApp; }
98 101
99 private: 102 private:
100 int mFieldId; 103 int mFieldId;
101 int mCategory; 104 int mCategory;
102 105
103 QString mLabel; 106 QString mLabel;
104 QString mKey; 107 QString mKey;
105 QString mApp; 108 QString mApp;
@@ -113,32 +116,34 @@ Field::List Field::mCustomFields;
113 116
114Field::Field( FieldImpl *impl ) 117Field::Field( FieldImpl *impl )
115{ 118{
116 mImpl = impl; 119 mImpl = impl;
117} 120}
118 121
119Field::~Field() 122Field::~Field()
120{ 123{
121 delete mImpl; 124 delete mImpl;
122} 125}
123 126
124QString Field::label() 127QString Field::label()
125{ 128{
126 switch ( mImpl->fieldId() ) { 129 switch ( mImpl->fieldId() ) {
127 case FieldImpl::FormattedName: 130 case FieldImpl::FormattedName:
128 return Addressee::formattedNameLabel(); 131 return Addressee::formattedNameLabel();
132 case FieldImpl::DefaultFormattedName:
133 return Addressee::defaultFormattedNameLabel();
129 case FieldImpl::FamilyName: 134 case FieldImpl::FamilyName:
130 return Addressee::familyNameLabel(); 135 return Addressee::familyNameLabel();
131 case FieldImpl::GivenName: 136 case FieldImpl::GivenName:
132 return Addressee::givenNameLabel(); 137 return Addressee::givenNameLabel();
133 case FieldImpl::AdditionalName: 138 case FieldImpl::AdditionalName:
134 return Addressee::additionalNameLabel(); 139 return Addressee::additionalNameLabel();
135 case FieldImpl::Prefix: 140 case FieldImpl::Prefix:
136 return Addressee::prefixLabel(); 141 return Addressee::prefixLabel();
137 case FieldImpl::Suffix: 142 case FieldImpl::Suffix:
138 return Addressee::suffixLabel(); 143 return Addressee::suffixLabel();
139 case FieldImpl::NickName: 144 case FieldImpl::NickName:
140 return Addressee::nickNameLabel(); 145 return Addressee::nickNameLabel();
141 case FieldImpl::Birthday: 146 case FieldImpl::Birthday:
142 return Addressee::birthdayLabel(); 147 return Addressee::birthdayLabel();
143 case FieldImpl::HomeAddressStreet: 148 case FieldImpl::HomeAddressStreet:
144 return Addressee::homeAddressStreetLabel(); 149 return Addressee::homeAddressStreetLabel();
@@ -157,32 +162,36 @@ QString Field::label()
157 case FieldImpl::BusinessAddressLocality: 162 case FieldImpl::BusinessAddressLocality:
158 return Addressee::businessAddressLocalityLabel(); 163 return Addressee::businessAddressLocalityLabel();
159 case FieldImpl::BusinessAddressRegion: 164 case FieldImpl::BusinessAddressRegion:
160 return Addressee::businessAddressRegionLabel(); 165 return Addressee::businessAddressRegionLabel();
161 case FieldImpl::BusinessAddressPostalCode: 166 case FieldImpl::BusinessAddressPostalCode:
162 return Addressee::businessAddressPostalCodeLabel(); 167 return Addressee::businessAddressPostalCodeLabel();
163 case FieldImpl::BusinessAddressCountry: 168 case FieldImpl::BusinessAddressCountry:
164 return Addressee::businessAddressCountryLabel(); 169 return Addressee::businessAddressCountryLabel();
165 case FieldImpl::BusinessAddressLabel: 170 case FieldImpl::BusinessAddressLabel:
166 return Addressee::businessAddressLabelLabel(); 171 return Addressee::businessAddressLabelLabel();
167 case FieldImpl::HomePhone: 172 case FieldImpl::HomePhone:
168 return Addressee::homePhoneLabel(); 173 return Addressee::homePhoneLabel();
169 case FieldImpl::BusinessPhone: 174 case FieldImpl::BusinessPhone:
170 return Addressee::businessPhoneLabel(); 175 return Addressee::businessPhoneLabel();
171 case FieldImpl::MobilePhone: 176 case FieldImpl::MobilePhone:
172 return Addressee::mobilePhoneLabel(); 177 return Addressee::mobilePhoneLabel();
178 case FieldImpl::MobileHomePhone:
179 return Addressee::mobileHomePhoneLabel();
180 case FieldImpl::MobileWorkPhone:
181 return Addressee::mobileWorkPhoneLabel();
173 case FieldImpl::HomeFax: 182 case FieldImpl::HomeFax:
174 return Addressee::homeFaxLabel(); 183 return Addressee::homeFaxLabel();
175 case FieldImpl::BusinessFax: 184 case FieldImpl::BusinessFax:
176 return Addressee::businessFaxLabel(); 185 return Addressee::businessFaxLabel();
177 case FieldImpl::CarPhone: 186 case FieldImpl::CarPhone:
178 return Addressee::carPhoneLabel(); 187 return Addressee::carPhoneLabel();
179 case FieldImpl::Isdn: 188 case FieldImpl::Isdn:
180 return Addressee::isdnLabel(); 189 return Addressee::isdnLabel();
181 case FieldImpl::Pager: 190 case FieldImpl::Pager:
182 return Addressee::pagerLabel(); 191 return Addressee::pagerLabel();
183 case FieldImpl::Email: 192 case FieldImpl::Email:
184 return Addressee::emailLabel(); 193 return Addressee::emailLabel();
185 case FieldImpl::Mailer: 194 case FieldImpl::Mailer:
186 return Addressee::mailerLabel(); 195 return Addressee::mailerLabel();
187 case FieldImpl::Title: 196 case FieldImpl::Title:
188 return Addressee::titleLabel(); 197 return Addressee::titleLabel();
@@ -226,32 +235,34 @@ QString Field::categoryLabel( int category )
226 case Personal: 235 case Personal:
227 return i18n("Personal"); 236 return i18n("Personal");
228 case Organization: 237 case Organization:
229 return i18n("Organization"); 238 return i18n("Organization");
230 case CustomCategory: 239 case CustomCategory:
231 return i18n("Custom"); 240 return i18n("Custom");
232 default: 241 default:
233 return i18n("Undefined"); 242 return i18n("Undefined");
234 } 243 }
235} 244}
236 245
237QString Field::value( const KABC::Addressee &a ) 246QString Field::value( const KABC::Addressee &a )
238{ 247{
239 switch ( mImpl->fieldId() ) { 248 switch ( mImpl->fieldId() ) {
240 case FieldImpl::FormattedName: 249 case FieldImpl::FormattedName:
241 return a.formattedName(); 250 return a.formattedName();
251 case FieldImpl::DefaultFormattedName:
252 return a.defaultFormattedName();
242 case FieldImpl::FamilyName: 253 case FieldImpl::FamilyName:
243 return a.familyName(); 254 return a.familyName();
244 case FieldImpl::GivenName: 255 case FieldImpl::GivenName:
245 return a.givenName(); 256 return a.givenName();
246 case FieldImpl::AdditionalName: 257 case FieldImpl::AdditionalName:
247 return a.additionalName(); 258 return a.additionalName();
248 case FieldImpl::Prefix: 259 case FieldImpl::Prefix:
249 return a.prefix(); 260 return a.prefix();
250 case FieldImpl::Suffix: 261 case FieldImpl::Suffix:
251 return a.suffix(); 262 return a.suffix();
252 case FieldImpl::NickName: 263 case FieldImpl::NickName:
253 return a.nickName(); 264 return a.nickName();
254 case FieldImpl::Mailer: 265 case FieldImpl::Mailer:
255 return a.mailer(); 266 return a.mailer();
256 case FieldImpl::Title: 267 case FieldImpl::Title:
257 return a.title(); 268 return a.title();
@@ -275,32 +286,36 @@ QString Field::value( const KABC::Addressee &a )
275 } 286 }
276 else 287 else
277 return QString::null; 288 return QString::null;
278 case FieldImpl::Url: 289 case FieldImpl::Url:
279 return a.url().prettyURL(); 290 return a.url().prettyURL();
280//US 291//US
281 case FieldImpl::Resource: 292 case FieldImpl::Resource:
282 return a.resource()->resourceName(); 293 return a.resource()->resourceName();
283 case FieldImpl::Category: 294 case FieldImpl::Category:
284 return a.categories().join(","); 295 return a.categories().join(",");
285 case FieldImpl::HomePhone: 296 case FieldImpl::HomePhone:
286 return a.phoneNumber( PhoneNumber::Home ).number(); 297 return a.phoneNumber( PhoneNumber::Home ).number();
287 case FieldImpl::BusinessPhone: 298 case FieldImpl::BusinessPhone:
288 return a.phoneNumber( PhoneNumber::Work ).number(); 299 return a.phoneNumber( PhoneNumber::Work ).number();
289 case FieldImpl::MobilePhone: 300 case FieldImpl::MobilePhone:
290 return a.phoneNumber( PhoneNumber::Cell ).number(); 301 return a.phoneNumber( PhoneNumber::Cell ).number();
302 case FieldImpl::MobileWorkPhone:
303 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Work ).number();
304 case FieldImpl::MobileHomePhone:
305 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Home ).number();
291 case FieldImpl::HomeFax: 306 case FieldImpl::HomeFax:
292 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number(); 307 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number();
293 case FieldImpl::BusinessFax: 308 case FieldImpl::BusinessFax:
294 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number(); 309 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number();
295 case FieldImpl::CarPhone: 310 case FieldImpl::CarPhone:
296 return a.phoneNumber( PhoneNumber::Car ).number(); 311 return a.phoneNumber( PhoneNumber::Car ).number();
297 case FieldImpl::Isdn: 312 case FieldImpl::Isdn:
298 return a.phoneNumber( PhoneNumber::Isdn ).number(); 313 return a.phoneNumber( PhoneNumber::Isdn ).number();
299 case FieldImpl::Pager: 314 case FieldImpl::Pager:
300 return a.phoneNumber( PhoneNumber::Pager ).number(); 315 return a.phoneNumber( PhoneNumber::Pager ).number();
301 case FieldImpl::Sip: 316 case FieldImpl::Sip:
302 return a.phoneNumber( PhoneNumber::Sip ).number(); 317 return a.phoneNumber( PhoneNumber::Sip ).number();
303 case FieldImpl::HomeAddressStreet: 318 case FieldImpl::HomeAddressStreet:
304 return a.address( Address::Home ).street(); 319 return a.address( Address::Home ).street();
305 case FieldImpl::HomeAddressLocality: 320 case FieldImpl::HomeAddressLocality:
306 return a.address( Address::Home ).locality(); 321 return a.address( Address::Home ).locality();
@@ -380,55 +395,58 @@ bool Field::setValue( KABC::Addressee &a, const QString &value )
380//US never copy the resourcename back to the adressee. 395//US never copy the resourcename back to the adressee.
381 case FieldImpl::Resource: 396 case FieldImpl::Resource:
382 default: 397 default:
383 return false; 398 return false;
384 } 399 }
385} 400}
386 401
387bool Field::isCustom() 402bool Field::isCustom()
388{ 403{
389 return mImpl->fieldId() == FieldImpl::CustomField; 404 return mImpl->fieldId() == FieldImpl::CustomField;
390} 405}
391 406
392Field::List Field::allFields() 407Field::List Field::allFields()
393{ 408{
394 if ( mAllFields.isEmpty() ) { 409 if ( mAllFields.isEmpty() ) {
395 createField( FieldImpl::FormattedName, Frequent ); 410 createField( FieldImpl::FormattedName, Frequent );
411 createField( FieldImpl::DefaultFormattedName, Frequent );
396 createField( FieldImpl::FamilyName, Frequent ); 412 createField( FieldImpl::FamilyName, Frequent );
397 createField( FieldImpl::GivenName, Frequent ); 413 createField( FieldImpl::GivenName, Frequent );
398 createField( FieldImpl::AdditionalName ); 414 createField( FieldImpl::AdditionalName );
399 createField( FieldImpl::Prefix ); 415 createField( FieldImpl::Prefix );
400 createField( FieldImpl::Suffix ); 416 createField( FieldImpl::Suffix );
401 createField( FieldImpl::NickName, Personal ); 417 createField( FieldImpl::NickName, Personal );
402 createField( FieldImpl::Birthday, Personal ); 418 createField( FieldImpl::Birthday, Personal );
403 createField( FieldImpl::Category ); 419 createField( FieldImpl::Category );
404 createField( FieldImpl::HomeAddressStreet, Address|Personal ); 420 createField( FieldImpl::HomeAddressStreet, Address|Personal );
405 createField( FieldImpl::HomeAddressLocality, Address|Personal ); 421 createField( FieldImpl::HomeAddressLocality, Address|Personal );
406 createField( FieldImpl::HomeAddressRegion, Address|Personal ); 422 createField( FieldImpl::HomeAddressRegion, Address|Personal );
407 createField( FieldImpl::HomeAddressPostalCode, Address|Personal ); 423 createField( FieldImpl::HomeAddressPostalCode, Address|Personal );
408 createField( FieldImpl::HomeAddressCountry, Address|Personal ); 424 createField( FieldImpl::HomeAddressCountry, Address|Personal );
409 createField( FieldImpl::HomeAddressLabel, Address|Personal ); 425 createField( FieldImpl::HomeAddressLabel, Address|Personal );
410 createField( FieldImpl::BusinessAddressStreet, Address|Organization ); 426 createField( FieldImpl::BusinessAddressStreet, Address|Organization );
411 createField( FieldImpl::BusinessAddressLocality, Address|Organization ); 427 createField( FieldImpl::BusinessAddressLocality, Address|Organization );
412 createField( FieldImpl::BusinessAddressRegion, Address|Organization ); 428 createField( FieldImpl::BusinessAddressRegion, Address|Organization );
413 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization ); 429 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization );
414 createField( FieldImpl::BusinessAddressCountry, Address|Organization ); 430 createField( FieldImpl::BusinessAddressCountry, Address|Organization );
415 createField( FieldImpl::BusinessAddressLabel, Address|Organization ); 431 createField( FieldImpl::BusinessAddressLabel, Address|Organization );
416 createField( FieldImpl::HomePhone, Personal|Frequent ); 432 createField( FieldImpl::HomePhone, Personal|Frequent );
417 createField( FieldImpl::BusinessPhone, Organization|Frequent ); 433 createField( FieldImpl::BusinessPhone, Organization|Frequent );
418 createField( FieldImpl::MobilePhone, Frequent ); 434 createField( FieldImpl::MobilePhone, Frequent );
435 createField( FieldImpl::MobileHomePhone, Frequent );
436 createField( FieldImpl::MobileWorkPhone, Frequent );
419 createField( FieldImpl::HomeFax ); 437 createField( FieldImpl::HomeFax );
420 createField( FieldImpl::BusinessFax ); 438 createField( FieldImpl::BusinessFax );
421 createField( FieldImpl::CarPhone ); 439 createField( FieldImpl::CarPhone );
422 createField( FieldImpl::Isdn ); 440 createField( FieldImpl::Isdn );
423 createField( FieldImpl::Pager ); 441 createField( FieldImpl::Pager );
424 createField( FieldImpl::Email, Email|Frequent ); 442 createField( FieldImpl::Email, Email|Frequent );
425 createField( FieldImpl::Mailer, Email ); 443 createField( FieldImpl::Mailer, Email );
426 createField( FieldImpl::Title, Organization ); 444 createField( FieldImpl::Title, Organization );
427 createField( FieldImpl::Role, Organization ); 445 createField( FieldImpl::Role, Organization );
428 createField( FieldImpl::Organization, Organization ); 446 createField( FieldImpl::Organization, Organization );
429 createField( FieldImpl::Note ); 447 createField( FieldImpl::Note );
430 createField( FieldImpl::Url ); 448 createField( FieldImpl::Url );
431 createField( FieldImpl::Resource ); 449 createField( FieldImpl::Resource );
432 createField( FieldImpl::Sip ); 450 createField( FieldImpl::Sip );
433 } 451 }
434 452
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index 041effc..4c6231d 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -164,42 +164,41 @@ PhoneNumber::TypeList PhoneNumber::typeList()
164 164
165 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video 165 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video
166 << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip; 166 << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip;
167 167
168 return list; 168 return list;
169} 169}
170 170
171QString PhoneNumber::label( int type ) 171QString PhoneNumber::label( int type )
172{ 172{
173 return typeLabel( type ); 173 return typeLabel( type );
174} 174}
175 175
176QString PhoneNumber::typeLabel( int type ) 176QString PhoneNumber::typeLabel( int type )
177{ 177{
178 QString typeString; 178 QString typeString;
179 179
180
181 if ((type & Cell) == Cell)
182 typeString += i18n("Mobile") +" ";
180 if ((type & Home) == Home) 183 if ((type & Home) == Home)
181 typeString += i18n("Home"); 184 typeString += i18n("Home")+" ";
182 else if ((type & Work) == Work) 185 else if ((type & Work) == Work)
183 typeString += i18n("Work"); 186 typeString += i18n("Work")+" ";
184 187
185 if (!typeString.isEmpty()) 188 if ((type & Sip) == Sip)
186 typeString += " ";
187 if ((type & Cell) == Cell)
188 typeString += i18n("Mobile") +" ";
189 if ((type & Sip) == Sip)
190 typeString += i18n("SIP")+" "; 189 typeString += i18n("SIP")+" ";
191 if ((type & Car) == Car) 190 if ((type & Car) == Car)
192 typeString += i18n("Car")+" "; 191 typeString += i18n("Car")+" ";
193 192
194 if ((type & Fax) == Fax) 193 if ((type & Fax) == Fax)
195 typeString += i18n("Fax"); 194 typeString += i18n("Fax");
196 else if ((type & Msg) == Msg) 195 else if ((type & Msg) == Msg)
197 typeString += i18n("Messenger"); 196 typeString += i18n("Messenger");
198 else if ((type & Video) == Video) 197 else if ((type & Video) == Video)
199 typeString += i18n("Video"); 198 typeString += i18n("Video");
200 else if ((type & Bbs) == Bbs) 199 else if ((type & Bbs) == Bbs)
201 typeString += i18n("Mailbox"); 200 typeString += i18n("Mailbox");
202 else if ((type & Modem) == Modem) 201 else if ((type & Modem) == Modem)
203 typeString += i18n("Modem"); 202 typeString += i18n("Modem");
204 else if ((type & Isdn) == Isdn) 203 else if ((type & Isdn) == Isdn)
205 typeString += i18n("ISDN"); 204 typeString += i18n("ISDN");
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp
index e322473..565cd1d 100644
--- a/kaddressbook/views/kaddressbooktableview.cpp
+++ b/kaddressbook/views/kaddressbooktableview.cpp
@@ -173,33 +173,33 @@ void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field )
173 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 173 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
174#if QT_VERSION >= 0x030000 174#if QT_VERSION >= 0x030000
175 if (re.search((*fieldIt)->value( *it ).lower()) != -1) 175 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
176#else 176#else
177 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 177 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
178#endif 178#endif
179 { 179 {
180 //qDebug("match %s %s %s", pattern.latin1(), (*fieldIt)->value( *it ).latin1(), (*fieldIt)->label().latin1() ); 180 //qDebug("match %s %s %s", pattern.latin1(), (*fieldIt)->value( *it ).latin1(), (*fieldIt)->label().latin1() );
181 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); 181 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
182 break; 182 break;
183 } 183 }
184 } 184 }
185 } 185 }
186 } 186 }
187 // Sometimes the background pixmap gets messed up when we add lots 187 // Sometimes the background pixmap gets messed up when we add lots
188 // of items. 188 // of items.
189 mListView->repaint(); 189 //mListView->repaint();
190 if ( mListView->firstChild() ) { 190 if ( mListView->firstChild() ) {
191 mListView->setCurrentItem ( mListView->firstChild() ); 191 mListView->setCurrentItem ( mListView->firstChild() );
192 mListView->setSelected ( mListView->firstChild(), true ); 192 mListView->setSelected ( mListView->firstChild(), true );
193 } 193 }
194 else 194 else
195 emit selected(QString::null); 195 emit selected(QString::null);
196 196
197} 197}
198void KAddressBookTableView::writeConfig(KConfig *config) 198void KAddressBookTableView::writeConfig(KConfig *config)
199{ 199{
200 KAddressBookView::writeConfig(config); 200 KAddressBookView::writeConfig(config);
201 201
202 mListView->saveLayout(config, config->group()); 202 mListView->saveLayout(config, config->group());
203} 203}
204 204
205void KAddressBookTableView::readConfig(KConfig *config) 205void KAddressBookTableView::readConfig(KConfig *config)