~ubuntu-branches/ubuntu/karmic/kdepim/karmic-backports

« back to all changes in this revision

Viewing changes to kcontactmanager/contactfields.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi, Alessandro Ghersi, Harald Sitter
  • Date: 2009-06-27 04:40:05 UTC
  • mfrom: (1.1.39 upstream)
  • Revision ID: james.westby@ubuntu.com-20090627044005-4y2vm9xz7rvmzi4p
Tags: 4:4.2.95svn20090701-0ubuntu1
[ Alessandro Ghersi ]
* New upstream release
  - Bump build-deps
* Remove akonadi-kde and libmaildir4 packages
  - remove akonadi-kde.install and libmaildir4.install
  - remove libmaildir4 from debian/rules
  - remove akonadi-kde and libmaildir4 from depends
  - remove akonadi-kde and libmaildir4 from installgen
* Update kdepim-dev.install
* Update kpilot.install
* Add akonadi-kde and libmaildir4 transitional packages

[ Harald Sitter ]
* KAddressbook replaces Kontact << 4.2.85 (LP: #378373)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
    This file is part of KContactManager.
3
 
 
4
 
    Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
5
 
 
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.
10
 
 
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.
15
 
 
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.
19
 
*/
20
 
 
21
 
#include "contactfields.h"
22
 
 
23
 
#include <klocale.h>
24
 
 
25
 
QString ContactFields::label( Field field )
26
 
{
27
 
  switch ( 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;
67
 
  }
68
 
 
69
 
  return QString();
70
 
}
71
 
 
72
 
ContactFields::Fields ContactFields::allFields()
73
 
{
74
 
  Fields fields;
75
 
 
76
 
  fields << Undefined
77
 
         << FormattedName
78
 
         << Prefix
79
 
         << GivenName
80
 
         << AdditionalName
81
 
         << FamilyName
82
 
         << Suffix
83
 
         << NickName
84
 
         << Birthday
85
 
         << PreferredEmail
86
 
         << Email2
87
 
         << Email3
88
 
         << Email4
89
 
         << HomeAddressStreet
90
 
         << HomeAddressLocality
91
 
         << HomeAddressRegion
92
 
         << HomeAddressPostalCode
93
 
         << HomeAddressCountry
94
 
         << HomeAddressLabel
95
 
         << BusinessAddressStreet
96
 
         << BusinessAddressLocality
97
 
         << BusinessAddressRegion
98
 
         << BusinessAddressPostalCode
99
 
         << BusinessAddressCountry
100
 
         << BusinessAddressLabel
101
 
         << HomePhone
102
 
         << BusinessPhone
103
 
         << MobilePhone
104
 
         << HomeFax
105
 
         << BusinessFax
106
 
         << CarPhone
107
 
         << Isdn
108
 
         << Pager
109
 
         << Mailer
110
 
         << Title
111
 
         << Role
112
 
         << Organization
113
 
         << Note
114
 
         << Homepage;
115
 
 
116
 
  return fields;
117
 
}
118
 
 
119
 
void ContactFields::setValue( Field field, const QString &value, KABC::Addressee &contact )
120
 
{
121
 
  switch ( field ) {
122
 
    case ContactFields::Undefined:
123
 
      break;
124
 
    case ContactFields::FormattedName:
125
 
      contact.setFormattedName( value );
126
 
      break;
127
 
    case ContactFields::GivenName:
128
 
      contact.setGivenName( value );
129
 
      break;
130
 
    case ContactFields::FamilyName:
131
 
      contact.setFamilyName( value );
132
 
      break;
133
 
    case ContactFields::AdditionalName:
134
 
      contact.setAdditionalName( value );
135
 
      break;
136
 
    case ContactFields::Prefix:
137
 
      contact.setPrefix( value );
138
 
      break;
139
 
    case ContactFields::Suffix:
140
 
      contact.setSuffix( value );
141
 
      break;
142
 
    case ContactFields::NickName:
143
 
      contact.setNickName( value );
144
 
      break;
145
 
    case ContactFields::Birthday:
146
 
      contact.setBirthday( QDateTime::fromString( value, Qt::ISODate ) );
147
 
      break;
148
 
    case ContactFields::PreferredEmail:
149
 
      contact.insertEmail( value, true );
150
 
      break;
151
 
    case ContactFields::Email2:
152
 
      contact.insertEmail( value, false );
153
 
      break;
154
 
    case ContactFields::Email3:
155
 
      contact.insertEmail( value, false );
156
 
      break;
157
 
    case ContactFields::Email4:
158
 
      contact.insertEmail( value, false );
159
 
      break;
160
 
    case ContactFields::Role:
161
 
      contact.setRole( value );
162
 
      break;
163
 
    case ContactFields::Title:
164
 
      contact.setTitle( value );
165
 
      break;
166
 
    case ContactFields::Mailer:
167
 
      contact.setMailer( value );
168
 
      break;
169
 
    case ContactFields::Homepage:
170
 
      contact.setUrl( KUrl( value ) );
171
 
      break;
172
 
    case ContactFields::Organization:
173
 
      contact.setOrganization( value );
174
 
      break;
175
 
    case ContactFields::Note:
176
 
      contact.setNote( contact.note() );
177
 
      break;
178
 
    case ContactFields::HomePhone:
179
 
      {
180
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home );
181
 
        number.setNumber( value );
182
 
        contact.insertPhoneNumber( number );
183
 
      }
184
 
      break;
185
 
    case ContactFields::BusinessPhone:
186
 
      {
187
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work );
188
 
        number.setNumber( value );
189
 
        contact.insertPhoneNumber( number );
190
 
      }
191
 
      break;
192
 
    case ContactFields::MobilePhone:
193
 
      {
194
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Cell );
195
 
        number.setNumber( value );
196
 
        contact.insertPhoneNumber( number );
197
 
      }
