-rw-r--r-- | bin/kdepim/kaddressbook/germantranslation.txt | 24 | ||||
-rw-r--r-- | kabc/addressee.cpp | 74 | ||||
-rw-r--r-- | kabc/addressee.h | 2 | ||||
-rw-r--r-- | kabc/field.cpp | 10 | ||||
-rw-r--r-- | kabc/phonenumber.cpp | 112 | ||||
-rw-r--r-- | kabc/phonenumber.h | 5 | ||||
-rw-r--r-- | kabc/vcard21parser.cpp | 14 | ||||
-rw-r--r-- | kabc/vcardformatimpl.cpp | 4 | ||||
-rw-r--r-- | kabc/vcardparser/vcardtool.cpp | 2 |
9 files changed, 211 insertions, 36 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt index 8dd0a52..62e567e 100644 --- a/bin/kdepim/kaddressbook/germantranslation.txt +++ b/bin/kdepim/kaddressbook/germantranslation.txt | |||
@@ -113,9 +113,9 @@ | |||
113 | { "Store as URL","Speichere als URL" }, | 113 | { "Store as URL","Speichere als URL" }, |
114 | { "Logo","Logo" }, | 114 | { "Logo","Logo" }, |
115 | { "&Images","B&ilder" }, | 115 | { "&Images","B&ilder" }, |
116 | { "Home","Privat" }, | 116 | { "Home","Privat" }, |
117 | { "Work","Geschäft" }, | 117 | { "Work","Arbeit" }, |
118 | { "Mobile","Handy" }, | 118 | { "Mobile","Handy" }, |
119 | { "Fax","Fax" }, | 119 | { "Fax","Fax" }, |
120 | { "Contact Editor","Bearbeite Kontakt" }, | 120 | { "Contact Editor","Bearbeite Kontakt" }, |
121 | { "&Mail...","&Mail..." }, | 121 | { "&Mail...","&Mail..." }, |
@@ -301,12 +301,12 @@ | |||
301 | { "Business Address Postal Code","Büro Adresse PLZ" }, | 301 | { "Business Address Postal Code","Büro Adresse PLZ" }, |
302 | { "Business Address Country","Büro Adresse Land" }, | 302 | { "Business Address Country","Büro Adresse Land" }, |
303 | { "Business Address Label","Büro Adresse Label" }, | 303 | { "Business Address Label","Büro Adresse Label" }, |
304 | { "Home Phone","Privat Telefon" }, | 304 | { "Home Phone","Privat Telefon" }, |
305 | { "Business Phone","Büro Telefon" }, | 305 | { "Business Phone","Arbeit Telefon" }, |
306 | { "Mobile Phone","Handy" }, | 306 | { "Mobile Phone","Handy" }, |
307 | { "Home Fax","Privat Fax" }, | 307 | { "Home Fax","Privat Fax" }, |
308 | { "Business Fax","Büro Fax" }, | 308 | { "Business Fax","Arbeit Fax" }, |
309 | { "Car Phone","Autotelefon" }, | 309 | { "Car Phone","Autotelefon" }, |
310 | { "ISDN","ISDN" }, | 310 | { "ISDN","ISDN" }, |
311 | { "Pager","Pager" }, | 311 | { "Pager","Pager" }, |
312 | { "Mail Client","Mail Klient" }, | 312 | { "Mail Client","Mail Klient" }, |
@@ -751,10 +751,10 @@ | |||
751 | { "Edit new contact","Bearbeite neuen Kontakt" }, | 751 | { "Edit new contact","Bearbeite neuen Kontakt" }, |
752 | { "Edit ","Bearbeite " }, | 752 | { "Edit ","Bearbeite " }, |
753 | { "No contact changed!","Kein Kontakt verändert" }, | 753 | { "No contact changed!","Kein Kontakt verändert" }, |
754 | { "%1 contacts changed!","%1 Kontakte geändert!" }, | 754 | { "%1 contacts changed!","%1 Kontakte geändert!" }, |
755 | { "Mobile (home)","Handy (Arbeit)" }, | 755 | { "Mobile (home)","Handy (Privat)" }, |
756 | { "Mobile (work)","Handy (Privat)" }, | 756 | { "Mobile (work)","Handy (Arbeit)" }, |
757 | { "Def.Formatted Name","Def. Format. Name" }, | 757 | { "Def.Formatted Name","Def. Format. Name" }, |
758 | { "Colors","Farben" }, | 758 | { "Colors","Farben" }, |
759 | { "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, | 759 | { "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, |
760 | { "Backup enabled","Backup angeschaltet" }, | 760 | { "Backup enabled","Backup angeschaltet" }, |
@@ -814,12 +814,18 @@ | |||
814 | { "Import all!","Importiere alle!" }, | 814 | { "Import all!","Importiere alle!" }, |
815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, | 815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, |
816 | { "Import Format","Import Format" }, | 816 | { "Import Format","Import Format" }, |
817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, | 817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, |
818 | { "","" }, | 818 | { "Home2","Privat2" }, |
819 | { "","" }, | 819 | { "Work2","Arbeit2" }, |
820 | { "","" }, | 820 | { "Fax (Work)","Fax (Arbeit)" }, |
821 | { "","" }, | 821 | { "Fax (Home)","Fax (Privat)" }, |
822 | { "Assistent","Sekretär(in)" }, | ||
823 | { "Company","Firma" }, | ||
824 | { "Mobile2 (Work)","Handy2 (Arbeit)" }, | ||
825 | { "Callback","Rückruf" }, | ||
826 | { "Fax (Other)","Fax (Anderes)" }, | ||
827 | { "Primary","Bevorzugt" }, | ||
822 | { "","" }, | 828 | { "","" }, |
823 | { "","" }, | 829 | { "","" }, |
824 | { "","" }, | 830 | { "","" }, |
825 | { "","" }, | 831 | { "","" }, |
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 7e1e414..661bdf6 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp | |||
@@ -585,9 +585,61 @@ void Addressee::simplifyEmails() | |||
585 | detach(); | 585 | detach(); |
586 | mData->emails.clear(); | 586 | mData->emails.clear(); |
587 | mData->emails.append( email ); | 587 | mData->emails.append( email ); |
588 | } | 588 | } |
589 | void Addressee::makePhoneNumbersOLcompatible() | ||
590 | { | ||
591 | KABC::PhoneNumber::List::Iterator phoneIter; | ||
592 | KABC::PhoneNumber::List::Iterator phoneIter2; | ||
593 | for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); | ||
594 | ++phoneIter ) { | ||
595 | ( *phoneIter ).makeCompat(); | ||
596 | } | ||
597 | int hasHome = hasPhoneNumberType( PhoneNumber::Home | PhoneNumber::Pref ); | ||
598 | int hasHome2 = hasPhoneNumberType( PhoneNumber::Home ); | ||
599 | int hasWork = hasPhoneNumberType( PhoneNumber::Work | PhoneNumber::Pref ); | ||
600 | int hasWork2 = hasPhoneNumberType( PhoneNumber::Work ); | ||
601 | int hasCell = hasPhoneNumberType( PhoneNumber::Cell ); | ||
602 | int hasCell2 = hasPhoneNumberType( PhoneNumber::Car ); | ||
603 | for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); | ||
604 | ++phoneIter ) { | ||
605 | if ( (*phoneIter).type() == PhoneNumber::Home && ! hasHome ) { | ||
606 | (*phoneIter).setType( PhoneNumber::Home | PhoneNumber::Pref ); | ||
607 | ++hasHome; | ||
608 | if ( hasHome2 ) --hasHome2; | ||
609 | } else if ( ( (*phoneIter).type() == PhoneNumber::Home | PhoneNumber::Pref) && hasHome>1 && !hasHome2 ) { | ||
610 | (*phoneIter).setType( PhoneNumber::Home ); | ||
611 | --hasHome; | ||
612 | ++hasHome2; | ||
613 | } else if ( (*phoneIter).type() == PhoneNumber::Work && ! hasWork ) { | ||
614 | (*phoneIter).setType( PhoneNumber::Work | PhoneNumber::Pref ); | ||
615 | ++hasWork; | ||
616 | if ( hasWork2 ) --hasWork2; | ||
617 | } else if ( ( (*phoneIter).type() == PhoneNumber::Work | PhoneNumber::Pref) && hasWork > 1 && ! hasWork2 ) { | ||
618 | (*phoneIter).setType( PhoneNumber::Work ); | ||
619 | --hasWork; | ||
620 | ++hasWork2; | ||
621 | } else if ( (*phoneIter).type() == PhoneNumber::Cell && hasCell > 1 && !hasCell2) { | ||
622 | (*phoneIter).setType( PhoneNumber::Car ); | ||
623 | ++hasCell2; | ||
624 | --hasCell; | ||
625 | } else if ( (*phoneIter).type() == PhoneNumber::Car && hasCell2 > 1 && !hasCell) { | ||
626 | (*phoneIter).setType( PhoneNumber::Cell ); | ||
627 | ++hasCell; | ||
628 | --hasCell2; | ||
629 | } else{ | ||
630 | phoneIter2 = phoneIter; | ||
631 | ++phoneIter2; | ||
632 | for ( ; phoneIter2 != mData->phoneNumbers.end(); | ||
633 | ++phoneIter2 ) { | ||
634 | if ( (*phoneIter2).type() == (*phoneIter).type() ) { | ||
635 | (*phoneIter2).setType( PhoneNumber::Voice ); | ||
589 | 636 | ||
637 | } | ||
638 | } | ||
639 | } | ||
640 | } | ||
641 | } | ||
590 | void Addressee::simplifyPhoneNumbers() | 642 | void Addressee::simplifyPhoneNumbers() |
591 | { | 643 | { |
592 | int max = 4; | 644 | int max = 4; |
593 | int inList = mData->phoneNumbers.count(); | 645 | int inList = mData->phoneNumbers.count(); |
@@ -996,9 +1048,9 @@ QString Addressee::homePhoneLabel() | |||
996 | 1048 | ||
997 | 1049 | ||
998 | QString Addressee::businessPhoneLabel() | 1050 | QString Addressee::businessPhoneLabel() |
999 | { | 1051 | { |
1000 | return i18n("Business Phone"); | 1052 | return i18n("Work Phone"); |
1001 | } | 1053 | } |
1002 | 1054 | ||
1003 | 1055 | ||
1004 | QString Addressee::mobilePhoneLabel() | 1056 | QString Addressee::mobilePhoneLabel() |
@@ -1006,31 +1058,31 @@ QString Addressee::mobilePhoneLabel() | |||
1006 | return i18n("Mobile Phone"); | 1058 | return i18n("Mobile Phone"); |
1007 | } | 1059 | } |
1008 | QString Addressee::mobileWorkPhoneLabel() | 1060 | QString Addressee::mobileWorkPhoneLabel() |
1009 | { | 1061 | { |
1010 | return i18n("Mobile (work)"); | 1062 | return i18n("Mobile2 (work)"); |
1011 | } | 1063 | } |
1012 | QString Addressee::mobileHomePhoneLabel() | 1064 | QString Addressee::mobileHomePhoneLabel() |
1013 | { | 1065 | { |
1014 | return i18n("Mobile (home)"); | 1066 | return i18n("Mobile"); |
1015 | } | 1067 | } |
1016 | 1068 | ||
1017 | 1069 | ||
1018 | QString Addressee::homeFaxLabel() | 1070 | QString Addressee::homeFaxLabel() |
1019 | { | 1071 | { |
1020 | return i18n("Home Fax"); | 1072 | return i18n("Fax (Home)"); |
1021 | } | 1073 | } |
1022 | 1074 | ||
1023 | 1075 | ||
1024 | QString Addressee::businessFaxLabel() | 1076 | QString Addressee::businessFaxLabel() |
1025 | { | 1077 | { |
1026 | return i18n("Business Fax"); | 1078 | return i18n("Fax (Work)"); |
1027 | } | 1079 | } |
1028 | 1080 | ||
1029 | 1081 | ||
1030 | QString Addressee::carPhoneLabel() | 1082 | QString Addressee::carPhoneLabel() |
1031 | { | 1083 | { |
1032 | return i18n("Car Phone"); | 1084 | return i18n("Mobile2 (work)"); |
1033 | } | 1085 | } |
1034 | 1086 | ||
1035 | 1087 | ||
1036 | QString Addressee::isdnLabel() | 1088 | QString Addressee::isdnLabel() |
@@ -1651,8 +1703,18 @@ PhoneNumber::List Addressee::phoneNumbers() const | |||
1651 | { | 1703 | { |
1652 | return mData->phoneNumbers; | 1704 | return mData->phoneNumbers; |
1653 | } | 1705 | } |
1654 | 1706 | ||
1707 | int Addressee::hasPhoneNumberType( int type ) | ||
1708 | { | ||
1709 | int retval = 0; | ||
1710 | PhoneNumber::List::ConstIterator it; | ||
1711 | for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { | ||
1712 | if ( (*it).type() == type ) | ||
1713 | ++retval; | ||
1714 | } | ||
1715 | return retval; | ||
1716 | } | ||
1655 | PhoneNumber::List Addressee::phoneNumbers( int type ) const | 1717 | PhoneNumber::List Addressee::phoneNumbers( int type ) const |
1656 | { | 1718 | { |
1657 | PhoneNumber::List list; | 1719 | PhoneNumber::List list; |
1658 | 1720 | ||
diff --git a/kabc/addressee.h b/kabc/addressee.h index d1c07cb..0c488eb 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h | |||
@@ -121,8 +121,10 @@ class Addressee | |||
121 | void simplifyEmails(); | 121 | void simplifyEmails(); |
122 | void simplifyAddresses(); | 122 | void simplifyAddresses(); |
123 | void simplifyPhoneNumbers(); | 123 | void simplifyPhoneNumbers(); |
124 | void simplifyPhoneNumberTypes(); | 124 | void simplifyPhoneNumberTypes(); |
125 | void makePhoneNumbersOLcompatible(); | ||
126 | int hasPhoneNumberType( int type ); | ||
125 | bool removeVoice(); | 127 | bool removeVoice(); |
126 | bool containsAdr(const Addressee& addr ); | 128 | bool containsAdr(const Addressee& addr ); |
127 | 129 | ||
128 | /** | 130 | /** |
diff --git a/kabc/field.cpp b/kabc/field.cpp index fd51026..20885de 100644 --- a/kabc/field.cpp +++ b/kabc/field.cpp | |||
@@ -288,17 +288,17 @@ QString Field::value( const KABC::Addressee &a ) | |||
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(); |
@@ -308,9 +308,9 @@ QString Field::value( const KABC::Addressee &a ) | |||
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(); |
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp index 4c6231d..0d46ba7 100644 --- a/kabc/phonenumber.cpp +++ b/kabc/phonenumber.cpp | |||
@@ -64,9 +64,64 @@ bool PhoneNumber::operator==( const PhoneNumber &p ) const | |||
64 | bool PhoneNumber::operator!=( const PhoneNumber &p ) const | 64 | bool PhoneNumber::operator!=( const PhoneNumber &p ) const |
65 | { | 65 | { |
66 | return !( p == *this ); | 66 | return !( p == *this ); |
67 | } | 67 | } |
68 | void PhoneNumber::makeCompat() | ||
69 | { | ||
70 | mType = getCompatType( mType ); | ||
71 | } | ||
72 | int PhoneNumber::getCompatType( int type ) | ||
73 | { | ||
74 | |||
75 | if ((type & Cell) == Cell) { | ||
76 | if ((type & Work) == Work) | ||
77 | return Car; | ||
78 | return Cell; | ||
79 | } | ||
80 | if ((type & Home) == Home) { | ||
81 | if ((type & Pref) == Pref) | ||
82 | return (Home | Pref); | ||
83 | if ((type & Fax) == Fax) | ||
84 | return (Home | Fax); | ||
85 | return (Home); | ||
86 | } | ||
87 | if ((type & Work) == Work) { | ||
88 | if ((type & Pref) == Pref) | ||
89 | return (Work| Pref); | ||
90 | if ((type & Fax) == Fax) | ||
91 | return (Fax |Work); | ||
92 | if ((type & Msg) == Msg) { | ||
93 | if ((type & Voice) == Voice) | ||
94 | return ( Msg | Voice |Work); | ||
95 | return ( Msg | Work); | ||
96 | } | ||
97 | return Work; | ||
98 | } | ||
99 | if ((type & Pcs) == Pcs) { | ||
100 | if ((type & Pref) == Pref) | ||
101 | return Pcs | Pref; | ||
102 | return Pcs; | ||
103 | } | ||
104 | if ((type & Car) == Car) | ||
105 | return Car; | ||
106 | if ((type & Pager) == Pager) | ||
107 | return Pager; | ||
108 | if ((type & Isdn) == Isdn) | ||
109 | return Isdn; | ||
110 | if ((type & Video) == Video) | ||
111 | return Video; | ||
112 | |||
113 | if ((type & Msg) == Msg) | ||
114 | return Msg; | ||
115 | if ((type & Fax) == Fax) | ||
116 | return Fax; | ||
117 | |||
118 | if ((type & Pref) == Pref) | ||
119 | return Pref; | ||
68 | 120 | ||
121 | return Voice; | ||
122 | |||
123 | } | ||
69 | bool PhoneNumber::simplifyNumber() | 124 | bool PhoneNumber::simplifyNumber() |
70 | { | 125 | { |
71 | QString Number; | 126 | QString Number; |
72 | int i; | 127 | int i; |
@@ -162,9 +217,9 @@ PhoneNumber::TypeList PhoneNumber::typeList() | |||
162 | { | 217 | { |
163 | TypeList list; | 218 | TypeList list; |
164 | 219 | ||
165 | list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video | 220 | list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video |
166 | << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip; | 221 | << Bbs << Modem << Car << Isdn << Pcs << Pager; |
167 | 222 | ||
168 | return list; | 223 | return list; |
169 | } | 224 | } |
170 | 225 | ||
@@ -174,10 +229,62 @@ QString PhoneNumber::label( int type ) | |||
174 | } | 229 | } |
175 | 230 | ||
176 | QString PhoneNumber::typeLabel( int type ) | 231 | QString PhoneNumber::typeLabel( int type ) |
177 | { | 232 | { |
178 | QString typeString; | 233 | if ((type & Cell) == Cell) |
234 | return i18n("Mobile"); | ||
235 | if ((type & Home) == Home) { | ||
236 | if ((type & Pref) == Pref) | ||
237 | return i18n("Home"); | ||
238 | if ((type & Fax) == Fax) | ||
239 | return i18n("Fax (Home)"); | ||
240 | return i18n("Home2"); | ||
241 | } | ||
179 | 242 | ||
243 | if ((type & Work) == Work) { | ||
244 | if ((type & Pref) == Pref) | ||
245 | return i18n("Work"); | ||
246 | if ((type & Fax) == Fax) | ||
247 | return i18n("Fax (Work)"); | ||
248 | if ((type & Msg) == Msg) { | ||
249 | if ((type & Voice) == Voice) | ||
250 | return i18n("Assistent"); | ||
251 | return i18n("Company"); | ||
252 | } | ||
253 | return i18n("Work2"); | ||
254 | } | ||
255 | if ((type & Pcs) == Pcs) { | ||
256 | if ((type & Pref) == Pref) | ||
257 | return i18n("SIP"); | ||
258 | return i18n("VoIP"); | ||
259 | } | ||
260 | if ((type & Car) == Car) | ||
261 | return i18n("Mobile2 (Work)"); | ||
262 | if ((type & Pager) == Pager) | ||
263 | return i18n("Pager"); | ||
264 | if ((type & Isdn) == Isdn) | ||
265 | return i18n("ISDN"); | ||
266 | if ((type & Video) == Video) | ||
267 | return i18n("Video"); | ||
268 | |||
269 | if ((type & Msg) == Msg) | ||
270 | return i18n("Callback"); | ||
271 | if ((type & Fax) == Fax) | ||
272 | return i18n("Fax (Other)"); | ||
273 | |||
274 | if ((type & Pref) == Pref) | ||
275 | return i18n("Primary"); | ||
276 | |||
277 | |||
278 | return i18n("Other"); | ||
279 | |||
280 | |||
281 | #if 0 | ||
282 | |||
283 | |||
284 | |||
285 | QString typeString; | ||
286 | |||
180 | 287 | ||
181 | if ((type & Cell) == Cell) | 288 | if ((type & Cell) == Cell) |
182 | typeString += i18n("Mobile") +" "; | 289 | typeString += i18n("Mobile") +" "; |
183 | if ((type & Home) == Home) | 290 | if ((type & Home) == Home) |
@@ -219,8 +326,9 @@ QString PhoneNumber::typeLabel( int type ) | |||
219 | return i18n("Other"); | 326 | return i18n("Other"); |
220 | } | 327 | } |
221 | 328 | ||
222 | return typeString.stripWhiteSpace(); | 329 | return typeString.stripWhiteSpace(); |
330 | #endif | ||
223 | } | 331 | } |
224 | 332 | ||
225 | QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) | 333 | QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) |
226 | { | 334 | { |
diff --git a/kabc/phonenumber.h b/kabc/phonenumber.h index 2d4d3e0..b9d6a17 100644 --- a/kabc/phonenumber.h +++ b/kabc/phonenumber.h | |||
@@ -63,13 +63,12 @@ class PhoneNumber | |||
63 | @li @p Car - Car phone | 63 | @li @p Car - Car phone |
64 | @li @p Isdn - ISDN connection | 64 | @li @p Isdn - ISDN connection |
65 | @li @p Pcs - Personal Communication Service | 65 | @li @p Pcs - Personal Communication Service |
66 | @li @p Pager - Pager | 66 | @li @p Pager - Pager |
67 | @li @p SIP - VoIP | ||
68 | */ | 67 | */ |
69 | enum Types { Home = 1, Work = 2, Msg = 4, Pref = 8, Voice = 16, Fax = 32, | 68 | enum Types { Home = 1, Work = 2, Msg = 4, Pref = 8, Voice = 16, Fax = 32, |
70 | Cell = 64, Video = 128, Bbs = 256, Modem = 512, Car = 1024, | 69 | Cell = 64, Video = 128, Bbs = 256, Modem = 512, Car = 1024, |
71 | Isdn = 2048, Pcs = 4096, Pager = 8192, Sip = 16384 }; | 70 | Isdn = 2048, Pcs = 4096, Pager = 8192 }; |
72 | 71 | ||
73 | /** | 72 | /** |
74 | Create an empty phone number object. | 73 | Create an empty phone number object. |
75 | */ | 74 | */ |
@@ -150,8 +149,10 @@ class PhoneNumber | |||
150 | */ | 149 | */ |
151 | static QString label( int type ); | 150 | static QString label( int type ); |
152 | bool simplifyNumber(); | 151 | bool simplifyNumber(); |
153 | void simplifyType(); | 152 | void simplifyType(); |
153 | void makeCompat(); | ||
154 | int getCompatType( int type ); | ||
154 | 155 | ||
155 | private: | 156 | private: |
156 | void init(); | 157 | void init(); |
157 | 158 | ||
diff --git a/kabc/vcard21parser.cpp b/kabc/vcard21parser.cpp index 277de22..60d02b8 100644 --- a/kabc/vcard21parser.cpp +++ b/kabc/vcard21parser.cpp | |||
@@ -169,10 +169,9 @@ bool VCardLineX::isValid() const | |||
169 | qualifiers.contains(VCARD_TEL_MODEM) || | 169 | qualifiers.contains(VCARD_TEL_MODEM) || |
170 | qualifiers.contains(VCARD_TEL_CAR) || | 170 | qualifiers.contains(VCARD_TEL_CAR) || |
171 | qualifiers.contains(VCARD_TEL_ISDN) || | 171 | qualifiers.contains(VCARD_TEL_ISDN) || |
172 | qualifiers.contains(VCARD_TEL_VIDEO) || | 172 | qualifiers.contains(VCARD_TEL_VIDEO) || |
173 | qualifiers.contains(VCARD_TEL_PCS) || | 173 | qualifiers.contains(VCARD_TEL_PCS) |
174 | qualifiers.contains(VCARD_TEL_SIP) | ||
175 | ) ) | 174 | ) ) |
176 | return true; | 175 | return true; |
177 | if ( name == VCARD_TZ ) | 176 | if ( name == VCARD_TZ ) |
178 | return true; | 177 | return true; |
@@ -278,11 +277,11 @@ KABC::Addressee VCard21Parser::readFromString( const QString &data) | |||
278 | type |= PhoneNumber::Home; | 277 | type |= PhoneNumber::Home; |
279 | if ( (*i).qualifiers.contains( VCARD_TEL_WORK ) ) | 278 | if ( (*i).qualifiers.contains( VCARD_TEL_WORK ) ) |
280 | type |= PhoneNumber::Work; | 279 | type |= PhoneNumber::Work; |
281 | if ( (*i).qualifiers.contains( VCARD_TEL_PREF ) ) | 280 | if ( (*i).qualifiers.contains( VCARD_TEL_PREF ) ) |
282 | type |= PhoneNumber::Pref; | 281 | type |= PhoneNumber::Pref; |
283 | // if ( (*i).qualifiers.contains( VCARD_TEL_VOICE ) ) | 282 | if ( (*i).qualifiers.contains( VCARD_TEL_VOICE ) ) |
284 | // type |= PhoneNumber::Voice; | 283 | type |= PhoneNumber::Voice; |
285 | if ( (*i).qualifiers.contains( VCARD_TEL_FAX ) ) | 284 | if ( (*i).qualifiers.contains( VCARD_TEL_FAX ) ) |
286 | type |= PhoneNumber::Fax; | 285 | type |= PhoneNumber::Fax; |
287 | if ( (*i).qualifiers.contains( VCARD_TEL_MSG ) ) | 286 | if ( (*i).qualifiers.contains( VCARD_TEL_MSG ) ) |
288 | type |= PhoneNumber::Msg; | 287 | type |= PhoneNumber::Msg; |
@@ -301,15 +300,14 @@ KABC::Addressee VCard21Parser::readFromString( const QString &data) | |||
301 | if ( (*i).qualifiers.contains( VCARD_TEL_VIDEO ) ) | 300 | if ( (*i).qualifiers.contains( VCARD_TEL_VIDEO ) ) |
302 | type |= PhoneNumber::Video; | 301 | type |= PhoneNumber::Video; |
303 | if ( (*i).qualifiers.contains( VCARD_TEL_PCS ) ) | 302 | if ( (*i).qualifiers.contains( VCARD_TEL_PCS ) ) |
304 | type |= PhoneNumber::Pcs; | 303 | type |= PhoneNumber::Pcs; |
305 | if ( (*i).qualifiers.contains( VCARD_TEL_SIP ) ) | 304 | |
306 | type |= PhoneNumber::Sip; | ||
307 | } | 305 | } |
308 | addressee.insertPhoneNumber( PhoneNumber( (*i).parameters[ 0 ], type ) ); | 306 | addressee.insertPhoneNumber( PhoneNumber( (*i).parameters[ 0 ], type ) ); |
309 | } | 307 | } |
310 | } | 308 | } |
311 | 309 | addressee.makePhoneNumbersOLcompatible(); | |
312 | //set the addressee's addresses | 310 | //set the addressee's addresses |
313 | for ( QValueListIterator<VCardLineX> i = mVCard->_vcdata->begin();i != mVCard->_vcdata->end(); ++i ) { | 311 | for ( QValueListIterator<VCardLineX> i = mVCard->_vcdata->begin();i != mVCard->_vcdata->end(); ++i ) { |
314 | if ( (*i).name == VCARD_ADR ) { | 312 | if ( (*i).name == VCARD_ADR ) { |
315 | int type = 0; | 313 | int type = 0; |
diff --git a/kabc/vcardformatimpl.cpp b/kabc/vcardformatimpl.cpp index ec5ed80..26fd4f0 100644 --- a/kabc/vcardformatimpl.cpp +++ b/kabc/vcardformatimpl.cpp | |||
@@ -280,9 +280,9 @@ bool VCardFormatImpl::loadAddressee( Addressee& addressee, VCard *v ) | |||
280 | address.setLabel( QString::fromUtf8( cl->value()->asString() ) ); | 280 | address.setLabel( QString::fromUtf8( cl->value()->asString() ) ); |
281 | addressee.insertAddress( address ); | 281 | addressee.insertAddress( address ); |
282 | } | 282 | } |
283 | } | 283 | } |
284 | 284 | addressee.makePhoneNumbersOLcompatible(); | |
285 | return true; | 285 | return true; |
286 | } | 286 | } |
287 | 287 | ||
288 | void VCardFormatImpl::saveAddressee( const Addressee &addressee, VCard *v, bool intern ) | 288 | void VCardFormatImpl::saveAddressee( const Addressee &addressee, VCard *v, bool intern ) |
@@ -594,9 +594,8 @@ void VCardFormatImpl::addTelephoneValue( VCard *v, const PhoneNumber &p ) | |||
594 | if( p.type() & PhoneNumber::Car ) params.append( new Param( "TYPE", "car" ) ); | 594 | if( p.type() & PhoneNumber::Car ) params.append( new Param( "TYPE", "car" ) ); |
595 | if( p.type() & PhoneNumber::Isdn ) params.append( new Param( "TYPE", "isdn" ) ); | 595 | if( p.type() & PhoneNumber::Isdn ) params.append( new Param( "TYPE", "isdn" ) ); |
596 | if( p.type() & PhoneNumber::Pcs ) params.append( new Param( "TYPE", "pcs" ) ); | 596 | if( p.type() & PhoneNumber::Pcs ) params.append( new Param( "TYPE", "pcs" ) ); |
597 | if( p.type() & PhoneNumber::Pager ) params.append( new Param( "TYPE", "pager" ) ); | 597 | if( p.type() & PhoneNumber::Pager ) params.append( new Param( "TYPE", "pager" ) ); |
598 | if( p.type() & PhoneNumber::Sip ) params.append( new Param( "TYPE", "sip" ) ); | ||
599 | cl.setParamList( params ); | 598 | cl.setParamList( params ); |
600 | 599 | ||
601 | v->add(cl); | 600 | v->add(cl); |
602 | } | 601 | } |
@@ -627,9 +626,8 @@ PhoneNumber VCardFormatImpl::readTelephoneValue( ContentLine *cl ) | |||
627 | else if ( tmpStr == "car" ) type |= PhoneNumber::Car; | 626 | else if ( tmpStr == "car" ) type |= PhoneNumber::Car; |
628 | else if ( tmpStr == "isdn" ) type |= PhoneNumber::Isdn; | 627 | else if ( tmpStr == "isdn" ) type |= PhoneNumber::Isdn; |
629 | else if ( tmpStr == "pcs" ) type |= PhoneNumber::Pcs; | 628 | else if ( tmpStr == "pcs" ) type |= PhoneNumber::Pcs; |
630 | else if ( tmpStr == "pager" ) type |= PhoneNumber::Pager; | 629 | else if ( tmpStr == "pager" ) type |= PhoneNumber::Pager; |
631 | else if ( tmpStr == "sip" ) type |= PhoneNumber::Sip; | ||
632 | } | 630 | } |
633 | } | 631 | } |
634 | p.setType( type ); | 632 | p.setType( type ); |
635 | 633 | ||
diff --git a/kabc/vcardparser/vcardtool.cpp b/kabc/vcardparser/vcardtool.cpp index c3d92b6..204326e 100644 --- a/kabc/vcardparser/vcardtool.cpp +++ b/kabc/vcardparser/vcardtool.cpp | |||
@@ -575,9 +575,9 @@ Addressee::List VCardTool::parseVCards( const QString& vcard ) | |||
575 | addr.insertCustom( key.left( dash ), key.mid( dash + 1 ), (*lineIt).valueString() ); | 575 | addr.insertCustom( key.left( dash ), key.mid( dash + 1 ), (*lineIt).valueString() ); |
576 | } | 576 | } |
577 | } | 577 | } |
578 | } | 578 | } |
579 | 579 | addr.makePhoneNumbersOLcompatible(); | |
580 | addrList.append( addr ); | 580 | addrList.append( addr ); |
581 | } | 581 | } |
582 | 582 | ||
583 | return addrList; | 583 | return addrList; |