summaryrefslogtreecommitdiffabout
path: root/kabc/field.cpp
Unidiff
Diffstat (limited to 'kabc/field.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/field.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/kabc/field.cpp b/kabc/field.cpp
index fd51026..20885de 100644
--- a/kabc/field.cpp
+++ b/kabc/field.cpp
@@ -36,533 +36,533 @@ $Id$
36 36
37using namespace KABC; 37using namespace KABC;
38 38
39class Field::FieldImpl 39class Field::FieldImpl
40{ 40{
41 public: 41 public:
42 FieldImpl( int fieldId, int category = 0, 42 FieldImpl( int fieldId, int category = 0,
43 const QString &label = QString::null, 43 const QString &label = QString::null,
44 const QString &key = QString::null, 44 const QString &key = QString::null,
45 const QString &app = QString::null ) 45 const QString &app = QString::null )
46 : mFieldId( fieldId ), mCategory( category ), mLabel( label ), 46 : mFieldId( fieldId ), mCategory( category ), mLabel( label ),
47 mKey( key ), mApp( app ) {} 47 mKey( key ), mApp( app ) {}
48 48
49 enum FieldId 49 enum FieldId
50 { 50 {
51 CustomField, 51 CustomField,
52 FormattedName, 52 FormattedName,
53 FamilyName, 53 FamilyName,
54 GivenName, 54 GivenName,
55 AdditionalName, 55 AdditionalName,
56 Prefix, 56 Prefix,
57 Suffix, 57 Suffix,
58 NickName, 58 NickName,
59 Birthday, 59 Birthday,
60 Category, 60 Category,
61 HomeAddressStreet, 61 HomeAddressStreet,
62 HomeAddressLocality, 62 HomeAddressLocality,
63 HomeAddressRegion, 63 HomeAddressRegion,
64 HomeAddressPostalCode, 64 HomeAddressPostalCode,
65 HomeAddressCountry, 65 HomeAddressCountry,
66 HomeAddressLabel, 66 HomeAddressLabel,
67 BusinessAddressStreet, 67 BusinessAddressStreet,
68 BusinessAddressLocality, 68 BusinessAddressLocality,
69 BusinessAddressRegion, 69 BusinessAddressRegion,
70 BusinessAddressPostalCode, 70 BusinessAddressPostalCode,
71 BusinessAddressCountry, 71 BusinessAddressCountry,
72 BusinessAddressLabel, 72 BusinessAddressLabel,
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 MobileWorkPhone, 90 MobileWorkPhone,
91 MobileHomePhone 91 MobileHomePhone
92 }; 92 };
93 93
94 int fieldId() { return mFieldId; } 94 int fieldId() { return mFieldId; }
95 int category() { return mCategory; } 95 int category() { return mCategory; }
96 96
97 QString label() { return mLabel; } 97 QString label() { return mLabel; }
98 QString key() { return mKey; } 98 QString key() { return mKey; }
99 QString app() { return mApp; } 99 QString app() { return mApp; }
100 100
101 private: 101 private:
102 int mFieldId; 102 int mFieldId;
103 int mCategory; 103 int mCategory;
104 104
105 QString mLabel; 105 QString mLabel;
106 QString mKey; 106 QString mKey;
107 QString mApp; 107 QString mApp;
108}; 108};
109 109
110 110
111Field::List Field::mAllFields; 111Field::List Field::mAllFields;
112Field::List Field::mDefaultFields; 112Field::List Field::mDefaultFields;
113Field::List Field::mCustomFields; 113Field::List Field::mCustomFields;
114 114
115 115
116Field::Field( FieldImpl *impl ) 116Field::Field( FieldImpl *impl )
117{ 117{
118 mImpl = impl; 118 mImpl = impl;
119} 119}
120 120
121Field::~Field() 121Field::~Field()
122{ 122{
123 delete mImpl; 123 delete mImpl;
124} 124}
125 125
126QString Field::label() 126QString Field::label()
127{ 127{
128 switch ( mImpl->fieldId() ) { 128 switch ( mImpl->fieldId() ) {
129 case FieldImpl::FormattedName: 129 case FieldImpl::FormattedName:
130 return Addressee::formattedNameLabel(); 130 return Addressee::formattedNameLabel();
131 case FieldImpl::FamilyName: 131 case FieldImpl::FamilyName:
132 return Addressee::familyNameLabel(); 132 return Addressee::familyNameLabel();
133 case FieldImpl::GivenName: 133 case FieldImpl::GivenName:
134 return Addressee::givenNameLabel(); 134 return Addressee::givenNameLabel();
135 case FieldImpl::AdditionalName: 135 case FieldImpl::AdditionalName:
136 return Addressee::additionalNameLabel(); 136 return Addressee::additionalNameLabel();
137 case FieldImpl::Prefix: 137 case FieldImpl::Prefix:
138 return Addressee::prefixLabel(); 138 return Addressee::prefixLabel();
139 case FieldImpl::Suffix: 139 case FieldImpl::Suffix:
140 return Addressee::suffixLabel(); 140 return Addressee::suffixLabel();
141 case FieldImpl::NickName: 141 case FieldImpl::NickName:
142 return Addressee::nickNameLabel(); 142 return Addressee::nickNameLabel();
143 case FieldImpl::Birthday: 143 case FieldImpl::Birthday:
144 return Addressee::birthdayLabel(); 144 return Addressee::birthdayLabel();
145 case FieldImpl::HomeAddressStreet: 145 case FieldImpl::HomeAddressStreet:
146 return Addressee::homeAddressStreetLabel(); 146 return Addressee::homeAddressStreetLabel();
147 case FieldImpl::HomeAddressLocality: 147 case FieldImpl::HomeAddressLocality:
148 return Addressee::homeAddressLocalityLabel(); 148 return Addressee::homeAddressLocalityLabel();
149 case FieldImpl::HomeAddressRegion: 149 case FieldImpl::HomeAddressRegion:
150 return Addressee::homeAddressRegionLabel(); 150 return Addressee::homeAddressRegionLabel();
151 case FieldImpl::HomeAddressPostalCode: 151 case FieldImpl::HomeAddressPostalCode:
152 return Addressee::homeAddressPostalCodeLabel(); 152 return Addressee::homeAddressPostalCodeLabel();
153 case FieldImpl::HomeAddressCountry: 153 case FieldImpl::HomeAddressCountry:
154 return Addressee::homeAddressCountryLabel(); 154 return Addressee::homeAddressCountryLabel();
155 case FieldImpl::HomeAddressLabel: 155 case FieldImpl::HomeAddressLabel:
156 return Addressee::homeAddressLabelLabel(); 156 return Addressee::homeAddressLabelLabel();
157 case FieldImpl::BusinessAddressStreet: 157 case FieldImpl::BusinessAddressStreet:
158 return Addressee::businessAddressStreetLabel(); 158 return Addressee::businessAddressStreetLabel();
159 case FieldImpl::BusinessAddressLocality: 159 case FieldImpl::BusinessAddressLocality:
160 return Addressee::businessAddressLocalityLabel(); 160 return Addressee::businessAddressLocalityLabel();
161 case FieldImpl::BusinessAddressRegion: 161 case FieldImpl::BusinessAddressRegion:
162 return Addressee::businessAddressRegionLabel(); 162 return Addressee::businessAddressRegionLabel();
163 case FieldImpl::BusinessAddressPostalCode: 163 case FieldImpl::BusinessAddressPostalCode:
164 return Addressee::businessAddressPostalCodeLabel(); 164 return Addressee::businessAddressPostalCodeLabel();
165 case FieldImpl::BusinessAddressCountry: 165 case FieldImpl::BusinessAddressCountry:
166 return Addressee::businessAddressCountryLabel(); 166 return Addressee::businessAddressCountryLabel();
167 case FieldImpl::BusinessAddressLabel: 167 case FieldImpl::BusinessAddressLabel:
168 return Addressee::businessAddressLabelLabel(); 168 return Addressee::businessAddressLabelLabel();
169 case FieldImpl::HomePhone: 169 case FieldImpl::HomePhone:
170 return Addressee::homePhoneLabel(); 170 return Addressee::homePhoneLabel();
171 case FieldImpl::BusinessPhone: 171 case FieldImpl::BusinessPhone:
172 return Addressee::businessPhoneLabel(); 172 return Addressee::businessPhoneLabel();
173 case FieldImpl::MobilePhone: 173 case FieldImpl::MobilePhone:
174 return Addressee::mobilePhoneLabel(); 174 return Addressee::mobilePhoneLabel();
175 case FieldImpl::MobileHomePhone: 175 case FieldImpl::MobileHomePhone:
176 return Addressee::mobileHomePhoneLabel(); 176 return Addressee::mobileHomePhoneLabel();
177 case FieldImpl::MobileWorkPhone: 177 case FieldImpl::MobileWorkPhone:
178 return Addressee::mobileWorkPhoneLabel(); 178 return Addressee::mobileWorkPhoneLabel();
179 case FieldImpl::HomeFax: 179 case FieldImpl::HomeFax:
180 return Addressee::homeFaxLabel(); 180 return Addressee::homeFaxLabel();
181 case FieldImpl::BusinessFax: 181 case FieldImpl::BusinessFax:
182 return Addressee::businessFaxLabel(); 182 return Addressee::businessFaxLabel();
183 case FieldImpl::CarPhone: 183 case FieldImpl::CarPhone:
184 return Addressee::carPhoneLabel(); 184 return Addressee::carPhoneLabel();
185 case FieldImpl::Isdn: 185 case FieldImpl::Isdn:
186 return Addressee::isdnLabel(); 186 return Addressee::isdnLabel();
187 case FieldImpl::Pager: 187 case FieldImpl::Pager:
188 return Addressee::pagerLabel(); 188 return Addressee::pagerLabel();
189 case FieldImpl::Email: 189 case FieldImpl::Email:
190 return Addressee::emailLabel(); 190 return Addressee::emailLabel();
191 case FieldImpl::Mailer: 191 case FieldImpl::Mailer:
192 return Addressee::mailerLabel(); 192 return Addressee::mailerLabel();
193 case FieldImpl::Title: 193 case FieldImpl::Title:
194 return Addressee::titleLabel(); 194 return Addressee::titleLabel();
195 case FieldImpl::Role: 195 case FieldImpl::Role:
196 return Addressee::roleLabel(); 196 return Addressee::roleLabel();
197 case FieldImpl::Organization: 197 case FieldImpl::Organization:
198 return Addressee::organizationLabel(); 198 return Addressee::organizationLabel();
199 case FieldImpl::Note: 199 case FieldImpl::Note:
200 return Addressee::noteLabel(); 200 return Addressee::noteLabel();
201 case FieldImpl::Url: 201 case FieldImpl::Url:
202 return Addressee::urlLabel(); 202 return Addressee::urlLabel();
203 case FieldImpl::Resource: 203 case FieldImpl::Resource:
204 return Addressee::resourceLabel(); 204 return Addressee::resourceLabel();
205 case FieldImpl::Category: 205 case FieldImpl::Category:
206 return Addressee::categoryLabel(); 206 return Addressee::categoryLabel();
207 case FieldImpl::Sip: 207 case FieldImpl::Sip:
208 return Addressee::sipLabel(); 208 return Addressee::sipLabel();
209 case FieldImpl::CustomField: 209 case FieldImpl::CustomField:
210 return mImpl->label(); 210 return mImpl->label();
211 default: 211 default:
212 return i18n("Unknown Field"); 212 return i18n("Unknown Field");
213 } 213 }
214} 214}
215 215
216int Field::category() 216int Field::category()
217{ 217{
218 return mImpl->category(); 218 return mImpl->category();
219} 219}
220 220
221QString Field::categoryLabel( int category ) 221QString Field::categoryLabel( int category )
222{ 222{
223 switch ( category ) { 223 switch ( category ) {
224 case All: 224 case All:
225 return i18n("All"); 225 return i18n("All");
226 case Frequent: 226 case Frequent:
227 return i18n("Frequent"); 227 return i18n("Frequent");
228 case Address: 228 case Address:
229 return i18n("Address"); 229 return i18n("Address");
230 case Email: 230 case Email:
231 return i18n("Email"); 231 return i18n("Email");
232 case Personal: 232 case Personal:
233 return i18n("Personal"); 233 return i18n("Personal");
234 case Organization: 234 case Organization:
235 return i18n("Organization"); 235 return i18n("Organization");
236 case CustomCategory: 236 case CustomCategory:
237 return i18n("Custom"); 237 return i18n("Custom");
238 default: 238 default:
239 return i18n("Undefined"); 239 return i18n("Undefined");
240 } 240 }
241} 241}
242 242
243QString Field::value( const KABC::Addressee &a ) 243QString Field::value( const KABC::Addressee &a )
244{ 244{
245 switch ( mImpl->fieldId() ) { 245 switch ( mImpl->fieldId() ) {
246 case FieldImpl::FormattedName: 246 case FieldImpl::FormattedName:
247 return a.formattedName(); 247 return a.formattedName();
248 case FieldImpl::FamilyName: 248 case FieldImpl::FamilyName:
249 return a.familyName(); 249 return a.familyName();
250 case FieldImpl::GivenName: 250 case FieldImpl::GivenName:
251 return a.givenName(); 251 return a.givenName();
252 case FieldImpl::AdditionalName: 252 case FieldImpl::AdditionalName:
253 return a.additionalName(); 253 return a.additionalName();
254 case FieldImpl::Prefix: 254 case FieldImpl::Prefix:
255 return a.prefix(); 255 return a.prefix();
256 case FieldImpl::Suffix: 256 case FieldImpl::Suffix:
257 return a.suffix(); 257 return a.suffix();
258 case FieldImpl::NickName: 258 case FieldImpl::NickName:
259 return a.nickName(); 259 return a.nickName();
260 case FieldImpl::Mailer: 260 case FieldImpl::Mailer:
261 return a.mailer(); 261 return a.mailer();
262 case FieldImpl::Title: 262 case FieldImpl::Title:
263 return a.title(); 263 return a.title();
264 case FieldImpl::Role: 264 case FieldImpl::Role:
265 return a.role(); 265 return a.role();
266 case FieldImpl::Organization: 266 case FieldImpl::Organization:
267 return a.organization(); 267 return a.organization();
268 case FieldImpl::Note: 268 case FieldImpl::Note:
269 return a.note(); 269 return a.note();
270 case FieldImpl::Email: 270 case FieldImpl::Email:
271 return a.preferredEmail(); 271 return a.preferredEmail();
272 case FieldImpl::Birthday: 272 case FieldImpl::Birthday:
273 if ( a.birthday().isValid() ) { 273 if ( a.birthday().isValid() ) {
274//the generated code had the following format: return a.birthday().date().toString( Qt::ISODate ); 274//the generated code had the following format: return a.birthday().date().toString( Qt::ISODate );
275// But Qt::IsoDate was not specified. 275// But Qt::IsoDate was not specified.
276// QString _oldFormat = KGlobal::locale()->dateFormat(); 276// QString _oldFormat = KGlobal::locale()->dateFormat();
277// KGlobal::locale()->setDateFormat("%Y-%m-%d"); // = Qt::ISODate 277// KGlobal::locale()->setDateFormat("%Y-%m-%d"); // = Qt::ISODate
278 QString dt = KGlobal::locale()->formatDate(a.birthday().date(), false, KLocale::ISODate); 278 QString dt = KGlobal::locale()->formatDate(a.birthday().date(), false, KLocale::ISODate);
279// KGlobal::locale()->setDateFormat(_oldFormat); 279// KGlobal::locale()->setDateFormat(_oldFormat);
280 return dt; 280 return dt;
281 } 281 }
282 else 282 else
283 return QString::null; 283 return QString::null;
284 case FieldImpl::Url: 284 case FieldImpl::Url:
285 return a.url().prettyURL(); 285 return a.url().prettyURL();
286//US 286//US
287 case FieldImpl::Resource: 287 case FieldImpl::Resource:
288 return a.resource()->resourceName(); 288 return a.resource()->resourceName();
289 case FieldImpl::Category: 289 case FieldImpl::Category:
290 return a.categories().join(","); 290 return a.categories().join(",");
291 case FieldImpl::HomePhone: 291 case FieldImpl::HomePhone:
292 return a.phoneNumber( PhoneNumber::Home ).number(); 292 return a.phoneNumber( PhoneNumber::Home| PhoneNumber::Pref ).number();
293 case FieldImpl::BusinessPhone: 293 case FieldImpl::BusinessPhone:
294 return a.phoneNumber( PhoneNumber::Work ).number(); 294 return a.phoneNumber( PhoneNumber::Work| PhoneNumber::Pref ).number();
295 case FieldImpl::MobilePhone: 295 case FieldImpl::MobilePhone:
296 return a.phoneNumber( PhoneNumber::Cell ).number(); 296 return a.phoneNumber( PhoneNumber::Cell ).number();
297 case FieldImpl::MobileWorkPhone: 297 case FieldImpl::MobileWorkPhone:
298 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Work ).number(); 298 return a.phoneNumber( PhoneNumber::Car ).number();
299 case FieldImpl::MobileHomePhone: 299 case FieldImpl::MobileHomePhone:
300 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Home ).number(); 300 return a.phoneNumber( PhoneNumber::Cell ).number();
301 case FieldImpl::HomeFax: 301 case FieldImpl::HomeFax:
302 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number(); 302 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number();
303 case FieldImpl::BusinessFax: 303 case FieldImpl::BusinessFax:
304 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number(); 304 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number();
305 case FieldImpl::CarPhone: 305 case FieldImpl::CarPhone:
306 return a.phoneNumber( PhoneNumber::Car ).number(); 306 return a.phoneNumber( PhoneNumber::Car ).number();
307 case FieldImpl::Isdn: 307 case FieldImpl::Isdn:
308 return a.phoneNumber( PhoneNumber::Isdn ).number(); 308 return a.phoneNumber( PhoneNumber::Isdn ).number();
309 case FieldImpl::Pager: 309 case FieldImpl::Pager:
310 return a.phoneNumber( PhoneNumber::Pager ).number(); 310 return a.phoneNumber( PhoneNumber::Pager ).number();
311 case FieldImpl::Sip: 311 case FieldImpl::Sip:
312 return a.phoneNumber( PhoneNumber::Sip ).number(); 312 return a.phoneNumber( PhoneNumber::Pcs | PhoneNumber::Pref ).number();
313 case FieldImpl::HomeAddressStreet: 313 case FieldImpl::HomeAddressStreet:
314 return a.address( Address::Home ).street(); 314 return a.address( Address::Home ).street();
315 case FieldImpl::HomeAddressLocality: 315 case FieldImpl::HomeAddressLocality:
316 return a.address( Address::Home ).locality(); 316 return a.address( Address::Home ).locality();
317 case FieldImpl::HomeAddressRegion: 317 case FieldImpl::HomeAddressRegion:
318 return a.address( Address::Home ).region(); 318 return a.address( Address::Home ).region();
319 case FieldImpl::HomeAddressPostalCode: 319 case FieldImpl::HomeAddressPostalCode:
320 return a.address( Address::Home ).postalCode(); 320 return a.address( Address::Home ).postalCode();
321 case FieldImpl::HomeAddressCountry: 321 case FieldImpl::HomeAddressCountry:
322 return a.address( Address::Home ).country(); 322 return a.address( Address::Home ).country();
323 case FieldImpl::BusinessAddressStreet: 323 case FieldImpl::BusinessAddressStreet:
324 return a.address( Address::Work ).street(); 324 return a.address( Address::Work ).street();
325 case FieldImpl::BusinessAddressLocality: 325 case FieldImpl::BusinessAddressLocality:
326 return a.address( Address::Work ).locality(); 326 return a.address( Address::Work ).locality();
327 case FieldImpl::BusinessAddressRegion: 327 case FieldImpl::BusinessAddressRegion:
328 return a.address( Address::Work ).region(); 328 return a.address( Address::Work ).region();
329 case FieldImpl::BusinessAddressPostalCode: 329 case FieldImpl::BusinessAddressPostalCode:
330 return a.address( Address::Work ).postalCode(); 330 return a.address( Address::Work ).postalCode();
331 case FieldImpl::BusinessAddressCountry: 331 case FieldImpl::BusinessAddressCountry:
332 return a.address( Address::Work ).country(); 332 return a.address( Address::Work ).country();
333 case FieldImpl::CustomField: 333 case FieldImpl::CustomField:
334 return a.custom( mImpl->app(), mImpl->key() ); 334 return a.custom( mImpl->app(), mImpl->key() );
335 default: 335 default:
336 return QString::null; 336 return QString::null;
337 } 337 }
338} 338}
339 339
340bool Field::setValue( KABC::Addressee &a, const QString &value ) 340bool Field::setValue( KABC::Addressee &a, const QString &value )
341{ 341{
342 switch ( mImpl->fieldId() ) { 342 switch ( mImpl->fieldId() ) {
343 case FieldImpl::FormattedName: 343 case FieldImpl::FormattedName:
344 a.setFormattedName( value ); 344 a.setFormattedName( value );
345 return true; 345 return true;
346 case FieldImpl::FamilyName: 346 case FieldImpl::FamilyName:
347 a.setFamilyName( value ); 347 a.setFamilyName( value );
348 return true; 348 return true;
349 case FieldImpl::GivenName: 349 case FieldImpl::GivenName:
350 a.setGivenName( value ); 350 a.setGivenName( value );
351 return true; 351 return true;
352 case FieldImpl::AdditionalName: 352 case FieldImpl::AdditionalName:
353 a.setAdditionalName( value ); 353 a.setAdditionalName( value );
354 return true; 354 return true;
355 case FieldImpl::Prefix: 355 case FieldImpl::Prefix:
356 a.setPrefix( value ); 356 a.setPrefix( value );
357 return true; 357 return true;
358 case FieldImpl::Suffix: 358 case FieldImpl::Suffix:
359 a.setSuffix( value ); 359 a.setSuffix( value );
360 return true; 360 return true;
361 case FieldImpl::NickName: 361 case FieldImpl::NickName:
362 a.setNickName( value ); 362 a.setNickName( value );
363 return true; 363 return true;
364 case FieldImpl::Mailer: 364 case FieldImpl::Mailer:
365 a.setMailer( value ); 365 a.setMailer( value );
366 return true; 366 return true;
367 case FieldImpl::Title: 367 case FieldImpl::Title:
368 a.setTitle( value ); 368 a.setTitle( value );
369 return true; 369 return true;
370 case FieldImpl::Role: 370 case FieldImpl::Role:
371 a.setRole( value ); 371 a.setRole( value );
372 return true; 372 return true;
373 case FieldImpl::Organization: 373 case FieldImpl::Organization:
374 a.setOrganization( value ); 374 a.setOrganization( value );
375 return true; 375 return true;
376 case FieldImpl::Note: 376 case FieldImpl::Note:
377 a.setNote( value ); 377 a.setNote( value );
378 return true; 378 return true;
379 case FieldImpl::Birthday: 379 case FieldImpl::Birthday:
380//US 380//US
381//the generated code had the following format: return a.setBirthday( QDate::fromString( value, Qt::ISODate ) ); 381//the generated code had the following format: return a.setBirthday( QDate::fromString( value, Qt::ISODate ) );
382// But Qt::IsoDate and QDate::fromString was not specified. Do I have the wrong QT version ? 382// But Qt::IsoDate and QDate::fromString was not specified. Do I have the wrong QT version ?
383 { 383 {
384 QDate dt = KGlobal::locale()->readDate( value, "%Y-%m-%d"); // = Qt::ISODate 384 QDate dt = KGlobal::locale()->readDate( value, "%Y-%m-%d"); // = Qt::ISODate
385 a.setBirthday(dt); 385 a.setBirthday(dt);
386 } 386 }
387 return true; 387 return true;
388 case FieldImpl::CustomField: 388 case FieldImpl::CustomField:
389 a.insertCustom( mImpl->app(), mImpl->key(), value ); 389 a.insertCustom( mImpl->app(), mImpl->key(), value );
390//US never copy the resourcename back to the adressee. 390//US never copy the resourcename back to the adressee.
391 case FieldImpl::Resource: 391 case FieldImpl::Resource:
392 default: 392 default:
393 return false; 393 return false;
394 } 394 }
395} 395}
396 396
397bool Field::isCustom() 397bool Field::isCustom()
398{ 398{
399 return mImpl->fieldId() == FieldImpl::CustomField; 399 return mImpl->fieldId() == FieldImpl::CustomField;
400} 400}
401 401
402Field::List Field::allFields() 402Field::List Field::allFields()
403{ 403{
404 if ( mAllFields.isEmpty() ) { 404 if ( mAllFields.isEmpty() ) {
405 createField( FieldImpl::FormattedName, Frequent ); 405 createField( FieldImpl::FormattedName, Frequent );
406 createField( FieldImpl::FamilyName, Frequent ); 406 createField( FieldImpl::FamilyName, Frequent );
407 createField( FieldImpl::GivenName, Frequent ); 407 createField( FieldImpl::GivenName, Frequent );
408 createField( FieldImpl::AdditionalName ); 408 createField( FieldImpl::AdditionalName );
409 createField( FieldImpl::Prefix ); 409 createField( FieldImpl::Prefix );
410 createField( FieldImpl::Suffix ); 410 createField( FieldImpl::Suffix );
411 createField( FieldImpl::NickName, Personal ); 411 createField( FieldImpl::NickName, Personal );
412 createField( FieldImpl::Birthday, Personal ); 412 createField( FieldImpl::Birthday, Personal );
413 createField( FieldImpl::Category ); 413 createField( FieldImpl::Category );
414 createField( FieldImpl::HomeAddressStreet, Address|Personal ); 414 createField( FieldImpl::HomeAddressStreet, Address|Personal );
415 createField( FieldImpl::HomeAddressLocality, Address|Personal ); 415 createField( FieldImpl::HomeAddressLocality, Address|Personal );
416 createField( FieldImpl::HomeAddressRegion, Address|Personal ); 416 createField( FieldImpl::HomeAddressRegion, Address|Personal );
417 createField( FieldImpl::HomeAddressPostalCode, Address|Personal ); 417 createField( FieldImpl::HomeAddressPostalCode, Address|Personal );
418 createField( FieldImpl::HomeAddressCountry, Address|Personal ); 418 createField( FieldImpl::HomeAddressCountry, Address|Personal );
419 createField( FieldImpl::HomeAddressLabel, Address|Personal ); 419 createField( FieldImpl::HomeAddressLabel, Address|Personal );
420 createField( FieldImpl::BusinessAddressStreet, Address|Organization ); 420 createField( FieldImpl::BusinessAddressStreet, Address|Organization );
421 createField( FieldImpl::BusinessAddressLocality, Address|Organization ); 421 createField( FieldImpl::BusinessAddressLocality, Address|Organization );
422 createField( FieldImpl::BusinessAddressRegion, Address|Organization ); 422 createField( FieldImpl::BusinessAddressRegion, Address|Organization );
423 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization ); 423 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization );
424 createField( FieldImpl::BusinessAddressCountry, Address|Organization ); 424 createField( FieldImpl::BusinessAddressCountry, Address|Organization );
425 createField( FieldImpl::BusinessAddressLabel, Address|Organization ); 425 createField( FieldImpl::BusinessAddressLabel, Address|Organization );
426 createField( FieldImpl::HomePhone, Personal|Frequent ); 426 createField( FieldImpl::HomePhone, Personal|Frequent );
427 createField( FieldImpl::BusinessPhone, Organization|Frequent ); 427 createField( FieldImpl::BusinessPhone, Organization|Frequent );
428 createField( FieldImpl::MobilePhone, Frequent ); 428 createField( FieldImpl::MobilePhone, Frequent );
429 createField( FieldImpl::MobileHomePhone, Frequent ); 429 createField( FieldImpl::MobileHomePhone, Frequent );
430 createField( FieldImpl::MobileWorkPhone, Frequent ); 430 createField( FieldImpl::MobileWorkPhone, Frequent );
431 createField( FieldImpl::HomeFax ); 431 createField( FieldImpl::HomeFax );
432 createField( FieldImpl::BusinessFax ); 432 createField( FieldImpl::BusinessFax );
433 createField( FieldImpl::CarPhone ); 433 createField( FieldImpl::CarPhone );
434 createField( FieldImpl::Isdn ); 434 createField( FieldImpl::Isdn );
435 createField( FieldImpl::Pager ); 435 createField( FieldImpl::Pager );
436 createField( FieldImpl::Email, Email|Frequent ); 436 createField( FieldImpl::Email, Email|Frequent );
437 createField( FieldImpl::Mailer, Email ); 437 createField( FieldImpl::Mailer, Email );
438 createField( FieldImpl::Title, Organization ); 438 createField( FieldImpl::Title, Organization );
439 createField( FieldImpl::Role, Organization ); 439 createField( FieldImpl::Role, Organization );
440 createField( FieldImpl::Organization, Organization ); 440 createField( FieldImpl::Organization, Organization );
441 createField( FieldImpl::Note ); 441 createField( FieldImpl::Note );
442 createField( FieldImpl::Url ); 442 createField( FieldImpl::Url );
443 createField( FieldImpl::Resource ); 443 createField( FieldImpl::Resource );
444 createField( FieldImpl::Sip ); 444 createField( FieldImpl::Sip );
445 } 445 }
446 446
447 return mAllFields; 447 return mAllFields;
448} 448}
449 449
450Field::List Field::defaultFields() 450Field::List Field::defaultFields()
451{ 451{
452 if ( mDefaultFields.isEmpty() ) { 452 if ( mDefaultFields.isEmpty() ) {
453 createDefaultField( FieldImpl::GivenName ); 453 createDefaultField( FieldImpl::GivenName );
454 createDefaultField( FieldImpl::FamilyName ); 454 createDefaultField( FieldImpl::FamilyName );
455 createDefaultField( FieldImpl::Email ); 455 createDefaultField( FieldImpl::Email );
456 } 456 }
457 457
458 return mDefaultFields; 458 return mDefaultFields;
459} 459}
460 460
461void Field::createField( int id, int category ) 461void Field::createField( int id, int category )
462{ 462{
463 mAllFields.append( new Field( new FieldImpl( id, category ) ) ); 463 mAllFields.append( new Field( new FieldImpl( id, category ) ) );
464} 464}
465 465
466void Field::createDefaultField( int id, int category ) 466void Field::createDefaultField( int id, int category )
467{ 467{
468 mDefaultFields.append( new Field( new FieldImpl( id, category ) ) ); 468 mDefaultFields.append( new Field( new FieldImpl( id, category ) ) );
469} 469}
470 470
471void Field::deleteFields() 471void Field::deleteFields()
472{ 472{
473 Field::List::ConstIterator it; 473 Field::List::ConstIterator it;
474 474
475 for( it = mAllFields.begin(); it != mAllFields.end(); ++it ) { 475 for( it = mAllFields.begin(); it != mAllFields.end(); ++it ) {
476 delete (*it); 476 delete (*it);
477 } 477 }
478 mAllFields.clear(); 478 mAllFields.clear();
479 479
480 for( it = mDefaultFields.begin(); it != mDefaultFields.end(); ++it ) { 480 for( it = mDefaultFields.begin(); it != mDefaultFields.end(); ++it ) {
481 delete (*it); 481 delete (*it);
482 } 482 }
483 mDefaultFields.clear(); 483 mDefaultFields.clear();
484 484
485 for( it = mCustomFields.begin(); it != mCustomFields.end(); ++it ) { 485 for( it = mCustomFields.begin(); it != mCustomFields.end(); ++it ) {
486 delete (*it); 486 delete (*it);
487 } 487 }
488 mCustomFields.clear(); 488 mCustomFields.clear();
489} 489}
490 490
491void Field::saveFields( const QString &identifier, 491void Field::saveFields( const QString &identifier,
492 const Field::List &fields ) 492 const Field::List &fields )
493{ 493{
494 KConfig *cfg = KGlobal::config(); 494 KConfig *cfg = KGlobal::config();
495 KConfigGroupSaver( cfg, "KABCFields" ); 495 KConfigGroupSaver( cfg, "KABCFields" );
496 saveFields( cfg, identifier, fields ); 496 saveFields( cfg, identifier, fields );
497} 497}
498 498
499void Field::saveFields( KConfig *cfg, const QString &identifier, 499void Field::saveFields( KConfig *cfg, const QString &identifier,
500 const Field::List &fields ) 500 const Field::List &fields )
501{ 501{
502 QValueList<int> fieldIds; 502 QValueList<int> fieldIds;
503 503
504//US 504//US
505// qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1()); 505// qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1());
506 506
507 int custom = 0; 507 int custom = 0;
508 Field::List::ConstIterator it; 508 Field::List::ConstIterator it;
509 for( it = fields.begin(); it != fields.end(); ++it ) { 509 for( it = fields.begin(); it != fields.end(); ++it ) {
510//US 510//US
511// qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId()); 511// qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId());
512 512
513 fieldIds.append( (*it)->mImpl->fieldId() ); 513 fieldIds.append( (*it)->mImpl->fieldId() );
514 if( (*it)->isCustom() ) { 514 if( (*it)->isCustom() ) {
515 QStringList customEntry; 515 QStringList customEntry;
516 customEntry << (*it)->mImpl->label(); 516 customEntry << (*it)->mImpl->label();
517 customEntry << (*it)->mImpl->key(); 517 customEntry << (*it)->mImpl->key();
518 customEntry << (*it)->mImpl->app(); 518 customEntry << (*it)->mImpl->app();
519 cfg->writeEntry( "KABC_CustomEntry_" + identifier + "_" + 519 cfg->writeEntry( "KABC_CustomEntry_" + identifier + "_" +
520 QString::number( custom++ ), customEntry ); 520 QString::number( custom++ ), customEntry );
521 } 521 }
522 } 522 }
523 cfg->writeEntry( identifier, fieldIds ); 523 cfg->writeEntry( identifier, fieldIds );
524} 524}
525 525
526Field::List Field::restoreFields( const QString &identifier ) 526Field::List Field::restoreFields( const QString &identifier )
527{ 527{
528//US 528//US
529// qDebug("Field::restoreFields, identifier: %s", identifier.latin1()); 529// qDebug("Field::restoreFields, identifier: %s", identifier.latin1());
530 530
531 KConfig *cfg = KGlobal::config(); 531 KConfig *cfg = KGlobal::config();
532 KConfigGroupSaver( cfg, "KABCFields" ); 532 KConfigGroupSaver( cfg, "KABCFields" );
533 cfg->setGroup( "KABCFields" ); 533 cfg->setGroup( "KABCFields" );
534 534
535 Field::List l = restoreFields( cfg, identifier ); 535 Field::List l = restoreFields( cfg, identifier );
536 536
537 return l; 537 return l;
538} 538}
539 539
540Field::List Field::restoreFields( KConfig *cfg, const QString &identifier ) 540Field::List Field::restoreFields( KConfig *cfg, const QString &identifier )
541{ 541{
542 QValueList<int> fieldIds = cfg->readIntListEntry( identifier); 542 QValueList<int> fieldIds = cfg->readIntListEntry( identifier);
543//US 543//US
544// qDebug("Field::restoreFields from %s, identifier: %s", cfg->getFileName().latin1(), identifier.latin1()); 544// qDebug("Field::restoreFields from %s, identifier: %s", cfg->getFileName().latin1(), identifier.latin1());
545 545
546 Field::List fields; 546 Field::List fields;
547 547
548 int custom = 0; 548 int custom = 0;
549 QValueList<int>::ConstIterator it; 549 QValueList<int>::ConstIterator it;
550 for( it = fieldIds.begin(); it != fieldIds.end(); ++it ) { 550 for( it = fieldIds.begin(); it != fieldIds.end(); ++it ) {
551 FieldImpl *f = 0; 551 FieldImpl *f = 0;
552 if ( (*it) == FieldImpl::CustomField ) { 552 if ( (*it) == FieldImpl::CustomField ) {
553 QStringList customEntry = cfg->readListEntry( "KABC_CustomEntry_" + 553 QStringList customEntry = cfg->readListEntry( "KABC_CustomEntry_" +
554 identifier + "_" + 554 identifier + "_" +
555 QString::number( custom++ ) ); 555 QString::number( custom++ ) );
556 f = new FieldImpl( *it, CustomCategory, customEntry[ 0 ], 556 f = new FieldImpl( *it, CustomCategory, customEntry[ 0 ],
557 customEntry[ 1 ], customEntry[ 2 ] ); 557 customEntry[ 1 ], customEntry[ 2 ] );
558 } else { 558 } else {
559 f = new FieldImpl( *it ); 559 f = new FieldImpl( *it );
560 } 560 }
561 fields.append( new Field( f ) ); 561 fields.append( new Field( f ) );
562 } 562 }
563 563
564 return fields; 564 return fields;
565} 565}
566 566
567bool Field::equals( Field *field ) 567bool Field::equals( Field *field )
568{ 568{