-rw-r--r-- | kabc/phonenumber.cpp | 107 |
1 files changed, 47 insertions, 60 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp index 04b1168..3f641d1 100644 --- a/kabc/phonenumber.cpp +++ b/kabc/phonenumber.cpp @@ -92,122 +92,109 @@ void PhoneNumber::setType( int type ) } int PhoneNumber::type() const { return mType; } QString PhoneNumber::typeLabel() const { QString label; bool first = true; TypeList list = typeList(); TypeList::Iterator it; for ( it = list.begin(); it != list.end(); ++it ) { if ( ( type() & (*it) ) && ( (*it) != Pref ) ) { label.append( ( first ? "" : "/" ) + typeLabel( *it ) ); if ( first ) first = false; } } return label; } QString PhoneNumber::label() const { return typeLabel( type() ); } PhoneNumber::TypeList PhoneNumber::typeList() { TypeList list; list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video << Bbs << Modem << Car << Isdn << Pcs << Pager; return list; } QString PhoneNumber::label( int type ) { return typeLabel( type ); } QString PhoneNumber::typeLabel( int type ) { - switch ( type ) { - case Home: - return i18n("Home phone", "Home"); - break; - case Work: - return i18n("Work phone", "Work"); - break; - case Msg: - return i18n("Messenger"); - break; - case Pref: - return i18n("Preferred Number"); - break; - case Voice: - return i18n("Voice"); - break; - case Fax: - return i18n("Fax"); - break; - case Cell: - return i18n("Mobile Phone" ); - break; - case Cell | Home: - return i18n("Home Mobile" ); - break; - case Cell | Work: - return i18n("Home Mobile" ); - break; - case Video: - return i18n("Video"); - break; - case Bbs: - return i18n("Mailbox"); - break; - case Modem: - return i18n("Modem"); - break; - case Car: - return i18n("Car Phone", "Car" ); - break; - case Isdn: - return i18n("ISDN"); - break; - case Pcs: - return i18n("PCS"); - break; - case Pager: - return i18n("Pager"); - break; - case Work | Pager: - return i18n("Work Pager"); - break; - case Home | Fax: - return i18n("Home Fax"); - break; - case Work | Fax: - return i18n("Work Fax"); - break; - default: + QString typeString; + + if ((type & Home) == Home) + typeString += i18n("Home"); + else if ((type & Work) == Work) + typeString += i18n("Work"); + + if (!typeString.isEmpty()) + typeString += " "; + + if ((type & Cell) == Cell) + typeString += i18n("Mobile"); + else if ((type & Fax) == Fax) + typeString += i18n("Fax"); + else if ((type & Msg) == Msg) + typeString += i18n("Messenger"); + else if ((type & Voice) == Voice) { +// add nothing in case of the Voice flag +// typeString += i18n("Voice"); + } + else if ((type & Video) == Video) + typeString += i18n("Video"); + else if ((type & Bbs) == Bbs) + typeString += i18n("Mailbox"); + else if ((type & Modem) == Modem) + typeString += i18n("Modem"); + else if ((type & Car) == Car) + typeString += i18n("Car"); + else if ((type & Isdn) == Isdn) + typeString += i18n("ISDN"); + else if ((type & Pcs) == Pcs) + typeString += i18n("PCS"); + else if ((type & Pager) == Pager) + typeString += i18n("Pager"); + + // add the prefered flag + if (!typeString.isEmpty()) + typeString += " "; + + if ((type & Pref) == Pref) + typeString += i18n("(Preferred)"); + + //if we still have no match, return "other" + if (typeString.isEmpty()) return i18n("Other"); - } + + + return typeString; } QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) { return s << phone.mId << phone.mType << phone.mNumber; } QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone ) { s >> phone.mId >> phone.mType >> phone.mNumber; return s; } |