summaryrefslogtreecommitdiffabout
path: root/kabc/phonenumber.cpp
Unidiff
Diffstat (limited to 'kabc/phonenumber.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/phonenumber.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index 4ad608d..7aeb2ee 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -1,200 +1,202 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include <kapplication.h> 28#include <kapplication.h>
29#include <klocale.h> 29#include <klocale.h>
30 30
31#include "phonenumber.h" 31#include "phonenumber.h"
32 32
33using namespace KABC; 33using namespace KABC;
34 34
35PhoneNumber::PhoneNumber() : 35PhoneNumber::PhoneNumber() :
36 mType( Home ) 36 mType( Home )
37{ 37{
38 init(); 38 init();
39} 39}
40 40
41PhoneNumber::PhoneNumber( const QString &number, int type ) : 41PhoneNumber::PhoneNumber( const QString &number, int type ) :
42 mType( type ), mNumber( number ) 42 mType( type ), mNumber( number )
43{ 43{
44 init(); 44 init();
45} 45}
46 46
47PhoneNumber::~PhoneNumber() 47PhoneNumber::~PhoneNumber()
48{ 48{
49} 49}
50 50
51void PhoneNumber::init() 51void PhoneNumber::init()
52{ 52{
53 mId = KApplication::randomString( 8 ); 53 mId = KApplication::randomString( 8 );
54} 54}
55 55
56bool PhoneNumber::operator==( const PhoneNumber &p ) const 56bool PhoneNumber::operator==( const PhoneNumber &p ) const
57{ 57{
58 if ( mNumber != p.mNumber ) return false; 58 if ( mNumber != p.mNumber ) return false;
59 if ( mType != p.mType ) return false; 59 if ( mType != p.mType ) return false;
60 60
61 return true; 61 return true;
62} 62}
63 63
64bool PhoneNumber::operator!=( const PhoneNumber &p ) const 64bool PhoneNumber::operator!=( const PhoneNumber &p ) const
65{ 65{
66 return !( p == *this ); 66 return !( p == *this );
67} 67}
68 68
69void PhoneNumber::setId( const QString &id ) 69void PhoneNumber::setId( const QString &id )
70{ 70{
71 mId = id; 71 mId = id;
72} 72}
73 73
74QString PhoneNumber::id() const 74QString PhoneNumber::id() const
75{ 75{
76 return mId; 76 return mId;
77} 77}
78 78
79void PhoneNumber::setNumber( const QString &number ) 79void PhoneNumber::setNumber( const QString &number )
80{ 80{
81 mNumber = number; 81 mNumber = number;
82} 82}
83 83
84QString PhoneNumber::number() const 84QString PhoneNumber::number() const
85{ 85{
86 return mNumber; 86 return mNumber;
87} 87}
88 88
89void PhoneNumber::setType( int type ) 89void PhoneNumber::setType( int type )
90{ 90{
91 mType = type; 91 mType = type;
92} 92}
93 93
94int PhoneNumber::type() const 94int PhoneNumber::type() const
95{ 95{
96 return mType; 96 return mType;
97} 97}
98 98
99QString PhoneNumber::typeLabel() const 99QString PhoneNumber::typeLabel() const
100{ 100{
101 QString label; 101 QString label;
102 bool first = true; 102 bool first = true;
103 103
104 TypeList list = typeList(); 104 TypeList list = typeList();
105 105
106 TypeList::Iterator it; 106 TypeList::Iterator it;
107 for ( it = list.begin(); it != list.end(); ++it ) { 107 for ( it = list.begin(); it != list.end(); ++it ) {
108 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) { 108 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) {
109 label.append( ( first ? "" : "/" ) + typeLabel( *it ) ); 109 label.append( ( first ? "" : "/" ) + typeLabel( *it ) );
110 if ( first ) 110 if ( first )
111 first = false; 111 first = false;
112 } 112 }
113 } 113 }
114 114
115 return label; 115 return label;
116} 116}
117 117
118QString PhoneNumber::label() const 118QString PhoneNumber::label() const
119{ 119{
120 return typeLabel( type() ); 120 return typeLabel( type() );
121} 121}
122 122
123PhoneNumber::TypeList PhoneNumber::typeList() 123PhoneNumber::TypeList PhoneNumber::typeList()
124{ 124{
125 TypeList list; 125 TypeList list;
126 126
127 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video 127 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video
128 << Bbs << Modem << Car << Isdn << Pcs << Pager; 128 << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip;
129 129
130 return list; 130 return list;
131} 131}
132 132
133QString PhoneNumber::label( int type ) 133QString PhoneNumber::label( int type )
134{ 134{
135 return typeLabel( type ); 135 return typeLabel( type );
136} 136}
137 137
138QString PhoneNumber::typeLabel( int type ) 138QString PhoneNumber::typeLabel( int type )
139{ 139{
140 QString typeString; 140 QString typeString;
141 141
142 if ((type & Home) == Home) 142 if ((type & Home) == Home)
143 typeString += i18n("Home"); 143 typeString += i18n("Home");
144 else if ((type & Work) == Work) 144 else if ((type & Work) == Work)
145 typeString += i18n("Work"); 145 typeString += i18n("Work");
146 146
147 if (!typeString.isEmpty()) 147 if (!typeString.isEmpty())
148 typeString += " "; 148 typeString += " ";
149 149
150 if ((type & Cell) == Cell) 150 if ((type & Cell) == Cell)
151 typeString += i18n("Mobile"); 151 typeString += i18n("Mobile");
152 else if ((type & Fax) == Fax) 152 else if ((type & Fax) == Fax)
153 typeString += i18n("Fax"); 153 typeString += i18n("Fax");
154 else if ((type & Msg) == Msg) 154 else if ((type & Msg) == Msg)
155 typeString += i18n("Messenger"); 155 typeString += i18n("Messenger");
156 else if ((type & Voice) == Voice) { 156 else if ((type & Voice) == Voice) {
157// add nothing in case of the Voice flag 157// add nothing in case of the Voice flag
158// typeString += i18n("Voice"); 158// typeString += i18n("Voice");
159 } 159 }
160 else if ((type & Video) == Video) 160 else if ((type & Video) == Video)
161 typeString += i18n("Video"); 161 typeString += i18n("Video");
162 else if ((type & Bbs) == Bbs) 162 else if ((type & Bbs) == Bbs)
163 typeString += i18n("Mailbox"); 163 typeString += i18n("Mailbox");
164 else if ((type & Modem) == Modem) 164 else if ((type & Modem) == Modem)
165 typeString += i18n("Modem"); 165 typeString += i18n("Modem");
166 else if ((type & Car) == Car) 166 else if ((type & Car) == Car)
167 typeString += i18n("Car"); 167 typeString += i18n("Car");
168 else if ((type & Isdn) == Isdn) 168 else if ((type & Isdn) == Isdn)
169 typeString += i18n("ISDN"); 169 typeString += i18n("ISDN");
170 else if ((type & Pcs) == Pcs) 170 else if ((type & Pcs) == Pcs)
171 typeString += i18n("PCS"); 171 typeString += i18n("PCS");
172 else if ((type & Pager) == Pager) 172 else if ((type & Pager) == Pager)
173 typeString += i18n("Pager"); 173 typeString += i18n("Pager");
174 else if ((type & Sip) == Sip)
175 typeString += i18n("SIP");
174 176
175 // add the prefered flag 177 // add the prefered flag
176 if (!typeString.isEmpty()) 178 if (!typeString.isEmpty())
177 typeString += " "; 179 typeString += " ";
178 180
179 if ((type & Pref) == Pref) 181 if ((type & Pref) == Pref)
180 typeString += i18n("(p)"); 182 typeString += i18n("(p)");
181 183
182 //if we still have no match, return "other" 184 //if we still have no match, return "other"
183 if (typeString.isEmpty()) 185 if (typeString.isEmpty())
184 return i18n("Other"); 186 return i18n("Other");
185 187
186 188
187 return typeString; 189 return typeString;
188} 190}
189 191
190QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) 192QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone )
191{ 193{
192 return s << phone.mId << phone.mType << phone.mNumber; 194 return s << phone.mId << phone.mType << phone.mNumber;
193} 195}
194 196
195QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone ) 197QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone )
196{ 198{
197 s >> phone.mId >> phone.mType >> phone.mNumber; 199 s >> phone.mId >> phone.mType >> phone.mNumber;
198 200
199 return s; 201 return s;
200} 202}