198
 
      break;
199
 
    case ContactFields::HomeFax:
200
 
      {
201
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home |
202
 
                                                        KABC::PhoneNumber::Fax );
203
 
        number.setNumber( value );
204
 
        contact.insertPhoneNumber( number );
205
 
      }
206
 
      break;
207
 
    case ContactFields::BusinessFax:
208
 
      {
209
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work |
210
 
                                                        KABC::PhoneNumber::Fax );
211
 
        number.setNumber( value );
212
 
        contact.insertPhoneNumber( number );
213
 
      }
214
 
      break;
215
 
    case ContactFields::CarPhone:
216
 
      {
217
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Car );
218
 
        number.setNumber( value );
219
 
        contact.insertPhoneNumber( number );
220
 
      }
221
 
      break;
222
 
    case ContactFields::Isdn:
223
 
      {
224
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Isdn );
225
 
        number.setNumber( value );
226
 
        contact.insertPhoneNumber( number );
227
 
      }
228
 
      break;
229
 
    case ContactFields::Pager:
230
 
      {
231
 
        KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Pager );
232
 
        number.setNumber( value );
233
 
        contact.insertPhoneNumber( number );
234
 
      }
235
 
      break;
236
 
 
237
 
    case ContactFields::HomeAddressStreet:
238
 
      {
239
 
        KABC::Address address = contact.address( KABC::Address::Home );
240
 
        address.setStreet( value );
241
 
        contact.insertAddress( address );
242
 
      }
243
 
      break;
244
 
    case ContactFields::HomeAddressLocality:
245
 
      {
246
 
        KABC::Address address = contact.address( KABC::Address::Home );
247
 
        address.setLocality( value );
248
 
        contact.insertAddress( address );
249
 
      }
250
 
      break;
251
 
    case ContactFields::HomeAddressRegion:
252
 
      {
253
 
        KABC::Address address = contact.address( KABC::Address::Home );
254
 
        address.setRegion( value );
255
 
        contact.insertAddress( address );
256
 
      }
257
 
      break;
258
 
    case ContactFields::HomeAddressPostalCode:
259
 
      {
260
 
        KABC::Address address = contact.address( KABC::Address::Home );
261
 
        address.setPostalCode( value );
262
 
        contact.insertAddress( address );
263
 
      }
264
 
      break;
265
 
    case ContactFields::HomeAddressCountry:
266
 
      {
267
 
        KABC::Address address = contact.address( KABC::Address::Home );
268
 
        address.setCountry( value );
269
 
        contact.insertAddress( address );
270
 
      }
271
 
      break;
272
 
    case ContactFields::HomeAddressLabel:
273
 
      {
274
 
        KABC::Address address = contact.address( KABC::Address::Home );
275
 
        address.setLabel( value );
276
 
        contact.insertAddress( address );
277
 
      }
278
 
      break;
279
 
    case ContactFields::BusinessAddressStreet:
280
 
      {
281
 
        KABC::Address address = contact.address( KABC::Address::Work );
282
 
        address.setStreet( value );
283
 
        contact.insertAddress( address );
284
 
      }
285
 
      break;
286
 
    case ContactFields::BusinessAddressLocality:
287
 
      {
288
 
        KABC::Address address = contact.address( KABC::Address::Work );
289
 
        address.setLocality( value );
290
 
        contact.insertAddress( address );
291
 
      }
292
 
      break;
293
 
    case ContactFields::BusinessAddressRegion:
294
 
      {
295
 
        KABC::Address address = contact.address( KABC::Address::Work );
296
 
        address.setRegion( value );
297
 
        contact.insertAddress( address );
298
 
      }
299
 
      break;
300
 
    case ContactFields::BusinessAddressPostalCode:
