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
)
29 return i18nc( "@item Undefined import field type", "Undefined" );
32 return KABC::Addressee::formattedNameLabel();
35 return KABC::Addressee::prefixLabel();
38 return KABC::Addressee::givenNameLabel();
41 return KABC::Addressee::additionalNameLabel();
44 return KABC::Addressee::familyNameLabel();
47 return KABC::Addressee::suffixLabel();
50 return KABC::Addressee::nickNameLabel();
53 return KABC::Addressee::birthdayLabel();
56 return i18nc( "The wedding anniversary of a contact", "Anniversary" );
58 case HomeAddressStreet
:
59 return KABC::Addressee::homeAddressStreetLabel();
61 case HomeAddressPostOfficeBox
:
62 return KABC::Addressee::homeAddressPostOfficeBoxLabel();
64 case HomeAddressLocality
:
65 return KABC::Addressee::homeAddressLocalityLabel();
67 case HomeAddressRegion
:
68 return KABC::Addressee::homeAddressRegionLabel();
70 case HomeAddressPostalCode
:
71 return KABC::Addressee::homeAddressPostalCodeLabel();
73 case HomeAddressCountry
:
74 return KABC::Addressee::homeAddressCountryLabel();
76 case HomeAddressLabel
:
77 return KABC::Addressee::homeAddressLabelLabel();
79 case BusinessAddressStreet
:
80 return KABC::Addressee::businessAddressStreetLabel();
82 case BusinessAddressPostOfficeBox
:
83 return KABC::Addressee::businessAddressPostOfficeBoxLabel();
85 case BusinessAddressLocality
:
86 return KABC::Addressee::businessAddressLocalityLabel();
88 case BusinessAddressRegion
:
89 return KABC::Addressee::businessAddressRegionLabel();
91 case BusinessAddressPostalCode
:
92 return KABC::Addressee::businessAddressPostalCodeLabel();
94 case BusinessAddressCountry
:
95 return KABC::Addressee::businessAddressCountryLabel();
97 case BusinessAddressLabel
:
98 return KABC::Addressee::businessAddressLabelLabel();
101 return KABC::Addressee::homePhoneLabel();
104 return KABC::Addressee::businessPhoneLabel();
107 return KABC::Addressee::mobilePhoneLabel();
110 return KABC::Addressee::homeFaxLabel();
113 return KABC::Addressee::businessFaxLabel();
116 return KABC::Addressee::carPhoneLabel();
119 return KABC::Addressee::isdnLabel();
122 return KABC::Addressee::pagerLabel();
125 return i18nc( "Preferred email address", "EMail (preferred)" );
128 return i18nc( "Second email address", "EMail (2)" );
131 return i18nc( "Third email address", "EMail (3)" );
134 return i18nc( "Fourth email address", "EMail (4)" );
137 return KABC::Addressee::mailerLabel();
140 return KABC::Addressee::titleLabel();
143 return KABC::Addressee::roleLabel();
146 return KABC::Addressee::organizationLabel();
149 return KABC::Addressee::noteLabel();
152 return KABC::Addressee::urlLabel();
155 return i18n( "Blog Feed" );
158 return i18n( "Profession" );
161 return i18n( "Office" );
164 return i18n( "Manager" );
167 return i18n( "Assistant" );
170 return i18n( "Spouse" );
177 ContactFields::Fields
ContactFields::allFields()
196 << HomeAddressPostOfficeBox
197 << HomeAddressLocality
199 << HomeAddressPostalCode
200 << HomeAddressCountry
202 << BusinessAddressStreet
203 << BusinessAddressPostOfficeBox
204 << BusinessAddressLocality
205 << BusinessAddressRegion
206 << BusinessAddressPostalCode
207 << BusinessAddressCountry
208 << BusinessAddressLabel
233 void ContactFields::setValue( Field field
, const QString
&value
, KABC::Addressee
&contact
)
236 case ContactFields::Undefined
:
238 case ContactFields::FormattedName
:
239 contact
.setFormattedName( value
);
241 case ContactFields::GivenName
:
242 contact
.setGivenName( value
);
244 case ContactFields::FamilyName
:
245 contact
.setFamilyName( value
);
247 case ContactFields::AdditionalName
:
248 contact
.setAdditionalName( value
);
250 case ContactFields::Prefix
:
251 contact
.setPrefix( value
);
253 case ContactFields::Suffix
:
254 contact
.setSuffix( value
);
256 case ContactFields::NickName
:
257 contact
.setNickName( value
);
259 case ContactFields::Birthday
:
260 contact
.setBirthday( QDateTime::fromString( value
, Qt::ISODate
) );
262 case ContactFields::Anniversary
:
263 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
264 QLatin1String( "X-Anniversary" ), value
);
266 case ContactFields::PreferredEmail
:
267 contact
.insertEmail( value
, true );
269 case ContactFields::Email2
:
270 contact
.insertEmail( value
, false );
272 case ContactFields::Email3
:
273 contact
.insertEmail( value
, false );
275 case ContactFields::Email4
:
276 contact
.insertEmail( value
, false );
278 case ContactFields::Role
:
279 contact
.setRole( value
);
281 case ContactFields::Title
:
282 contact
.setTitle( value
);
284 case ContactFields::Mailer
:
285 contact
.setMailer( value
);
287 case ContactFields::Homepage
:
288 contact
.setUrl( KUrl( value
) );
290 case ContactFields::Organization
:
291 contact
.setOrganization( value
);
293 case ContactFields::Note
:
294 contact
.setNote( value
);
296 case ContactFields::HomePhone
:
298 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Home
);
299 number
.setNumber( value
);
300 contact
.insertPhoneNumber( number
);
303 case ContactFields::BusinessPhone
:
305 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Work
);
306 number
.setNumber( value
);
307 contact
.insertPhoneNumber( number
);
310 case ContactFields::MobilePhone
:
312 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Cell
);
313 number
.setNumber( value
);
314 contact
.insertPhoneNumber( number
);
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
);
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
);
333 case ContactFields::CarPhone
:
335 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Car
);
336 number
.setNumber( value
);
337 contact
.insertPhoneNumber( number
);
340 case ContactFields::Isdn
:
342 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Isdn
);
343 number
.setNumber( value
);
344 contact
.insertPhoneNumber( number
);
347 case ContactFields::Pager
:
349 KABC::PhoneNumber number
= contact
.phoneNumber( KABC::PhoneNumber::Pager
);
350 number
.setNumber( value
);
351 contact
.insertPhoneNumber( number
);
355 case ContactFields::HomeAddressStreet
:
357 KABC::Address address
= contact
.address( KABC::Address::Home
);
358 address
.setStreet( value
);
359 contact
.insertAddress( address
);
362 case ContactFields::HomeAddressPostOfficeBox
:
364 KABC::Address address
= contact
.address( KABC::Address::Home
);
365 address
.setPostOfficeBox( value
);
366 contact
.insertAddress( address
);
369 case ContactFields::HomeAddressLocality
:
371 KABC::Address address
= contact
.address( KABC::Address::Home
);
372 address
.setLocality( value
);
373 contact
.insertAddress( address
);
376 case ContactFields::HomeAddressRegion
:
378 KABC::Address address
= contact
.address( KABC::Address::Home
);
379 address
.setRegion( value
);
380 contact
.insertAddress( address
);
383 case ContactFields::HomeAddressPostalCode
:
385 KABC::Address address
= contact
.address( KABC::Address::Home
);
386 address
.setPostalCode( value
);
387 contact
.insertAddress( address
);
390 case ContactFields::HomeAddressCountry
:
392 KABC::Address address
= contact
.address( KABC::Address::Home
);
393 address
.setCountry( value
);
394 contact
.insertAddress( address
);
397 case ContactFields::HomeAddressLabel
:
399 KABC::Address address
= contact
.address( KABC::Address::Home
);
400 address
.setLabel( value
);
401 contact
.insertAddress( address
);
404 case ContactFields::BusinessAddressStreet
:
406 KABC::Address address
= contact
.address( KABC::Address::Work
);
407 address
.setStreet( value
);
408 contact
.insertAddress( address
);
411 case ContactFields::BusinessAddressPostOfficeBox
:
413 KABC::Address address
= contact
.address( KABC::Address::Work
);
414 address
.setPostOfficeBox( value
);
415 contact
.insertAddress( address
);
418 case ContactFields::BusinessAddressLocality
:
420 KABC::Address address
= contact
.address( KABC::Address::Work
);
421 address
.setLocality( value
);
422 contact
.insertAddress( address
);
425 case ContactFields::BusinessAddressRegion
:
427 KABC::Address address
= contact
.address( KABC::Address::Work
);
428 address
.setRegion( value
);
429 contact
.insertAddress( address
);
432 case ContactFields::BusinessAddressPostalCode
:
434 KABC::Address address
= contact
.address( KABC::Address::Work
);
435 address
.setPostalCode( value
);
436 contact
.insertAddress( address
);
439 case ContactFields::BusinessAddressCountry
:
441 KABC::Address address
= contact
.address( KABC::Address::Work
);
442 address
.setCountry( value
);
443 contact
.insertAddress( address
);
446 case ContactFields::BusinessAddressLabel
:
448 KABC::Address address
= contact
.address( KABC::Address::Work
);
449 address
.setLabel( value
);
450 contact
.insertAddress( address
);
454 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
455 QLatin1String( "BlogFeed" ), value
);
458 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
459 QLatin1String( "X-Profession" ), value
);
462 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
463 QLatin1String( "X-Office" ), value
);
466 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
467 QLatin1String( "X-ManagersName" ), value
);
470 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
471 QLatin1String( "X-AssistantsName" ), value
);
474 contact
.insertCustom( QLatin1String( "KADDRESSBOOK" ),
475 QLatin1String( "X-SpousesName" ), value
);
480 QString
ContactFields::value( Field field
, const KABC::Addressee
&contact
)
487 return contact
.formattedName();
490 return contact
.prefix();
493 return contact
.givenName();
496 return contact
.additionalName();
499 return contact
.familyName();
502 return contact
.suffix();
505 return contact
.nickName();
509 const QDateTime birthday
= contact
.birthday();
510 if ( birthday
.date().isValid() ) {
511 return birthday
.date().toString( Qt::ISODate
);
518 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Anniversary" ) );
520 case HomeAddressStreet
:
522 const KABC::Address address
= contact
.address( KABC::Address::Home
);
523 return address
.street();
526 case HomeAddressPostOfficeBox
:
528 const KABC::Address address
= contact
.address( KABC::Address::Home
);
529 return address
.postOfficeBox();
532 case HomeAddressLocality
:
534 const KABC::Address address
= contact
.address( KABC::Address::Home
);
535 return address
.locality();
538 case HomeAddressRegion
:
540 const KABC::Address address
= contact
.address( KABC::Address::Home
);
541 return address
.region();
544 case HomeAddressPostalCode
:
546 const KABC::Address address
= contact
.address( KABC::Address::Home
);
547 return address
.postalCode();
550 case HomeAddressCountry
:
552 const KABC::Address address
= contact
.address( KABC::Address::Home
);
553 return address
.country();
556 case HomeAddressLabel
:
558 const KABC::Address address
= contact
.address( KABC::Address::Home
);
559 return address
.label();
562 case BusinessAddressStreet
:
564 const KABC::Address address
= contact
.address( KABC::Address::Work
);
565 return address
.street();
568 case BusinessAddressPostOfficeBox
:
570 const KABC::Address address
= contact
.address( KABC::Address::Work
);
571 return address
.postOfficeBox();
574 case BusinessAddressLocality
:
576 const KABC::Address address
= contact
.address( KABC::Address::Work
);
577 return address
.locality();
580 case BusinessAddressRegion
:
582 const KABC::Address address
= contact
.address( KABC::Address::Work
);
583 return address
.region();
586 case BusinessAddressPostalCode
:
588 const KABC::Address address
= contact
.address( KABC::Address::Work
);
589 return address
.postalCode();
592 case BusinessAddressCountry
:
594 const KABC::Address address
= contact
.address( KABC::Address::Work
);
595 return address
.country();
598 case BusinessAddressLabel
:
600 const KABC::Address address
= contact
.address( KABC::Address::Work
);
601 return address
.label();
605 return contact
.phoneNumber( KABC::PhoneNumber::Home
).number();
608 return contact
.phoneNumber( KABC::PhoneNumber::Work
).number();
611 return contact
.phoneNumber( KABC::PhoneNumber::Cell
).number();
614 return contact
.phoneNumber( KABC::PhoneNumber::Home
| KABC::PhoneNumber::Fax
).number();
617 return contact
.phoneNumber( KABC::PhoneNumber::Work
| KABC::PhoneNumber::Fax
).number();
620 return contact
.phoneNumber( KABC::PhoneNumber::Car
).number();
623 return contact
.phoneNumber( KABC::PhoneNumber::Isdn
).number();
626 return contact
.phoneNumber( KABC::PhoneNumber::Pager
).number();
630 const QStringList emails
= contact
.emails();
631 if ( emails
.count() > 0 ) {
632 return emails
.at( 0 );
640 const QStringList emails
= contact
.emails();
641 if ( emails
.count() > 1 ) {
642 return emails
.at( 1 );
650 const QStringList emails
= contact
.emails();
651 if ( emails
.count() > 2 ) {
652 return emails
.at( 2 );
660 const QStringList emails
= contact
.emails();
661 if ( emails
.count() > 3 ) {
662 return emails
.at( 3 );
669 return contact
.mailer();
672 return contact
.title();
675 return contact
.role();
678 return contact
.organization();
681 return contact
.note();
684 return contact
.url().url();
687 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "BlogFeed" ) );
690 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Profession" ) );
693 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-Office" ) );
696 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-ManagersName" ) );
699 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-AssistantsName" ) );
702 return contact
.custom( QLatin1String( "KADDRESSBOOK" ), QLatin1String( "X-SpousesName" ) );