author | zautrix <zautrix> | 2005-10-28 08:57:25 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-10-28 08:57:25 (UTC) |
commit | f284eafbe4274cb97ec25f375544b924ae04ac09 (patch) (side-by-side diff) | |
tree | bc754eac9882740463a447099944cbb590bad7f6 /kabc | |
parent | d934f3fe2a62f6a696992335124c4434cd77d990 (diff) | |
download | kdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.zip kdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.tar.gz kdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.tar.bz2 |
cimmit
-rw-r--r-- | kabc/phonenumber.cpp | 26 | ||||
-rw-r--r-- | kabc/phonenumber.h | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp index 0d46ba7..eee25a5 100644 --- a/kabc/phonenumber.cpp +++ b/kabc/phonenumber.cpp @@ -177,96 +177,122 @@ void PhoneNumber::setNumber( const QString &number ) QString PhoneNumber::number() const { return mNumber; } void PhoneNumber::setType( int type ) { mType = 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; } +PhoneNumber::TypeList PhoneNumber::supportedTypeList() +{ + static TypeList list; + if ( list.count() == 0 ) + list << (Home| Pref) << (Work| Pref) << Cell << Home << Work << Car << (Work| Msg | Voice) << (Work| Msg) << (Home | Fax) << (Work| Fax) << Fax<< (Pcs|Pref)<< Pcs<< Pager << Isdn << Video << Msg << Pref << Voice; + return list; +} +QStringList PhoneNumber::supportedTypeListNames() +{ + static QStringList list; + if ( list.count() == 0 ) + list << i18n("Home") << i18n("Work") << i18n("Mobile") << i18n("Home2")<< i18n("Work2") << i18n("Mobile2 (Work)") << i18n("Assistent") << i18n("Company") << i18n("Fax (Home)") << i18n("Fax (Work)") << i18n("Fax (Other)") << i18n("SIP") << i18n("VoIP") << i18n("Pager") << i18n("ISDN") << i18n("Video") << i18n("Callback") << i18n("Primary")<< i18n("Other"); + return list; +} + +int PhoneNumber::typeListIndex4Type(int type ) +{ + TypeList list = supportedTypeList(); + int i = 0; + while ( i < list.count() ) { + if ( list [i] == type ) + return i; + ++i; + } + return list.count()-1; +} QString PhoneNumber::label( int type ) { return typeLabel( 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)"); diff --git a/kabc/phonenumber.h b/kabc/phonenumber.h index b9d6a17..feeba6c 100644 --- a/kabc/phonenumber.h +++ b/kabc/phonenumber.h @@ -103,68 +103,71 @@ class PhoneNumber QString id() const; /** Sets the number. */ void setNumber( const QString & ); /** Returns the number. */ QString number() const; /** Sets the type. Multiple types can be specified by combining them by a logical or. */ void setType( int ); /** Returns the type. Can be a multiple types combined by a logical or. */ int type() const; /** Returns a translated string of all types the address has. */ QString typeLabel() const; /** Returns the translated label for phone number depending on its type. */ QString label() const; /** Returns a list of all available types */ static TypeList typeList(); /** Returns the translated label for phone number type. */ static QString typeLabel( int type ); /** Returns the translated label for phone number type. @obsolete */ static QString label( int type ); + static TypeList supportedTypeList(); + static QStringList supportedTypeListNames(); + static int typeListIndex4Type(int type ); bool simplifyNumber(); void simplifyType(); void makeCompat(); int getCompatType( int type ); private: void init(); QString mId; int mType; QString mNumber; }; QDataStream &operator<<( QDataStream &, const PhoneNumber & ); QDataStream &operator>>( QDataStream &, PhoneNumber & ); } #endif |