2
This file is part of KContactManager.
4
Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License along
17
with this program; if not, write to the Free Software Foundation, Inc.,
18
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
#include "contactfields.h"
25
QString ContactFields::label( Field field )
28
case Undefined: return i18nc( "@item Undefined import field type", "Undefined" ); break;
29
case FormattedName: return KABC::Addressee::formattedNameLabel(); break;
30
case Prefix: return KABC::Addressee::prefixLabel(); break;
31
case GivenName: return KABC::Addressee::givenNameLabel(); break;
32
case AdditionalName: return KABC::Addressee::additionalNameLabel(); break;
33
case FamilyName: return KABC::Addressee::familyNameLabel(); break;
34
case Suffix: return KABC::Addressee::suffixLabel(); break;
35
case NickName: return KABC::Addressee::nickNameLabel(); break;
36
case Birthday: return KABC::Addressee::birthdayLabel(); break;
37
case HomeAddressStreet: return KABC::Addressee::homeAddressStreetLabel(); break;
38
case HomeAddressLocality: return KABC::Addressee::homeAddressLocalityLabel(); break;
39
case HomeAddressRegion: return KABC::Addressee::homeAddressRegionLabel(); break;
40
case HomeAddressPostalCode: return KABC::Addressee::homeAddressPostalCodeLabel(); break;
41
case HomeAddressCountry: return KABC::Addressee::homeAddressCountryLabel(); break;
42
case HomeAddressLabel: return KABC::Addressee::homeAddressLabelLabel(); break;
43
case BusinessAddressStreet: return KABC::Addressee::businessAddressStreetLabel(); break;
44
case BusinessAddressLocality: return KABC::Addressee::businessAddressLocalityLabel(); break;
45
case BusinessAddressRegion: return KABC::Addressee::businessAddressRegionLabel(); break;
46
case BusinessAddressPostalCode: return KABC::Addressee::businessAddressPostalCodeLabel(); break;
47
case BusinessAddressCountry: return KABC::Addressee::businessAddressCountryLabel(); break;
48
case BusinessAddressLabel: return KABC::Addressee::businessAddressLabelLabel(); break;
49
case HomePhone: return KABC::Addressee::homePhoneLabel(); break;
50
case BusinessPhone: return KABC::Addressee::businessPhoneLabel(); break;
51
case MobilePhone: return KABC::Addressee::mobilePhoneLabel(); break;
52
case HomeFax: return KABC::Addressee::homeFaxLabel(); break;
53
case BusinessFax: return KABC::Addressee::businessFaxLabel(); break;
54
case CarPhone: return KABC::Addressee::carPhoneLabel(); break;
55
case Isdn: return KABC::Addressee::isdnLabel(); break;
56
case Pager: return KABC::Addressee::pagerLabel(); break;
57
case PreferredEmail: return i18n( "EMail (preferred)" ); break;
58
case Email2: return i18n( "EMail (2)" ); break;
59
case Email3: return i18n( "EMail (3)" ); break;
60
case Email4: return i18n( "EMail (4)" ); break;
61
case Mailer: return KABC::Addressee::mailerLabel(); break;
62
case Title: return KABC::Addressee::titleLabel(); break;
63
case Role: return KABC::Addressee::roleLabel(); break;
64
case Organization: return KABC::Addressee::organizationLabel(); break;
65
case Note: return KABC::Addressee::noteLabel(); break;
66
case Homepage: return KABC::Addressee::urlLabel(); break;
72
ContactFields::Fields ContactFields::allFields()
90
<< HomeAddressLocality
92
<< HomeAddressPostalCode
95
<< BusinessAddressStreet
96
<< BusinessAddressLocality
97
<< BusinessAddressRegion
98
<< BusinessAddressPostalCode
99
<< BusinessAddressCountry
100
<< BusinessAddressLabel
119
void ContactFields::setValue( Field field, const QString &value, KABC::Addressee &contact )
122
case ContactFields::Undefined:
124
case ContactFields::FormattedName:
125
contact.setFormattedName( value );
127
case ContactFields::GivenName:
128
contact.setGivenName( value );
130
case ContactFields::FamilyName:
131
contact.setFamilyName( value );
133
case ContactFields::AdditionalName:
134
contact.setAdditionalName( value );
136
case ContactFields::Prefix:
137
contact.setPrefix( value );
139
case ContactFields::Suffix:
140
contact.setSuffix( value );
142
case ContactFields::NickName:
143
contact.setNickName( value );
145
case ContactFields::Birthday:
146
contact.setBirthday( QDateTime::fromString( value, Qt::ISODate ) );
148
case ContactFields::PreferredEmail:
149
contact.insertEmail( value, true );
151
case ContactFields::Email2:
152
contact.insertEmail( value, false );
154
case ContactFields::Email3:
155
contact.insertEmail( value, false );
157
case ContactFields::Email4:
158
contact.insertEmail( value, false );
160
case ContactFields::Role:
161
contact.setRole( value );
163
case ContactFields::Title:
164
contact.setTitle( value );
166
case ContactFields::Mailer:
167
contact.setMailer( value );
169
case ContactFields::Homepage:
170
contact.setUrl( KUrl( value ) );
172
case ContactFields::Organization:
173
contact.setOrganization( value );
175
case ContactFields::Note:
176
contact.setNote( contact.note() );
178
case ContactFields::HomePhone:
180
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home );
181
number.setNumber( value );
182
contact.insertPhoneNumber( number );
185
case ContactFields::BusinessPhone:
187
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work );
188
number.setNumber( value );
189
contact.insertPhoneNumber( number );
192
case ContactFields::MobilePhone:
194
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Cell );
195
number.setNumber( value );
196
contact.insertPhoneNumber( number );
199
case ContactFields::HomeFax:
201
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home |
202
KABC::PhoneNumber::Fax );
203
number.setNumber( value );
204
contact.insertPhoneNumber( number );
207
case ContactFields::BusinessFax:
209
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work |
210
KABC::PhoneNumber::Fax );
211
number.setNumber( value );
212
contact.insertPhoneNumber( number );
215
case ContactFields::CarPhone:
217
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Car );
218
number.setNumber( value );
219
contact.insertPhoneNumber( number );
222
case ContactFields::Isdn:
224
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Isdn );
225
number.setNumber( value );
226
contact.insertPhoneNumber( number );
229
case ContactFields::Pager:
231
KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Pager );
232
number.setNumber( value );
233
contact.insertPhoneNumber( number );
237
case ContactFields::HomeAddressStreet:
239
KABC::Address address = contact.address( KABC::Address::Home );
240
address.setStreet( value );
241
contact.insertAddress( address );
244
case ContactFields::HomeAddressLocality:
246
KABC::Address address = contact.address( KABC::Address::Home );
247
address.setLocality( value );
248
contact.insertAddress( address );
251
case ContactFields::HomeAddressRegion:
253
KABC::Address address = contact.address( KABC::Address::Home );
254
address.setRegion( value );
255
contact.insertAddress( address );
258
case ContactFields::HomeAddressPostalCode:
260
KABC::Address address = contact.address( KABC::Address::Home );
261
address.setPostalCode( value );
262
contact.insertAddress( address );
265
case ContactFields::HomeAddressCountry:
267
KABC::Address address = contact.address( KABC::Address::Home );
268
address.setCountry( value );
269
contact.insertAddress( address );
272
case ContactFields::HomeAddressLabel:
274
KABC::Address address = contact.address( KABC::Address::Home );
275
address.setLabel( value );
276
contact.insertAddress( address );
279
case ContactFields::BusinessAddressStreet:
281
KABC::Address address = contact.address( KABC::Address::Work );
282
address.setStreet( value );
283
contact.insertAddress( address );
286
case ContactFields::BusinessAddressLocality:
288
KABC::Address address = contact.address( KABC::Address::Work );
289
address.setLocality( value );
290
contact.insertAddress( address );
293
case ContactFields::BusinessAddressRegion:
295
KABC::Address address = contact.address( KABC::Address::Work );
296
address.setRegion( value );
297
contact.insertAddress( address );
300
case ContactFields::BusinessAddressPostalCode:
302
KABC::Address address = contact.address( KABC::Address::Work );
303
address.setPostalCode( value );
304
contact.insertAddress( address );
307
case ContactFields::BusinessAddressCountry:
309
KABC::Address address = contact.address( KABC::Address::Work );
310
address.setCountry( value );
311
contact.insertAddress( address );
314
case ContactFields::BusinessAddressLabel:
316
KABC::Address address = contact.address( KABC::Address::Work );
317
address.setLabel( value );
318
contact.insertAddress( address );
324
QString ContactFields::value( Field field, const KABC::Addressee &contact )
327
case Undefined: return QString(); break;
328
case FormattedName: return contact.formattedName(); break;
329
case Prefix: return contact.prefix(); break;
330
case GivenName: return contact.givenName(); break;
331
case AdditionalName: return contact.additionalName(); break;
332
case FamilyName: return contact.familyName(); break;
333
case Suffix: return contact.suffix(); break;
334
case NickName: return contact.nickName(); break;
337
const QDateTime birthday = contact.birthday();
338
if ( birthday.isValid() )
339
return birthday.toString( Qt::ISODate );
344
case HomeAddressStreet:
346
const KABC::Address address = contact.address( KABC::Address::Home );
347
return address.street();
350
case HomeAddressLocality:
352
const KABC::Address address = contact.address( KABC::Address::Home );
353
return address.locality();
356
case HomeAddressRegion:
358
const KABC::Address address = contact.address( KABC::Address::Home );
359
return address.region();
362
case HomeAddressPostalCode:
364
const KABC::Address address = contact.address( KABC::Address::Home );
365
return address.postalCode();
368
case HomeAddressCountry:
370
const KABC::Address address = contact.address( KABC::Address::Home );
371
return address.country();
374
case HomeAddressLabel:
376
const KABC::Address address = contact.address( KABC::Address::Home );
377
return address.label();
380
case BusinessAddressStreet:
382
const KABC::Address address = contact.address( KABC::Address::Work );
383
return address.street();
386
case BusinessAddressLocality:
388
const KABC::Address address = contact.address( KABC::Address::Work );
389
return address.locality();
392
case BusinessAddressRegion:
394
const KABC::Address address = contact.address( KABC::Address::Work );
395
return address.region();
398
case BusinessAddressPostalCode:
400
const KABC::Address address = contact.address( KABC::Address::Work );
401
return address.postalCode();
404
case BusinessAddressCountry:
406
const KABC::Address address = contact.address( KABC::Address::Work );
407
return address.country();
410
case BusinessAddressLabel:
412
const KABC::Address address = contact.address( KABC::Address::Work );
413
return address.label();
416
case HomePhone: return contact.phoneNumber( KABC::PhoneNumber::Home ).number(); break;
417
case BusinessPhone: return contact.phoneNumber( KABC::PhoneNumber::Work ).number(); break;
418
case MobilePhone: return contact.phoneNumber( KABC::PhoneNumber::Cell ).number(); break;
419
case HomeFax: return contact.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ).number(); break;
420
case BusinessFax: return contact.phoneNumber( KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ).number(); break;
421
case CarPhone: return contact.phoneNumber( KABC::PhoneNumber::Car ).number(); break;
422
case Isdn: return contact.phoneNumber( KABC::PhoneNumber::Isdn ).number(); break;
423
case Pager: return contact.phoneNumber( KABC::PhoneNumber::Pager ).number(); break;
426
const QStringList emails = contact.emails();
427
if ( emails.count() > 0 )
428
return emails.at( 0 );
434
const QStringList emails = contact.emails();
435
if ( emails.count() > 1 )
436
return emails.at( 1 );
442
const QStringList emails = contact.emails();
443
if ( emails.count() > 2 )
444
return emails.at( 2 );
450
const QStringList emails = contact.emails();
451
if ( emails.count() > 3 )
452
return emails.at( 3 );
456
case Mailer: return contact.mailer(); break;
457
case Title: return contact.title(); break;
458
case Role: return contact.role(); break;
459
case Organization: return contact.organization(); break;
460
case Note: return contact.note(); break;
461
case Homepage: return contact.url().url(); break;