-rw-r--r-- | kabc/phonenumber.cpp | 110 |
1 files changed, 109 insertions, 1 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp index 4c6231d..0d46ba7 100644 --- a/kabc/phonenumber.cpp +++ b/kabc/phonenumber.cpp @@ -66,5 +66,60 @@ bool PhoneNumber::operator!=( const PhoneNumber &p ) const return !( p == *this ); } +void PhoneNumber::makeCompat() +{ + mType = getCompatType( mType ); +} +int PhoneNumber::getCompatType( int type ) +{ + if ((type & Cell) == Cell) { + if ((type & Work) == Work) + return Car; + return Cell; + } + if ((type & Home) == Home) { + if ((type & Pref) == Pref) + return (Home | Pref); + if ((type & Fax) == Fax) + return (Home | Fax); + return (Home); + } + if ((type & Work) == Work) { + if ((type & Pref) == Pref) + return (Work| Pref); + if ((type & Fax) == Fax) + return (Fax |Work); + if ((type & Msg) == Msg) { + if ((type & Voice) == Voice) + return ( Msg | Voice |Work); + return ( Msg | Work); + } + return Work; + } + if ((type & Pcs) == Pcs) { + if ((type & Pref) == Pref) + return Pcs | Pref; + return Pcs; + } + if ((type & Car) == Car) + return Car; + if ((type & Pager) == Pager) + return Pager; + if ((type & Isdn) == Isdn) + return Isdn; + if ((type & Video) == Video) + return Video; + + if ((type & Msg) == Msg) + return Msg; + if ((type & Fax) == Fax) + return Fax; + + if ((type & Pref) == Pref) + return Pref; + + return Voice; + +} bool PhoneNumber::simplifyNumber() { @@ -164,5 +219,5 @@ PhoneNumber::TypeList PhoneNumber::typeList() list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video - << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip; + << Bbs << Modem << Car << Isdn << Pcs << Pager; return list; @@ -176,4 +231,56 @@ QString PhoneNumber::label( int type ) QString PhoneNumber::typeLabel( int type ) { + if ((type & Cell) == Cell) + return i18n("Mobile"); + if ((type & Home) == Home) { + if ((type & Pref) == Pref) + return i18n("Home"); + if ((type & Fax) == Fax) + return i18n("Fax (Home)"); + return i18n("Home2"); + } + + if ((type & Work) == Work) { + if ((type & Pref) == Pref) + return i18n("Work"); + if ((type & Fax) == Fax) + return i18n("Fax (Work)"); + if ((type & Msg) == Msg) { + if ((type & Voice) == Voice) + return i18n("Assistent"); + return i18n("Company"); + } + return i18n("Work2"); + } + if ((type & Pcs) == Pcs) { + if ((type & Pref) == Pref) + return i18n("SIP"); + return i18n("VoIP"); + } + if ((type & Car) == Car) + return i18n("Mobile2 (Work)"); + if ((type & Pager) == Pager) + return i18n("Pager"); + if ((type & Isdn) == Isdn) + return i18n("ISDN"); + if ((type & Video) == Video) + return i18n("Video"); + + if ((type & Msg) == Msg) + return i18n("Callback"); + if ((type & Fax) == Fax) + return i18n("Fax (Other)"); + + if ((type & Pref) == Pref) + return i18n("Primary"); + + + return i18n("Other"); + + +#if 0 + + + QString typeString; @@ -221,4 +328,5 @@ QString PhoneNumber::typeLabel( int type ) return typeString.stripWhiteSpace(); +#endif } |