kabc Library API Documentation

phonenumber.cpp

00001 /* 00002 This file is part of libkabc. 00003 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 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 }
KDE Logo
This file is part of the documentation for kabc Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 10 18:56:01 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003