summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
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
@@ -161,128 +161,154 @@ bool PhoneNumber::contains( const PhoneNumber &p )
161 161
162void PhoneNumber::setId( const QString &id ) 162void PhoneNumber::setId( const QString &id )
163{ 163{
164 mId = id; 164 mId = id;
165} 165}
166 166
167QString PhoneNumber::id() const 167QString PhoneNumber::id() const
168{ 168{
169 return mId; 169 return mId;
170} 170}
171 171
172void PhoneNumber::setNumber( const QString &number ) 172void PhoneNumber::setNumber( const QString &number )
173{ 173{
174 mNumber = number; 174 mNumber = number;
175} 175}
176 176
177QString PhoneNumber::number() const 177QString PhoneNumber::number() const
178{ 178{
179 return mNumber; 179 return mNumber;
180} 180}
181 181
182void PhoneNumber::setType( int type ) 182void PhoneNumber::setType( int type )
183{ 183{
184 mType = type; 184 mType = type;
185} 185}
186 186
187int PhoneNumber::type() const 187int PhoneNumber::type() const
188{ 188{
189 return mType; 189 return mType;
190} 190}
191 191
192QString PhoneNumber::typeLabel() const 192QString PhoneNumber::typeLabel() const
193{ 193{
194 QString label; 194 QString label;
195 bool first = true; 195 bool first = true;
196 196
197 TypeList list = typeList(); 197 TypeList list = typeList();
198 198
199 TypeList::Iterator it; 199 TypeList::Iterator it;
200 for ( it = list.begin(); it != list.end(); ++it ) { 200 for ( it = list.begin(); it != list.end(); ++it ) {
201 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) { 201 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) {
202 label.append( ( first ? "" : "/" ) + typeLabel( *it ) ); 202 label.append( ( first ? "" : "/" ) + typeLabel( *it ) );
203 if ( first ) 203 if ( first )
204 first = false; 204 first = false;
205 } 205 }
206 } 206 }
207 207
208 return label; 208 return label;
209} 209}
210 210
211QString PhoneNumber::label() const 211QString PhoneNumber::label() const
212{ 212{
213 return typeLabel( type() ); 213 return typeLabel( type() );
214} 214}
215 215
216PhoneNumber::TypeList PhoneNumber::typeList() 216PhoneNumber::TypeList PhoneNumber::typeList()
217{ 217{
218 TypeList list; 218 TypeList list;
219 219
220 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video 220 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video
221 << Bbs << Modem << Car << Isdn << Pcs << Pager; 221 << Bbs << Modem << Car << Isdn << Pcs << Pager;
222 222
223 return list; 223 return list;
224} 224}
225PhoneNumber::TypeList PhoneNumber::supportedTypeList()
226{
227 static TypeList list;
228 if ( list.count() == 0 )
229 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;
230 return list;
231}
232QStringList PhoneNumber::supportedTypeListNames()
233{
234 static QStringList list;
235 if ( list.count() == 0 )
236 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");
237 return list;
238}
239
240int PhoneNumber::typeListIndex4Type(int type )
241{
242 TypeList list = supportedTypeList();
243 int i = 0;
244 while ( i < list.count() ) {
245 if ( list [i] == type )
246 return i;
247 ++i;
248 }
249 return list.count()-1;
250}
225 251
226QString PhoneNumber::label( int type ) 252QString PhoneNumber::label( int type )
227{ 253{
228 return typeLabel( type ); 254 return typeLabel( type );
229} 255}
230 256
231QString PhoneNumber::typeLabel( int type ) 257QString PhoneNumber::typeLabel( int type )
232{ 258{
233 if ((type & Cell) == Cell) 259 if ((type & Cell) == Cell)
234 return i18n("Mobile"); 260 return i18n("Mobile");
235 if ((type & Home) == Home) { 261 if ((type & Home) == Home) {
236 if ((type & Pref) == Pref) 262 if ((type & Pref) == Pref)
237 return i18n("Home"); 263 return i18n("Home");
238 if ((type & Fax) == Fax) 264 if ((type & Fax) == Fax)
239 return i18n("Fax (Home)"); 265 return i18n("Fax (Home)");
240 return i18n("Home2"); 266 return i18n("Home2");
241 } 267 }
242 268
243 if ((type & Work) == Work) { 269 if ((type & Work) == Work) {
244 if ((type & Pref) == Pref) 270 if ((type & Pref) == Pref)
245 return i18n("Work"); 271 return i18n("Work");
246 if ((type & Fax) == Fax) 272 if ((type & Fax) == Fax)
247 return i18n("Fax (Work)"); 273 return i18n("Fax (Work)");
248 if ((type & Msg) == Msg) { 274 if ((type & Msg) == Msg) {
249 if ((type & Voice) == Voice) 275 if ((type & Voice) == Voice)
250 return i18n("Assistent"); 276 return i18n("Assistent");
251 return i18n("Company"); 277 return i18n("Company");
252 } 278 }
253 return i18n("Work2"); 279 return i18n("Work2");
254 } 280 }
255 if ((type & Pcs) == Pcs) { 281 if ((type & Pcs) == Pcs) {
256 if ((type & Pref) == Pref) 282 if ((type & Pref) == Pref)
257 return i18n("SIP"); 283 return i18n("SIP");
258 return i18n("VoIP"); 284 return i18n("VoIP");
259 } 285 }
260 if ((type & Car) == Car) 286 if ((type & Car) == Car)
261 return i18n("Mobile2 (Work)"); 287 return i18n("Mobile2 (Work)");
262 if ((type & Pager) == Pager) 288 if ((type & Pager) == Pager)
263 return i18n("Pager"); 289 return i18n("Pager");
264 if ((type & Isdn) == Isdn) 290 if ((type & Isdn) == Isdn)
265 return i18n("ISDN"); 291 return i18n("ISDN");
266 if ((type & Video) == Video) 292 if ((type & Video) == Video)
267 return i18n("Video"); 293 return i18n("Video");
268 294
269 if ((type & Msg) == Msg) 295 if ((type & Msg) == Msg)
270 return i18n("Callback"); 296 return i18n("Callback");
271 if ((type & Fax) == Fax) 297 if ((type & Fax) == Fax)
272 return i18n("Fax (Other)"); 298 return i18n("Fax (Other)");
273 299
274 if ((type & Pref) == Pref) 300 if ((type & Pref) == Pref)
275 return i18n("Primary"); 301 return i18n("Primary");
276 302
277 303
278 return i18n("Other"); 304 return i18n("Other");
279 305
280 306
281#if 0 307#if 0
282 308
283 309
284 310
285 QString typeString; 311 QString typeString;
286 312
287 313
288 if ((type & Cell) == Cell) 314 if ((type & Cell) == Cell)
diff --git a/kabc/phonenumber.h b/kabc/phonenumber.h
index b9d6a17..feeba6c 100644
--- a/kabc/phonenumber.h
+++ b/kabc/phonenumber.h
@@ -87,84 +87,87 @@ class PhoneNumber
87 Destructor. 87 Destructor.
88 */ 88 */
89 ~PhoneNumber(); 89 ~PhoneNumber();
90 90
91 bool operator==( const PhoneNumber & ) const; 91 bool operator==( const PhoneNumber & ) const;
92 bool operator!=( const PhoneNumber & ) const; 92 bool operator!=( const PhoneNumber & ) const;
93 93
94 bool contains( const PhoneNumber &p ); 94 bool contains( const PhoneNumber &p );
95 /** 95 /**
96 Sets the unique identifier. 96 Sets the unique identifier.
97 */ 97 */
98 void setId( const QString &id ); 98 void setId( const QString &id );
99 99
100 /** 100 /**
101 Returns the unique identifier. 101 Returns the unique identifier.
102 */ 102 */
103 QString id() const; 103 QString id() const;
104 104
105 /** 105 /**
106 Sets the number. 106 Sets the number.
107 */ 107 */
108 void setNumber( const QString & ); 108 void setNumber( const QString & );
109 109
110 /** 110 /**
111 Returns the number. 111 Returns the number.
112 */ 112 */
113 QString number() const; 113 QString number() const;
114 114
115 /** 115 /**
116 Sets the type. Multiple types can be specified by combining them by 116 Sets the type. Multiple types can be specified by combining them by
117 a logical or. 117 a logical or.
118 */ 118 */
119 void setType( int ); 119 void setType( int );
120 120
121 /** 121 /**
122 Returns the type. Can be a multiple types combined by a logical or. 122 Returns the type. Can be a multiple types combined by a logical or.
123 */ 123 */
124 int type() const; 124 int type() const;
125 125
126 /** 126 /**
127 Returns a translated string of all types the address has. 127 Returns a translated string of all types the address has.
128 */ 128 */
129 QString typeLabel() const; 129 QString typeLabel() const;
130 130
131 /** 131 /**
132 Returns the translated label for phone number depending on its type. 132 Returns the translated label for phone number depending on its type.
133 */ 133 */
134 QString label() const; 134 QString label() const;
135 135
136 /** 136 /**
137 Returns a list of all available types 137 Returns a list of all available types
138 */ 138 */
139 static TypeList typeList(); 139 static TypeList typeList();
140 140
141 /** 141 /**
142 Returns the translated label for phone number type. 142 Returns the translated label for phone number type.
143 */ 143 */
144 static QString typeLabel( int type ); 144 static QString typeLabel( int type );
145 145
146 /** 146 /**
147 Returns the translated label for phone number type. 147 Returns the translated label for phone number type.
148 @obsolete 148 @obsolete
149 */ 149 */
150 static QString label( int type ); 150 static QString label( int type );
151 static TypeList supportedTypeList();
152 static QStringList supportedTypeListNames();
153 static int typeListIndex4Type(int type );
151 bool simplifyNumber(); 154 bool simplifyNumber();
152 void simplifyType(); 155 void simplifyType();
153 void makeCompat(); 156 void makeCompat();
154 int getCompatType( int type ); 157 int getCompatType( int type );
155 158
156 private: 159 private:
157 void init(); 160 void init();
158 161
159 QString mId; 162 QString mId;
160 163
161 int mType; 164 int mType;
162 QString mNumber; 165 QString mNumber;
163}; 166};
164 167
165QDataStream &operator<<( QDataStream &, const PhoneNumber & ); 168QDataStream &operator<<( QDataStream &, const PhoneNumber & );
166QDataStream &operator>>( QDataStream &, PhoneNumber & ); 169QDataStream &operator>>( QDataStream &, PhoneNumber & );
167 170
168} 171}
169 172
170#endif 173#endif