summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2005-10-28 08:57:25 (UTC)
committer zautrix <zautrix>2005-10-28 08:57:25 (UTC)
commitf284eafbe4274cb97ec25f375544b924ae04ac09 (patch) (side-by-side diff)
treebc754eac9882740463a447099944cbb590bad7f6 /kabc
parentd934f3fe2a62f6a696992335124c4434cd77d990 (diff)
downloadkdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.zip
kdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.tar.gz
kdepimpi-f284eafbe4274cb97ec25f375544b924ae04ac09.tar.bz2
cimmit
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/phonenumber.cpp26
-rw-r--r--kabc/phonenumber.h3
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