summaryrefslogtreecommitdiffabout
path: root/kabc/address.h
authorMichael Krelin <hacker@klever.net>2007-07-04 11:23:42 (UTC)
committer Michael Krelin <hacker@klever.net>2007-07-04 11:23:42 (UTC)
commita08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (unidiff)
tree8ee90d686081c52e7c69b5ce946e9b1a7d690001 /kabc/address.h
parent11edc920afe4f274c0964436633aa632c8288a40 (diff)
downloadkdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.zip
kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.gz
kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.bz2
initial public commit of qt4 portp1
Diffstat (limited to 'kabc/address.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/address.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/kabc/address.h b/kabc/address.h
index 38ad20b..41794fe 100644
--- a/kabc/address.h
+++ b/kabc/address.h
@@ -1,350 +1,350 @@
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#ifndef KABC_ADDRESS_H 28#ifndef KABC_ADDRESS_H
29#define KABC_ADDRESS_H 29#define KABC_ADDRESS_H
30 30
31#include <qmap.h> 31#include <qmap.h>
32#include <qstring.h> 32#include <qstring.h>
33#include <qregexp.h> 33#include <qregexp.h>
34#include <qstringlist.h> 34#include <qstringlist.h>
35#include <qvaluelist.h> 35#include <q3valuelist.h>
36 36
37// template tags for address formatting localization 37// template tags for address formatting localization
38#define KABC_FMTTAG_realname QString("%n") 38#define KABC_FMTTAG_realname QString("%n")
39#define KABC_FMTTAG_REALNAME QString("%N") 39#define KABC_FMTTAG_REALNAME QString("%N")
40#define KABC_FMTTAG_company QString("%cm") 40#define KABC_FMTTAG_company QString("%cm")
41#define KABC_FMTTAG_COMPANY QString("%CM") 41#define KABC_FMTTAG_COMPANY QString("%CM")
42#define KABC_FMTTAG_pobox QString("%p") 42#define KABC_FMTTAG_pobox QString("%p")
43#define KABC_FMTTAG_street QString("%s") 43#define KABC_FMTTAG_street QString("%s")
44#define KABC_FMTTAG_STREET QString("%S") 44#define KABC_FMTTAG_STREET QString("%S")
45#define KABC_FMTTAG_zipcode QString("%z") 45#define KABC_FMTTAG_zipcode QString("%z")
46#define KABC_FMTTAG_location QString("%l") 46#define KABC_FMTTAG_location QString("%l")
47#define KABC_FMTTAG_LOCATION QString("%L") 47#define KABC_FMTTAG_LOCATION QString("%L")
48#define KABC_FMTTAG_region QString("%r") 48#define KABC_FMTTAG_region QString("%r")
49#define KABC_FMTTAG_REGION QString("%R") 49#define KABC_FMTTAG_REGION QString("%R")
50#define KABC_FMTTAG_newline QString("\\n") 50#define KABC_FMTTAG_newline QString("\\n")
51#define KABC_FMTTAG_condcomma QString("%,") 51#define KABC_FMTTAG_condcomma QString("%,")
52#define KABC_FMTTAG_condwhite QString("%w") 52#define KABC_FMTTAG_condwhite QString("%w")
53#define KABC_FMTTAG_purgeempty QString("%0") 53#define KABC_FMTTAG_purgeempty QString("%0")
54 54
55namespace KABC { 55namespace KABC {
56 56
57/** 57/**
58 @short Postal address information. 58 @short Postal address information.
59 59
60 This class represents information about a postal address. 60 This class represents information about a postal address.
61*/ 61*/
62class Address 62class Address
63{ 63{
64 friend QDataStream &operator<<( QDataStream &, const Address & ); 64 friend QDataStream &operator<<( QDataStream &, const Address & );
65 friend QDataStream &operator>>( QDataStream &, Address & ); 65 friend QDataStream &operator>>( QDataStream &, Address & );
66 66
67 public: 67 public:
68 /** 68 /**
69 List of addresses. 69 List of addresses.
70 */ 70 */
71 typedef QValueList<Address> List; 71 typedef Q3ValueList<Address> List;
72 typedef QValueList<int> TypeList; 72 typedef Q3ValueList<int> TypeList;
73 73
74 /** 74 /**
75 Address types: 75 Address types:
76 76
77 @li @p Dom - domestic 77 @li @p Dom - domestic
78 @li @p Intl - international 78 @li @p Intl - international
79 @li @p Postal - postal 79 @li @p Postal - postal
80 @li @p Parcel - parcel 80 @li @p Parcel - parcel
81 @li @p Home - home address 81 @li @p Home - home address
82 @li @p Work - address at work 82 @li @p Work - address at work
83 @li @p Pref - preferred address 83 @li @p Pref - preferred address
84 */ 84 */
85 enum Type { Dom = 1, Intl = 2, Postal = 4, Parcel = 8, Home = 16, Work = 32, 85 enum Type { Dom = 1, Intl = 2, Postal = 4, Parcel = 8, Home = 16, Work = 32,
86 Pref = 64 }; 86 Pref = 64 };
87 87
88 /** 88 /**
89 Constructor that creates an empty Address, which is initialized 89 Constructor that creates an empty Address, which is initialized
90 with a unique id (see @ref id()). 90 with a unique id (see @ref id()).
91 */ 91 */
92 Address(); 92 Address();
93 93
94 /** 94 /**
95 This is like @ref Address() just above, with the difference 95 This is like @ref Address() just above, with the difference
96 that you can specify the type. 96 that you can specify the type.
97 */ 97 */
98 Address( int ); 98 Address( int );
99 bool matchAddress( QRegExp* searchExp ) const; 99 bool matchAddress( QRegExp* searchExp ) const;
100 100
101 bool operator==( const Address & ) const; 101 bool operator==( const Address & ) const;
102 bool operator!=( const Address & ) const; 102 bool operator!=( const Address & ) const;
103 103
104 /** 104 /**
105 Returns true, if the address is empty. 105 Returns true, if the address is empty.
106 */ 106 */
107 bool isEmpty() const; 107 bool isEmpty() const;
108 108
109 /** 109 /**
110 Clears all entries of the address. 110 Clears all entries of the address.
111 */ 111 */
112 void clear(); 112 void clear();
113 QStringList asList(); 113 QStringList asList();
114 114
115 /** 115 /**
116 Sets the unique id. 116 Sets the unique id.
117 */ 117 */
118 void setId( const QString & ); 118 void setId( const QString & );
119 119
120 /* 120 /*
121 Returns the unique id. 121 Returns the unique id.
122 */ 122 */
123 QString id() const; 123 QString id() const;
124 124
125 /** 125 /**
126 Sets the type of address. See enum for definiton of types. 126 Sets the type of address. See enum for definiton of types.
127 127
128 @param type type, can be a bitwise or of multiple types. 128 @param type type, can be a bitwise or of multiple types.
129 */ 129 */
130 void setType( int type ); 130 void setType( int type );
131 131
132 /** 132 /**
133 Returns the type of address. Can be a bitwise or of multiple types. 133 Returns the type of address. Can be a bitwise or of multiple types.
134 */ 134 */
135 int type() const; 135 int type() const;
136 136
137 /** 137 /**
138 Returns a translated string of all types the address has. 138 Returns a translated string of all types the address has.
139 */ 139 */
140 QString typeLabel() const; 140 QString typeLabel() const;
141 141
142 /** 142 /**
143 Sets the post office box. 143 Sets the post office box.
144 */ 144 */
145 void setPostOfficeBox( const QString & ); 145 void setPostOfficeBox( const QString & );
146 146
147 /** 147 /**
148 Returns the post office box. 148 Returns the post office box.
149 */ 149 */
150 QString postOfficeBox() const; 150 QString postOfficeBox() const;
151 151
152 /** 152 /**
153 Returns the translated label for post office box field. 153 Returns the translated label for post office box field.
154 */ 154 */
155 static QString postOfficeBoxLabel(); 155 static QString postOfficeBoxLabel();
156 156
157 /** 157 /**
158 Sets the extended address information. 158 Sets the extended address information.
159 */ 159 */
160 void setExtended( const QString & ); 160 void setExtended( const QString & );
161 161
162 /** 162 /**
163 Returns the extended address information. 163 Returns the extended address information.
164 */ 164 */
165 QString extended() const; 165 QString extended() const;
166 166
167 /** 167 /**
168 Returns the translated label for extended field. 168 Returns the translated label for extended field.
169 */ 169 */
170 static QString extendedLabel(); 170 static QString extendedLabel();
171 171
172 /** 172 /**
173 Sets the street (including number). 173 Sets the street (including number).
174 */ 174 */
175 void setStreet( const QString & ); 175 void setStreet( const QString & );
176 176
177 /** 177 /**
178 Returns the street. 178 Returns the street.
179 */ 179 */
180 QString street() const; 180 QString street() const;
181 181
182 /** 182 /**
183 Returns the translated label for street field. 183 Returns the translated label for street field.
184 */ 184 */
185 static QString streetLabel(); 185 static QString streetLabel();
186 186
187 /** 187 /**
188 Sets the locality, e.g. city. 188 Sets the locality, e.g. city.
189 */ 189 */
190 void setLocality( const QString & ); 190 void setLocality( const QString & );
191 191
192 /** 192 /**
193 Returns the locality. 193 Returns the locality.
194 */ 194 */
195 QString locality() const; 195 QString locality() const;
196 196
197 /** 197 /**
198 Returns the translated label for locality field. 198 Returns the translated label for locality field.
199 */ 199 */
200 static QString localityLabel(); 200 static QString localityLabel();
201 201
202 /** 202 /**
203 Sets the region, e.g. state. 203 Sets the region, e.g. state.
204 */ 204 */
205 void setRegion( const QString & ); 205 void setRegion( const QString & );
206 206
207 /** 207 /**
208 Returns the region. 208 Returns the region.
209 */ 209 */
210 QString region() const; 210 QString region() const;
211 211
212 /** 212 /**
213 Returns the translated label for region field. 213 Returns the translated label for region field.
214 */ 214 */
215 static QString regionLabel(); 215 static QString regionLabel();
216 216
217 /** 217 /**
218 Sets the postal code. 218 Sets the postal code.
219 */ 219 */
220 void setPostalCode( const QString & ); 220 void setPostalCode( const QString & );
221 221
222 /** 222 /**
223 Returns the postal code. 223 Returns the postal code.
224 */ 224 */
225 QString postalCode() const; 225 QString postalCode() const;
226 226
227 /** 227 /**
228 Returns the translated label for postal code field. 228 Returns the translated label for postal code field.
229 */ 229 */
230 static QString postalCodeLabel(); 230 static QString postalCodeLabel();
231 231
232 /** 232 /**
233 Sets the country. 233 Sets the country.
234 */ 234 */
235 void setCountry( const QString & ); 235 void setCountry( const QString & );
236 236
237 /** 237 /**
238 Returns the country. 238 Returns the country.
239 */ 239 */
240 QString country() const; 240 QString country() const;
241 241
242 /** 242 /**
243 Returns the translated label for country field. 243 Returns the translated label for country field.
244 */ 244 */
245 static QString countryLabel(); 245 static QString countryLabel();
246 246
247 /** 247 /**
248 Sets the delivery label. This is the literal text to be used as label. 248 Sets the delivery label. This is the literal text to be used as label.
249 */ 249 */
250 void setLabel( const QString & ); 250 void setLabel( const QString & );
251 251
252 /** 252 /**
253 Returns the delivery label. 253 Returns the delivery label.
254 */ 254 */
255 QString label() const; 255 QString label() const;
256 256
257 /** 257 /**
258 Returns the translated label for delivery label field. 258 Returns the translated label for delivery label field.
259 */ 259 */
260 static QString labelLabel(); 260 static QString labelLabel();
261 261
262 /** 262 /**
263 Returns the list of available types. 263 Returns the list of available types.
264 */ 264 */
265 static TypeList typeList(); 265 static TypeList typeList();
266 266
267 /** 267 /**
268 Returns the translated label for a special type. 268 Returns the translated label for a special type.
269 */ 269 */
270 static QString typeLabel( int type ); 270 static QString typeLabel( int type );
271 271
272 /** 272 /**
273 Used for debug output. 273 Used for debug output.
274 */ 274 */
275 void dump() const; 275 void dump() const;
276 276
277 /** 277 /**
278 Returns this address formatted according to the country-specific 278 Returns this address formatted according to the country-specific
279 address formatting rules. The formatting rules applied depend on 279 address formatting rules. The formatting rules applied depend on
280 either the addresses {@link #country country} field, or (if the 280 either the addresses {@link #country country} field, or (if the
281 latter is empty) on the system country setting. If companyName is 281 latter is empty) on the system country setting. If companyName is
282 provided, an available business address format will be preferred. 282 provided, an available business address format will be preferred.
283 283
284 @param realName the formatted name of the contact 284 @param realName the formatted name of the contact
285 @param orgaName the name of the organization or company 285 @param orgaName the name of the organization or company
286 @return the formatted address (containing newline characters) 286 @return the formatted address (containing newline characters)
287 */ 287 */
288 QString formattedAddress( const QString &realName=QString::null 288 QString formattedAddress( const QString &realName=QString::null
289 , const QString &orgaName=QString::null ) const; 289 , const QString &orgaName=QString::null ) const;
290 290
291 /** 291 /**
292 Returns ISO code for a localized country name. Only localized country 292 Returns ISO code for a localized country name. Only localized country
293 names will be understood. This might be replaced by a KLocale method in 293 names will be understood. This might be replaced by a KLocale method in
294 the future. 294 the future.
295 @param cname name of the country 295 @param cname name of the country
296 @return two digit ISO code 296 @return two digit ISO code
297 */ 297 */
298 static QString countryToISO( const QString &cname ); 298 static QString countryToISO( const QString &cname );
299 299
300 /** 300 /**
301 Returns a localized country name for a ISO code. 301 Returns a localized country name for a ISO code.
302 This might be replaced by a KLocale method in the future. 302 This might be replaced by a KLocale method in the future.
303 @param ISOname two digit ISO code 303 @param ISOname two digit ISO code
304 @return localized name of the country 304 @return localized name of the country
305 @since 3.2 305 @since 3.2
306 */ 306 */
307 static QString ISOtoCountry( const QString &ISOname ); 307 static QString ISOtoCountry( const QString &ISOname );
308 308
309 private: 309 private:
310 /** 310 /**
311 Parses a snippet of an address template 311 Parses a snippet of an address template
312 @param tsection the template string to be parsed 312 @param tsection the template string to be parsed
313 @param result QString reference in which the result will be stored 313 @param result QString reference in which the result will be stored
314 @return true if at least one tag evaluated positively, else false 314 @return true if at least one tag evaluated positively, else false
315 */ 315 */
316 bool parseAddressTemplateSection( const QString &tsection 316 bool parseAddressTemplateSection( const QString &tsection
317 , QString &result 317 , QString &result
318 , const QString &realName 318 , const QString &realName
319 , const QString &orgaName ) const; 319 , const QString &orgaName ) const;
320 320
321 /** 321 /**
322 Finds the balanced closing bracket starting from the opening bracket at 322 Finds the balanced closing bracket starting from the opening bracket at
323 pos in tsection. 323 pos in tsection.
324 @return position of closing bracket, -1 for unbalanced brackets 324 @return position of closing bracket, -1 for unbalanced brackets
325 */ 325 */
326 int findBalancedBracket( const QString &tsection, int pos ) const; 326 int findBalancedBracket( const QString &tsection, int pos ) const;
327 327
328 bool mEmpty; 328 bool mEmpty;
329 329
330 QString mId; 330 QString mId;
331 int mType; 331 int mType;
332 332
333 QString mPostOfficeBox; 333 QString mPostOfficeBox;
334 QString mExtended; 334 QString mExtended;
335 QString mStreet; 335 QString mStreet;
336 QString mLocality; 336 QString mLocality;
337 QString mRegion; 337 QString mRegion;
338 QString mPostalCode; 338 QString mPostalCode;
339 QString mCountry; 339 QString mCountry;
340 QString mLabel; 340 QString mLabel;
341 341
342 static QMap<QString, QString> mISOMap; 342 static QMap<QString, QString> mISOMap;
343}; 343};
344 344
345QDataStream &operator<<( QDataStream &, const Address & ); 345QDataStream &operator<<( QDataStream &, const Address & );
346QDataStream &operator>>( QDataStream &, Address & ); 346QDataStream &operator>>( QDataStream &, Address & );
347 347
348} 348}
349 349
350#endif 350#endif