SVN_SILENT made messages (.desktop file)
[kdepim.git] / kaddressbook / contactfields.cpp
blobc7fd571e9bedba080f5afe15c14ea7975bf08499
1 /*
2 This file is part of KAddressBook.
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"
23 #include <KLocalizedString>
25 QString ContactFields::label( Field field )
27 switch ( field ) {
28 case Undefined:
29 return i18nc( "@item Undefined import field type", "Undefined" );
30 break;
31 case FormattedName:
32 return KABC::Addressee::formattedNameLabel();
33 break;
34 case Prefix:
35 return KABC::Addressee::prefixLabel();
36 break;
37 case GivenName:
38 return KABC::Addressee::givenNameLabel();
39 break;
40 case AdditionalName:
41 return KABC::Addressee::additionalNameLabel();
42 break;
43 case FamilyName:
44 return KABC::Addressee::familyNameLabel();
45 break;
46 case Suffix:
47 return KABC::Addressee::suffixLabel();
48 break;
49 case NickName:
50 return KABC::Addressee::nickNameLabel();
51 break;
52 case Birthday:
53 return KABC::Addressee::birthdayLabel();
54 break;
55 case Anniversary:
56 return i18nc( "The wedding anniversary of a contact", "Anniversary" );
57 break;
58 case HomeAddressStreet:
59 return KABC::Addressee::homeAddressStreetLabel();
60 break;
61 case HomeAddressPostOfficeBox:
62 return KABC::Addressee::homeAddressPostOfficeBoxLabel();
63 break;
64 case HomeAddressLocality:
65 return KABC::Addressee::homeAddressLocalityLabel();
66 break;
67 case HomeAddressRegion:
68 return KABC::Addressee::homeAddressRegionLabel();
69 break;
70 case HomeAddressPostalCode:
71 return KABC::Addressee::homeAddressPostalCodeLabel();
72 break;
73 case HomeAddressCountry:
74 return KABC::Addressee::homeAddressCountryLabel();
75 break;
76 case HomeAddressLabel:
77 return KABC::Addressee::homeAddressLabelLabel();
78 break;
79 case BusinessAddressStreet:
80 return KABC::Addressee::businessAddressStreetLabel();
81 break;
82 case BusinessAddressPostOfficeBox:
83 return KABC::Addressee::businessAddressPostOfficeBoxLabel();
84 break;
85 case BusinessAddressLocality:
86 return KABC::Addressee::businessAddressLocalityLabel();
87 break;
88 case BusinessAddressRegion:
89 return KABC::Addressee::businessAddressRegionLabel();
90 break;
91 case BusinessAddressPostalCode:
92 return KABC::Addressee::businessAddressPostalCodeLabel();
93 break;
94 case BusinessAddressCountry:
95 return KABC::Addressee::businessAddressCountryLabel();
96 break;
97 case BusinessAddressLabel:
98 return KABC::Addressee::businessAddressLabelLabel();
99 break;
100 case HomePhone:
101 return KABC::Addressee::homePhoneLabel();
102 break;
103 case BusinessPhone:
104 return KABC::Addressee::businessPhoneLabel();
105 break;
106 case MobilePhone:
107 return KABC::Addressee::mobilePhoneLabel();
108 break;
109 case HomeFax:
110 return KABC::Addressee::homeFaxLabel();
111 break;
112 case BusinessFax:
113 return KABC::Addressee::businessFaxLabel();
114 break;
115 case CarPhone:
116 return KABC::Addressee::carPhoneLabel();
117 break;
118 case Isdn:
119 return KABC::Addressee::isdnLabel();
120 break;
121 case Pager:
122 return KABC::Addressee::pagerLabel();
123 break;
124 case PreferredEmail:
125 return i18nc( "Preferred email address", "EMail (preferred)" );
126 break;
127 case Email2:
128 return i18nc( "Second email address", "EMail (2)" );
129 break;
130 case Email3:
131 return i18nc( "Third email address", "EMail (3)" );
132 break;
133 case Email4:
134 return i18nc( "Fourth email address", "EMail (4)" );
135 break;
136 case Mailer:
137 return KABC::Addressee::mailerLabel();
138 break;
139 case Title:
140 return KABC::Addressee::titleLabel();
141 break;
142 case Role:
143 return KABC::Addressee::roleLabel();
144 break;
145 case Organization:
146 return KABC::Addressee::organizationLabel();
147 break;
148 case Note:
149 return KABC::Addressee::noteLabel();
150 break;
151 case Homepage:
152 return KABC::Addressee::urlLabel();
153 break;
154 case BlogFeed:
155 return i18n( "Blog Feed" );
156 break;
157 case Profession:
158 return i18n( "Profession" );
159 break;
160 case Office:
161 return i18n( "Office" );
162 break;
163 case Manager:
164 return i18n( "Manager" );
165 break;
166 case Assistant:
167 return i18n( "Assistant" );
168 break;
169 case Spouse:
170 return i18n( "Spouse" );
171 break;
174 return QString();
177 ContactFields::Fields ContactFields::allFields()
179 Fields fields;
181 fields << Undefined
182 << FormattedName
183 << Prefix
184 << GivenName
185 << AdditionalName
186 << FamilyName
187 << Suffix
188 << NickName
189 << Birthday
190 << Anniversary
191 << PreferredEmail
192 << Email2
193 << Email3
194 << Email4
195 << HomeAddressStreet
196 << HomeAddressPostOfficeBox
197 << HomeAddressLocality
198 << HomeAddressRegion
199 << HomeAddressPostalCode
200 << HomeAddressCountry
201 << HomeAddressLabel
202 << BusinessAddressStreet
203 << BusinessAddressPostOfficeBox
204 << BusinessAddressLocality
205 << BusinessAddressRegion
206 << BusinessAddressPostalCode
207 << BusinessAddressCountry
208 << BusinessAddressLabel
209 << HomePhone
210 << BusinessPhone
211 << MobilePhone
212 << HomeFax
213 << BusinessFax
214 << CarPhone
215 << Isdn
216 << Pager
217 << Mailer
218 << Title
219 << Role
220 << Organization
221 << Note
222 << Homepage
223 << BlogFeed
224 << Profession
225 << Office
226 << Manager
227 << Assistant
228 << Spouse;
230 return fields;
233 void ContactFields::setValue( Field field, const QString &value, KABC::Addressee &contact )
235 switch ( field ) {
236 case ContactFields::Undefined:
237 break;
238 case ContactFields::FormattedName:
239 contact.setFormattedName( value );
240 break;
241 case ContactFields::GivenName:
242 contact.setGivenName( value );
243 break;
244 case ContactFields::FamilyName:
245 contact.setFamilyName( value );
246 break;
247 case ContactFields::AdditionalName:
248 contact.setAdditionalName( value );
249 break;
250 case ContactFields::Prefix:
251 contact.setPrefix( value );
252 break;
253 case ContactFields::Suffix:
254 contact.setSuffix( value );
255 break;
256 case ContactFields::NickName:
257 contact.setNickName( value );
258 break;
259 case ContactFields::Birthday:
260 contact.setBirthday( QDateTime::fromString( value, Qt::ISODate ) );
261 break;
262 case ContactFields::Anniversary:
263 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
264 QLatin1String( "X-Anniversary" ), value );
265 break;
266 case ContactFields::PreferredEmail:
267 contact.insertEmail( value, true );
268 break;
269 case ContactFields::Email2:
270 contact.insertEmail( value, false );
271 break;
272 case ContactFields::Email3:
273 contact.insertEmail( value, false );
274 break;
275 case ContactFields::Email4:
276 contact.insertEmail( value, false );
277 break;
278 case ContactFields::Role:
279 contact.setRole( value );
280 break;
281 case ContactFields::Title:
282 contact.setTitle( value );
283 break;
284 case ContactFields::Mailer:
285 contact.setMailer( value );
286 break;
287 case ContactFields::Homepage:
288 contact.setUrl( KUrl( value ) );
289 break;
290 case ContactFields::Organization:
291 contact.setOrganization( value );
292 break;
293 case ContactFields::Note:
294 contact.setNote( value );
295 break;
296 case ContactFields::HomePhone:
298 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home );
299 number.setNumber( value );
300 contact.insertPhoneNumber( number );
302 break;
303 case ContactFields::BusinessPhone:
305 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work );
306 number.setNumber( value );
307 contact.insertPhoneNumber( number );
309 break;
310 case ContactFields::MobilePhone:
312 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Cell );
313 number.setNumber( value );
314 contact.insertPhoneNumber( number );
316 break;
317 case ContactFields::HomeFax:
319 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Home |
320 KABC::PhoneNumber::Fax );
321 number.setNumber( value );
322 contact.insertPhoneNumber( number );
324 break;
325 case ContactFields::BusinessFax:
327 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Work |
328 KABC::PhoneNumber::Fax );
329 number.setNumber( value );
330 contact.insertPhoneNumber( number );
332 break;
333 case ContactFields::CarPhone:
335 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Car );
336 number.setNumber( value );
337 contact.insertPhoneNumber( number );
339 break;
340 case ContactFields::Isdn:
342 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Isdn );
343 number.setNumber( value );
344 contact.insertPhoneNumber( number );
346 break;
347 case ContactFields::Pager:
349 KABC::PhoneNumber number = contact.phoneNumber( KABC::PhoneNumber::Pager );
350 number.setNumber( value );
351 contact.insertPhoneNumber( number );
353 break;
355 case ContactFields::HomeAddressStreet:
357 KABC::Address address = contact.address( KABC::Address::Home );
358 address.setStreet( value );
359 contact.insertAddress( address );
361 break;
362 case ContactFields::HomeAddressPostOfficeBox:
364 KABC::Address address = contact.address( KABC::Address::Home );
365 address.setPostOfficeBox( value );
366 contact.insertAddress( address );
368 break;
369 case ContactFields::HomeAddressLocality:
371 KABC::Address address = contact.address( KABC::Address::Home );
372 address.setLocality( value );
373 contact.insertAddress( address );
375 break;
376 case ContactFields::HomeAddressRegion:
378 KABC::Address address = contact.address( KABC::Address::Home );
379 address.setRegion( value );
380 contact.insertAddress( address );
382 break;
383 case ContactFields::HomeAddressPostalCode:
385 KABC::Address address = contact.address( KABC::Address::Home );
386 address.setPostalCode( value );
387 contact.insertAddress( address );
389 break;
390 case ContactFields::HomeAddressCountry:
392 KABC::Address address = contact.address( KABC::Address::Home );
393 address.setCountry( value );
394 contact.insertAddress( address );
396 break;
397 case ContactFields::HomeAddressLabel:
399 KABC::Address address = contact.address( KABC::Address::Home );
400 address.setLabel( value );
401 contact.insertAddress( address );
403 break;
404 case ContactFields::BusinessAddressStreet:
406 KABC::Address address = contact.address( KABC::Address::Work );
407 address.setStreet( value );
408 contact.insertAddress( address );
410 break;
411 case ContactFields::BusinessAddressPostOfficeBox:
413 KABC::Address address = contact.address( KABC::Address::Work );
414 address.setPostOfficeBox( value );
415 contact.insertAddress( address );
417 break;
418 case ContactFields::BusinessAddressLocality:
420 KABC::Address address = contact.address( KABC::Address::Work );
421 address.setLocality( value );
422 contact.insertAddress( address );
424 break;
425 case ContactFields::BusinessAddressRegion:
427 KABC::Address address = contact.address( KABC::Address::Work );
428 address.setRegion( value );
429 contact.insertAddress( address );
431 break;
432 case ContactFields::BusinessAddressPostalCode:
434 KABC::Address address = contact.address( KABC::Address::Work );
435 address.setPostalCode( value );
436 contact.insertAddress( address );
438 break;
439 case ContactFields::BusinessAddressCountry:
441 KABC::Address address = contact.address( KABC::Address::Work );
442 address.setCountry( value );
443 contact.insertAddress( address );
445 break;
446 case ContactFields::BusinessAddressLabel:
448 KABC::Address address = contact.address( KABC::Address::Work );
449 address.setLabel( value );
450 contact.insertAddress( address );
452 break;
453 case BlogFeed:
454 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
455 QLatin1String( "BlogFeed" ), value );
456 break;
457 case Profession:
458 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
459 QLatin1String( "X-Profession" ), value );
460 break;
461 case Office:
462 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
463 QLatin1String( "X-Office" ), value );
464 break;
465 case Manager:
466 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
467 QLatin1String( "X-ManagersName" ), value );
468 break;
469 case Assistant:
470 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
471 QLatin1String( "X-AssistantsName" ), value );
472 break;
473 case Spouse:
474 contact.insertCustom( QLatin1String( "KADDRESSBOOK" ),
475 QLatin1String( "X-SpousesName" ), value );
476 break;
480 QString ContactFields::value( Field field, const KABC::Addressee &contact )
482 switch ( field ) {
483 case Undefined:
484 return QString();
485 break;
486 case FormattedName:
487 return contact.formattedName();
488 break;
489 case Prefix:
490 return contact.prefix();
491 break;
492 case GivenName:
493 return contact.givenName();
494 break;
495 case AdditionalName:
496 return contact.additionalName();
497 break;
498 case FamilyName:
499 return contact.familyName();
500 break;
501 case Suffix:
502 return contact.suffix();
503 break;
504 case NickName:
505 return contact.nickName();
506 break;
507 case Birthday:
509 const QDateTime birthday = contact.birthday();
510 if ( birthday.date().isValid() ) {
511 return birthday.date().toString( Qt::ISODate );
512 } else {
513 return QString();
516 break;
517 case Anniversary:
518 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Anniversary" ) );
519 break;
520 case HomeAddressStreet:
522 const KABC::Address address = contact.address( KABC::Address::Home );
523 return address.street();
525 break;
526 case HomeAddressPostOfficeBox:
528 const KABC::Address address = contact.address( KABC::Address::Home );
529 return address.postOfficeBox();
531 break;
532 case HomeAddressLocality:
534 const KABC::Address address = contact.address( KABC::Address::Home );
535 return address.locality();
537 break;
538 case HomeAddressRegion:
540 const KABC::Address address = contact.address( KABC::Address::Home );
541 return address.region();
543 break;
544 case HomeAddressPostalCode:
546 const KABC::Address address = contact.address( KABC::Address::Home );
547 return address.postalCode();
549 break;
550 case HomeAddressCountry:
552 const KABC::Address address = contact.address( KABC::Address::Home );
553 return address.country();
555 break;
556 case HomeAddressLabel:
558 const KABC::Address address = contact.address( KABC::Address::Home );
559 return address.label();
561 break;
562 case BusinessAddressStreet:
564 const KABC::Address address = contact.address( KABC::Address::Work );
565 return address.street();
567 break;
568 case BusinessAddressPostOfficeBox:
570 const KABC::Address address = contact.address( KABC::Address::Work );
571 return address.postOfficeBox();
573 break;
574 case BusinessAddressLocality:
576 const KABC::Address address = contact.address( KABC::Address::Work );
577 return address.locality();
579 break;
580 case BusinessAddressRegion:
582 const KABC::Address address = contact.address( KABC::Address::Work );
583 return address.region();
585 break;
586 case BusinessAddressPostalCode:
588 const KABC::Address address = contact.address( KABC::Address::Work );
589 return address.postalCode();
591 break;
592 case BusinessAddressCountry:
594 const KABC::Address address = contact.address( KABC::Address::Work );
595 return address.country();
597 break;
598 case BusinessAddressLabel:
600 const KABC::Address address = contact.address( KABC::Address::Work );
601 return address.label();
603 break;
604 case HomePhone:
605 return contact.phoneNumber( KABC::PhoneNumber::Home ).number();
606 break;
607 case BusinessPhone:
608 return contact.phoneNumber( KABC::PhoneNumber::Work ).number();
609 break;
610 case MobilePhone:
611 return contact.phoneNumber( KABC::PhoneNumber::Cell ).number();
612 break;
613 case HomeFax:
614 return contact.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ).number();
615 break;
616 case BusinessFax:
617 return contact.phoneNumber( KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ).number();
618 break;
619 case CarPhone:
620 return contact.phoneNumber( KABC::PhoneNumber::Car ).number();
621 break;
622 case Isdn:
623 return contact.phoneNumber( KABC::PhoneNumber::Isdn ).number();
624 break;
625 case Pager:
626 return contact.phoneNumber( KABC::PhoneNumber::Pager ).number();
627 break;
628 case PreferredEmail:
630 const QStringList emails = contact.emails();
631 if ( emails.count() > 0 ) {
632 return emails.at( 0 );
633 } else {
634 return QString();
637 break;
638 case Email2:
640 const QStringList emails = contact.emails();
641 if ( emails.count() > 1 ) {
642 return emails.at( 1 );
643 } else {
644 return QString();
647 break;
648 case Email3:
650 const QStringList emails = contact.emails();
651 if ( emails.count() > 2 ) {
652 return emails.at( 2 );
653 } else {
654 return QString();
657 break;
658 case Email4:
660 const QStringList emails = contact.emails();
661 if ( emails.count() > 3 ) {
662 return emails.at( 3 );
663 } else {
664 return QString();
667 break;
668 case Mailer:
669 return contact.mailer();
670 break;
671 case Title:
672 return contact.title();
673 break;
674 case Role:
675 return contact.role();
676 break;
677 case Organization:
678 return contact.organization();
679 break;
680 case Note:
681 return contact.note();
682 break;
683 case Homepage:
684 return contact.url().url();
685 break;
686 case BlogFeed:
687 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "BlogFeed" ) );
688 break;
689 case Profession:
690 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Profession" ) );
691 break;
692 case Office:
693 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Office" ) );
694 break;
695 case Manager:
696 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-ManagersName" ) );
697 break;
698 case Assistant:
699 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-AssistantsName" ) );
700 break;
701 case Spouse:
702 return contact.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-SpousesName" ) );
703 break;
706 return QString();