summaryrefslogtreecommitdiffabout
path: root/kabc/phonenumber.cpp
authorzautrix <zautrix>2005-03-31 11:26:51 (UTC)
committer zautrix <zautrix>2005-03-31 11:26:51 (UTC)
commitc0fa26aa3b33c293853bdd7d028ddb0545e33c85 (patch) (unidiff)
tree12bbb65fb6d235415bd7a7007c1e019ccfcf97ac /kabc/phonenumber.cpp
parentf39d5000ed2f9a436ee94cbd42f840651afa89d6 (diff)
downloadkdepimpi-c0fa26aa3b33c293853bdd7d028ddb0545e33c85.zip
kdepimpi-c0fa26aa3b33c293853bdd7d028ddb0545e33c85.tar.gz
kdepimpi-c0fa26aa3b33c293853bdd7d028ddb0545e33c85.tar.bz2
many fixes
Diffstat (limited to 'kabc/phonenumber.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/phonenumber.cpp34
1 files changed, 15 insertions, 19 deletions
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index abb3b3b..041effc 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -59,182 +59,178 @@ bool PhoneNumber::operator==( const PhoneNumber &p ) const
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
69bool PhoneNumber::simplifyNumber() 69bool PhoneNumber::simplifyNumber()
70{ 70{
71 QString Number; 71 QString Number;
72 int i; 72 int i;
73 Number = mNumber.stripWhiteSpace (); 73 Number = mNumber.stripWhiteSpace ();
74 mNumber = ""; 74 mNumber = "";
75 for ( i = 0; i < Number.length(); ++i) { 75 for ( i = 0; i < Number.length(); ++i) {
76 if ( Number.at(i).isDigit() || Number.at(i) == '+'|| Number.at(i) == '*'|| Number.at(i) == '#' ) 76 if ( Number.at(i).isDigit() || Number.at(i) == '+'|| Number.at(i) == '*'|| Number.at(i) == '#' )
77 mNumber += Number.at(i); 77 mNumber += Number.at(i);
78 } 78 }
79 return ( mNumber.length() > 0 ); 79 return ( mNumber.length() > 0 );
80} 80}
81// make cellphone compatible 81// make cellphone compatible
82void PhoneNumber::simplifyType() 82void PhoneNumber::simplifyType()
83{ 83{
84 if ( mType & Fax ) mType = Fax; 84 if ( mType & Fax ) mType = Fax;
85 else if ( mType & Cell ) mType = Cell; 85 else if ( mType & Cell ) mType = Cell;
86 else if ( mType & Work ) mType = Work ; 86 else if ( mType & Work ) mType = Work ;
87 else if ( mType & Home ) mType = Home; 87 else if ( mType & Home ) mType = Home;
88 else mType = Pref; 88 else mType = Pref;
89} 89}
90bool PhoneNumber::contains( const PhoneNumber &p ) 90bool PhoneNumber::contains( const PhoneNumber &p )
91{ 91{
92 PhoneNumber myself; 92 PhoneNumber myself;
93 PhoneNumber other; 93 PhoneNumber other;
94 myself = *this; 94 myself = *this;
95 other = p; 95 other = p;
96 myself.simplifyNumber(); 96 myself.simplifyNumber();
97 other.simplifyNumber(); 97 other.simplifyNumber();
98 if ( myself.number() != other.number ()) 98 if ( myself.number() != other.number ())
99 return false; 99 return false;
100 myself.simplifyType(); 100 myself.simplifyType();
101 other.simplifyType(); 101 other.simplifyType();
102 if ( myself.type() == other.type()) 102 if ( myself.type() == other.type())
103 return true; 103 return true;
104 return false; 104 return false;
105} 105}
106 106
107void PhoneNumber::setId( const QString &id ) 107void PhoneNumber::setId( const QString &id )
108{ 108{
109 mId = id; 109 mId = id;
110} 110}
111 111
112QString PhoneNumber::id() const 112QString PhoneNumber::id() const
113{ 113{
114 return mId; 114 return mId;
115} 115}
116 116
117void PhoneNumber::setNumber( const QString &number ) 117void PhoneNumber::setNumber( const QString &number )
118{ 118{
119 mNumber = number; 119 mNumber = number;
120} 120}
121 121
122QString PhoneNumber::number() const 122QString PhoneNumber::number() const
123{ 123{
124 return mNumber; 124 return mNumber;
125} 125}
126 126
127void PhoneNumber::setType( int type ) 127void PhoneNumber::setType( int type )
128{ 128{
129 mType = type; 129 mType = type;
130} 130}
131 131
132int PhoneNumber::type() const 132int PhoneNumber::type() const
133{ 133{
134 return mType; 134 return mType;
135} 135}
136 136
137QString PhoneNumber::typeLabel() const 137QString PhoneNumber::typeLabel() const
138{ 138{
139 QString label; 139 QString label;
140 bool first = true; 140 bool first = true;
141 141
142 TypeList list = typeList(); 142 TypeList list = typeList();
143 143
144 TypeList::Iterator it; 144 TypeList::Iterator it;
145 for ( it = list.begin(); it != list.end(); ++it ) { 145 for ( it = list.begin(); it != list.end(); ++it ) {
146 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) { 146 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) {
147 label.append( ( first ? "" : "/" ) + typeLabel( *it ) ); 147 label.append( ( first ? "" : "/" ) + typeLabel( *it ) );
148 if ( first ) 148 if ( first )
149 first = false; 149 first = false;
150 } 150 }
151 } 151 }
152 152
153 return label; 153 return label;
154} 154}
155 155
156QString PhoneNumber::label() const 156QString PhoneNumber::label() const
157{ 157{
158 return typeLabel( type() ); 158 return typeLabel( type() );
159} 159}
160 160
161PhoneNumber::TypeList PhoneNumber::typeList() 161PhoneNumber::TypeList PhoneNumber::typeList()
162{ 162{
163 TypeList list; 163 TypeList list;
164 164
165 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video 165 list << Home << Work << Msg << Pref << Voice << Fax << Cell << Video
166 << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip; 166 << Bbs << Modem << Car << Isdn << Pcs << Pager << Sip;
167 167
168 return list; 168 return list;
169} 169}
170 170
171QString PhoneNumber::label( int type ) 171QString PhoneNumber::label( int type )
172{ 172{
173 return typeLabel( type ); 173 return typeLabel( type );
174} 174}
175 175
176QString PhoneNumber::typeLabel( int type ) 176QString PhoneNumber::typeLabel( int type )
177{ 177{
178 QString typeString; 178 QString typeString;
179 179
180 if ((type & Home) == Home) 180 if ((type & Home) == Home)
181 typeString += i18n("Home"); 181 typeString += i18n("Home");
182 else if ((type & Work) == Work) 182 else if ((type & Work) == Work)
183 typeString += i18n("Work"); 183 typeString += i18n("Work");
184 184
185 if (!typeString.isEmpty()) 185 if (!typeString.isEmpty())
186 typeString += " "; 186 typeString += " ";
187
188 if ((type & Cell) == Cell) 187 if ((type & Cell) == Cell)
189 typeString += i18n("Mobile"); 188 typeString += i18n("Mobile") +" ";
190 else if ((type & Fax) == Fax) 189 if ((type & Sip) == Sip)
190 typeString += i18n("SIP")+" ";
191 if ((type & Car) == Car)
192 typeString += i18n("Car")+" ";
193
194 if ((type & Fax) == Fax)
191 typeString += i18n("Fax"); 195 typeString += i18n("Fax");
192 else if ((type & Msg) == Msg) 196 else if ((type & Msg) == Msg)
193 typeString += i18n("Messenger"); 197 typeString += i18n("Messenger");
194 else if ((type & Voice) == Voice) {
195// add nothing in case of the Voice flag
196// typeString += i18n("Voice");
197 }
198 else if ((type & Video) == Video) 198 else if ((type & Video) == Video)
199 typeString += i18n("Video"); 199 typeString += i18n("Video");
200 else if ((type & Bbs) == Bbs) 200 else if ((type & Bbs) == Bbs)
201 typeString += i18n("Mailbox"); 201 typeString += i18n("Mailbox");
202 else if ((type & Modem) == Modem) 202 else if ((type & Modem) == Modem)
203 typeString += i18n("Modem"); 203 typeString += i18n("Modem");
204 else if ((type & Car) == Car)
205 typeString += i18n("Car");
206 else if ((type & Isdn) == Isdn) 204 else if ((type & Isdn) == Isdn)
207 typeString += i18n("ISDN"); 205 typeString += i18n("ISDN");
208 else if ((type & Pcs) == Pcs) 206 else if ((type & Pcs) == Pcs)
209 typeString += i18n("PCS"); 207 typeString += i18n("PCS");
210 else if ((type & Pager) == Pager) 208 else if ((type & Pager) == Pager)
211 typeString += i18n("Pager"); 209 typeString += i18n("Pager");
212 else if ((type & Sip) == Sip)
213 typeString += i18n("SIP");
214
215 // add the prefered flag 210 // add the prefered flag
216 if (!typeString.isEmpty())
217 typeString += " ";
218 /* 211 /*
219 if ((type & Pref) == Pref) 212 if ((type & Pref) == Pref)
220 typeString += i18n("(p)"); 213 typeString += i18n("(p)");
221 */ 214 */
222 //if we still have no match, return "other" 215 //if we still have no match, return "other"
223 if (typeString.isEmpty()) 216 if (typeString.isEmpty()) {
224 return i18n("Other"); 217 if ((type & Voice) == Voice)
225 218 return i18n("Voice");
226 219 else
227 return typeString; 220 return i18n("Other");
221 }
222
223 return typeString.stripWhiteSpace();
228} 224}
229 225
230QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) 226QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone )
231{ 227{
232 return s << phone.mId << phone.mType << phone.mNumber; 228 return s << phone.mId << phone.mType << phone.mNumber;
233} 229}
234 230
235QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone ) 231QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone )
236{ 232{
237 s >> phone.mId >> phone.mType >> phone.mNumber; 233 s >> phone.mId >> phone.mType >> phone.mNumber;
238 234
239 return s; 235 return s;
240} 236}