phonenumber.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <kapplication.h>
00022
#include <klocale.h>
00023
00024
#include "phonenumber.h"
00025
00026
using namespace KABC;
00027
00028 PhoneNumber::PhoneNumber() :
00029 mType( Home )
00030 {
00031 init();
00032 }
00033
00034 PhoneNumber::PhoneNumber(
const QString &number,
int type ) :
00035 mType( type ), mNumber( number )
00036 {
00037 init();
00038 }
00039
00040 PhoneNumber::~PhoneNumber()
00041 {
00042 }
00043
00044
void PhoneNumber::init()
00045 {
00046 mId = KApplication::randomString( 8 );
00047 }
00048
00049
bool PhoneNumber::operator==(
const PhoneNumber &p )
const
00050
{
00051
if ( mNumber != p.
mNumber )
return false;
00052
if ( mType != p.
mType )
return false;
00053
00054
return true;
00055 }
00056
00057
bool PhoneNumber::operator!=(
const PhoneNumber &p )
const
00058
{
00059
return !( p == *
this );
00060 }
00061
00062 void PhoneNumber::setId(
const QString &
id )
00063 {
00064 mId =
id;
00065 }
00066
00067 QString PhoneNumber::id()
const
00068
{
00069
return mId;
00070 }
00071
00072 void PhoneNumber::setNumber(
const QString &number )
00073 {
00074 mNumber = number;
00075 }
00076
00077 QString PhoneNumber::number()
const
00078
{
00079
return mNumber;
00080 }
00081
00082 void PhoneNumber::setType(
int type )
00083 {
00084 mType = type;
00085 }
00086
00087 int PhoneNumber::type()
const
00088
{
00089
return mType;
00090 }
00091
00092 QString PhoneNumber::typeLabel()
const
00093
{
00094
QString label;
00095
bool first =
true;
00096
00097
TypeList list =
typeList();
00098
00099 TypeList::Iterator it;
00100
for ( it = list.begin(); it != list.end(); ++it ) {
00101
if ( (
type() & (*it) ) && ( (*it) != Pref ) ) {
00102 label.append( ( first ?
"" :
"/" ) +
typeLabel( *it ) );
00103
if ( first )
00104 first =
false;
00105 }
00106 }
00107
00108
return label;
00109 }
00110
00111 QString PhoneNumber::label()
const
00112
{
00113
return typeLabel(
type() );
00114 }
00115
00116 PhoneNumber::TypeList PhoneNumber::typeList()
00117 {
00118
TypeList list;
00119
00120 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video
00121 << Bbs << Modem << Car << Isdn << Pcs << Pager;
00122
00123
return list;
00124 }
00125
00126 QString PhoneNumber::label(
int type )
00127 {
00128
return typeLabel( type );
00129 }
00130
00131 QString PhoneNumber::typeLabel(
int type )
00132 {
00133
if ( type & Pref )
00134
return i18n(
"Preferred phone",
"Preferred" );
00135
00136
switch ( type ) {
00137
case Home:
00138
return i18n(
"Home phone",
"Home");
00139
break;
00140
case Work:
00141
return i18n(
"Work phone",
"Work");
00142
break;
00143
case Msg:
00144
return i18n(
"Messenger");
00145
break;
00146
case Pref:
00147
return i18n(
"Preferred Number");
00148
break;
00149
case Voice:
00150
return i18n(
"Voice");
00151
break;
00152
case Fax:
00153
return i18n(
"Fax");
00154
break;
00155
case Cell:
00156
return i18n(
"Mobile Phone",
"Mobile" );
00157
break;
00158
case Video:
00159
return i18n(
"Video");
00160
break;
00161
case Bbs:
00162
return i18n(
"Mailbox");
00163
break;
00164
case Modem:
00165
return i18n(
"Modem");
00166
break;
00167
case Car:
00168
return i18n(
"Car Phone",
"Car" );
00169
break;
00170
case Isdn:
00171
return i18n(
"ISDN");
00172
break;
00173
case Pcs:
00174
return i18n(
"PCS");
00175
break;
00176
case Pager:
00177
return i18n(
"Pager");
00178
break;
00179
case Home | Fax:
00180
return i18n(
"Home Fax");
00181
break;
00182
case Work | Fax:
00183
return i18n(
"Work Fax");
00184
break;
00185
default:
00186
return i18n(
"Other");
00187 }
00188 }
00189
00190
QDataStream &KABC::operator<<(
QDataStream &s,
const PhoneNumber &phone )
00191 {
00192
return s << phone.
mId << phone.
mType << phone.
mNumber;
00193 }
00194
00195
QDataStream &KABC::operator>>(
QDataStream &s,
PhoneNumber &phone )
00196 {
00197 s >> phone.
mId >> phone.
mType >> phone.
mNumber;
00198
00199
return s;
00200 }
This file is part of the documentation for kabc Library Version 3.2.3.