summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/phonenumber.cpp107
1 files changed, 47 insertions, 60 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index 04b1168..3f641d1 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -128,85 +128,72 @@ PhoneNumber::TypeList PhoneNumber::typeList()
128 << Bbs << Modem << Car << Isdn << Pcs << Pager; 128 << Bbs << Modem << Car << Isdn << Pcs << Pager;
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 switch ( type ) { 140 QString typeString;
141 case Home: 141
142 return i18n("Home phone", "Home"); 142 if ((type & Home) == Home)
143 break; 143 typeString += i18n("Home");
144 case Work: 144 else if ((type & Work) == Work)
145 return i18n("Work phone", "Work"); 145 typeString += i18n("Work");
146 break; 146
147 case Msg: 147 if (!typeString.isEmpty())
148 return i18n("Messenger"); 148 typeString += " ";
149 break; 149
150 case Pref: 150 if ((type & Cell) == Cell)
151 return i18n("Preferred Number"); 151 typeString += i18n("Mobile");
152 break; 152 else if ((type & Fax) == Fax)
153 case Voice: 153 typeString += i18n("Fax");
154 return i18n("Voice"); 154 else if ((type & Msg) == Msg)
155 break; 155 typeString += i18n("Messenger");
156 case Fax: 156 else if ((type & Voice) == Voice) {
157 return i18n("Fax"); 157// add nothing in case of the Voice flag
158 break; 158// typeString += i18n("Voice");
159 case Cell:
160 return i18n("Mobile Phone" );
161 break;
162 case Cell | Home:
163 return i18n("Home Mobile" );
164 break;
165 case Cell | Work:
166 return i18n("Home Mobile" );
167 break;
168 case Video:
169 return i18n("Video");
170 break;
171 case Bbs:
172 return i18n("Mailbox");
173 break;
174 case Modem:
175 return i18n("Modem");
176 break;
177 case Car:
178 return i18n("Car Phone", "Car" );
179 break;
180 case Isdn:
181 return i18n("ISDN");
182 break;
183 case Pcs:
184 return i18n("PCS");
185 break;
186 case Pager:
187 return i18n("Pager");
188 break;
189 case Work | Pager:
190 return i18n("Work Pager");
191 break;
192 case Home | Fax:
193 return i18n("Home Fax");
194 break;
195 case Work | Fax:
196 return i18n("Work Fax");
197 break;
198 default:
199 return i18n("Other");
200 } 159 }
160 else if ((type & Video) == Video)
161 typeString += i18n("Video");
162 else if ((type & Bbs) == Bbs)
163 typeString += i18n("Mailbox");
164 else if ((type & Modem) == Modem)
165 typeString += i18n("Modem");
166 else if ((type & Car) == Car)
167 typeString += i18n("Car");
168 else if ((type & Isdn) == Isdn)
169 typeString += i18n("ISDN");
170 else if ((type & Pcs) == Pcs)
171 typeString += i18n("PCS");
172 else if ((type & Pager) == Pager)
173 typeString += i18n("Pager");
174
175 // add the prefered flag
176 if (!typeString.isEmpty())
177 typeString += " ";
178
179 if ((type & Pref) == Pref)
180 typeString += i18n("(Preferred)");
181
182 //if we still have no match, return "other"
183 if (typeString.isEmpty())
184 return i18n("Other");
185
186
187 return typeString;
201} 188}
202 189
203QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) 190QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone )
204{ 191{
205 return s << phone.mId << phone.mType << phone.mNumber; 192 return s << phone.mId << phone.mType << phone.mNumber;
206} 193}
207 194
208QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone ) 195QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone )
209{ 196{
210 s >> phone.mId >> phone.mType >> phone.mNumber; 197 s >> phone.mId >> phone.mType >> phone.mNumber;
211 198
212 return s; 199 return s;