301
 
      {
302
 
        KABC::Address address = contact.address( KABC::Address::Work );
303
 
        address.setPostalCode( value );
304
 
        contact.insertAddress( address );
305
 
      }
306
 
      break;
307
 
    case ContactFields::BusinessAddressCountry:
308
 
      {
309
 
        KABC::Address address = contact.address( KABC::Address::Work );
310
 
        address.setCountry( value );
311
 
        contact.insertAddress( address );
312
 
      }
313
 
      break;
314
 
    case ContactFields::BusinessAddressLabel:
315
 
      {
316
 
        KABC::Address address = contact.address( KABC::Address::Work );
317
 
        address.setLabel( value );
318
 
        contact.insertAddress( address );
319
 
      }
320
 
      break;
321
 
  }
322
 
}
323
 
 
324
 
QString ContactFields::value( Field field, const KABC::Addressee &contact )
325
 
{
326
 
  switch ( field ) {
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;
335
 
    case Birthday:
336
 
      {
337
 
        const QDateTime birthday = contact.birthday();
338
 
        if ( birthday.isValid() )
339
 
          return birthday.toString( Qt::ISODate );
340
 
        else
341
 
          return QString();
342
 
      }
343
 
      break;
344
 
    case HomeAddressStreet:
345
 
      {
346
 
        const KABC::Address address = contact.address( KABC::Address::Home );
347
 
        return address.street();
348
 
      }
349
 
      break;
350
 
    case HomeAddressLocality:
351
 
      {
352
 
        const KABC::Address address = contact.address( KABC::Address::Home );
353
 
        return address.locality();
354
 
      }
355
 
      break;
356
 
    case HomeAddressRegion:
357
 
      {
358
 
        const KABC::Address address = contact.address( KABC::Address::Home );
359
 
        return address.region();
360
 
      }
361
 
      break;
362
 
    case HomeAddressPostalCode:
363
 
      {
364
 
        const KABC::Address address = contact.address( KABC::Address::Home );
365
 
        return address.postalCode();
366
 
      }
367
 
      break;
368
 
    case HomeAddressCountry:
369
 
      {
370
 
        const KABC::Address address = contact.address( KABC::Address::Home );
371
 
        return address.country();
372
 
      }
373
 
      break;
374
 
    case HomeAddressLabel:
375
 
      {
376
 
        const KABC::Address address = contact.address( KABC::Address::Home );
377
 
        return address.label();
378
 
      }
379
 
      break;
380
 
    case BusinessAddressStreet:
381
 
      {
382
 
        const KABC::Address address = contact.address( KABC::Address::Work );
383
 
        return address.street();
384
 
      }
385
 
      break;
386
 
    case BusinessAddressLocality:
387
 
      {
388
 
        const KABC::Address address = contact.address( KABC::Address::Work );
389
 
        return address.locality();
390
 
      }
391
 
      break;
392
 
    case BusinessAddressRegion:
393
 
      {
394
 
        const KABC::Address address = contact.address( KABC::Address::Work );
395
 
        return address.region();
396
 
      }
397
 
      break;
398
 
    case BusinessAddressPostalCode:
399
 
      {
400
 
        const KABC::Address address = contact.address( KABC::Address::Work );
401
 
        return address.postalCode();
402
 
      }
403
 
      break;
404
 
    case BusinessAddressCountry:
405
 
      {
406
 
        const KABC::Address address = contact.address( KABC::Address::Work );
407
 
        return address.country();
408
 
      }
409
 
      break;
410
 
    case BusinessAddressLabel:
411
 
      {
412
 
        const KABC::Address address = contact.address( KABC::Address::Work );
413
 
        return address.label();
414
 
      }
415
 
      break;
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;
424
 
    case PreferredEmail:
425
 
      {
426
 
        const QStringList emails = contact.emails();
427
 
        if ( emails.count() > 0 )
428
 
          return emails.at( 0 );
429
 
        else
430
 
          return QString();
431
 
      }
432
 
    case Email2:
433
 
      {
434
 
        const QStringList emails = contact.emails();
435
 
        if ( emails.count() > 1 )
436
 
          return emails.at( 1 );
437
 
        else
438
 
          return QString();
439
 
      }
440
 
    case Email3:
441
 
      {
442
 
        const QStringList emails = contact.emails();
443
 
        if ( emails.count() > 2 )
444
 
          return emails.at( 2 );
445
 
        else
446
 
          return QString();
447
 
      }
448
 
    case Email4:
449
 
      {
450
 
        const QStringList emails = contact.emails();
451
 
        if ( emails.count() > 3 )
452
 
          return emails.at( 3 );
453
 
        else
454
 
          return QString();
455
 
      }
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;
462
 
  }
463
 
 
464
 
  return QString();
465
 
}