address.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KABC_ADDRESS_H
00022 #define KABC_ADDRESS_H
00023
00024 #include <qmap.h>
00025 #include <qstring.h>
00026 #include <qvaluelist.h>
00027
00028 #include <kdelibs_export.h>
00029
00030
00031 #define KABC_FMTTAG_realname QString("%n")
00032 #define KABC_FMTTAG_REALNAME QString("%N")
00033 #define KABC_FMTTAG_company QString("%cm")
00034 #define KABC_FMTTAG_COMPANY QString("%CM")
00035 #define KABC_FMTTAG_pobox QString("%p")
00036 #define KABC_FMTTAG_street QString("%s")
00037 #define KABC_FMTTAG_STREET QString("%S")
00038 #define KABC_FMTTAG_zipcode QString("%z")
00039 #define KABC_FMTTAG_location QString("%l")
00040 #define KABC_FMTTAG_LOCATION QString("%L")
00041 #define KABC_FMTTAG_region QString("%r")
00042 #define KABC_FMTTAG_REGION QString("%R")
00043 #define KABC_FMTTAG_newline QString("\\n")
00044 #define KABC_FMTTAG_condcomma QString("%,")
00045 #define KABC_FMTTAG_condwhite QString("%w")
00046 #define KABC_FMTTAG_purgeempty QString("%0")
00047
00048 namespace KABC {
00049
00055 class KABC_EXPORT Address
00056 {
00057 friend KABC_EXPORT QDataStream &operator<<( QDataStream &, const Address & );
00058 friend KABC_EXPORT QDataStream &operator>>( QDataStream &, Address & );
00059
00060 public:
00064 typedef QValueList<Address> List;
00065 typedef QValueList<int> TypeList;
00066
00078 enum Type { Dom = 1, Intl = 2, Postal = 4, Parcel = 8, Home = 16, Work = 32,
00079 Pref = 64 };
00080
00085 Address();
00086
00091 Address( int );
00092
00093 bool operator==( const Address & ) const;
00094 bool operator!=( const Address & ) const;
00095
00099 bool isEmpty() const;
00100
00104 void clear();
00105
00109 void setId( const QString & );
00110
00111
00112
00113
00114 QString id() const;
00115
00121 void setType( int type );
00122
00126 int type() const;
00127
00131 QString typeLabel() const;
00132
00136 void setPostOfficeBox( const QString & );
00137
00141 QString postOfficeBox() const;
00142
00146 static QString postOfficeBoxLabel();
00147
00151 void setExtended( const QString & );
00152
00156 QString extended() const;
00157
00161 static QString extendedLabel();
00162
00166 void setStreet( const QString & );
00167
00171 QString street() const;
00172
00176 static QString streetLabel();
00177
00181 void setLocality( const QString & );
00182
00186 QString locality() const;
00187
00191 static QString localityLabel();
00192
00196 void setRegion( const QString & );
00197
00201 QString region() const;
00202
00206 static QString regionLabel();
00207
00211 void setPostalCode( const QString & );
00212
00216 QString postalCode() const;
00217
00221 static QString postalCodeLabel();
00222
00226 void setCountry( const QString & );
00227
00231 QString country() const;
00232
00236 static QString countryLabel();
00237
00241 void setLabel( const QString & );
00242
00246 QString label() const;
00247
00251 static QString labelLabel();
00252
00256 static TypeList typeList();
00257
00261 static QString typeLabel( int type );
00262
00266 void dump() const;
00267
00279 QString formattedAddress( const QString &realName=QString::null
00280 , const QString &orgaName=QString::null ) const;
00281
00289 static QString countryToISO( const QString &cname );
00290
00298 static QString ISOtoCountry( const QString &ISOname );
00299
00300 private:
00307 bool parseAddressTemplateSection( const QString &tsection
00308 , QString &result
00309 , const QString &realName
00310 , const QString &orgaName ) const;
00311
00317 int findBalancedBracket( const QString &tsection, int pos ) const;
00318
00319 bool mEmpty;
00320
00321 QString mId;
00322 int mType;
00323
00324 QString mPostOfficeBox;
00325 QString mExtended;
00326 QString mStreet;
00327 QString mLocality;
00328 QString mRegion;
00329 QString mPostalCode;
00330 QString mCountry;
00331 QString mLabel;
00332
00333 static QMap<QString, QString> *mISOMap;
00334 };
00335
00336 KABC_EXPORT QDataStream &operator<<( QDataStream &, const Address & );
00337 KABC_EXPORT QDataStream &operator>>( QDataStream &, Address & );
00338
00339 }
00340
00341 #endif
|