address.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <kapplication.h>
00022 #include <kdebug.h>
00023 #include <klocale.h>
00024
00025 #include "address.h"
00026
00027 using namespace KABC;
00028
00029 Address::Address() :
00030 mEmpty( true ), mType( 0 )
00031 {
00032 mId = KApplication::randomString( 10 );
00033 }
00034
00035 Address::Address( int type ) :
00036 mEmpty( true ), mType( type )
00037 {
00038 mId = KApplication::randomString( 10 );
00039 }
00040
00041 bool Address::operator==( const Address &a ) const
00042 {
00043 if ( mPostOfficeBox != a.mPostOfficeBox ) return false;
00044 if ( mExtended != a.mExtended ) return false;
00045 if ( mStreet != a.mStreet ) return false;
00046 if ( mLocality != a.mLocality ) return false;
00047 if ( mRegion != a.mRegion ) return false;
00048 if ( mPostalCode != a.mPostalCode ) return false;
00049 if ( mCountry != a.mCountry ) return false;
00050 if ( mLabel != a.mLabel ) return false;
00051
00052 return true;
00053 }
00054
00055 bool Address::operator!=( const Address &a ) const
00056 {
00057 return !( a == *this );
00058 }
00059
00060 bool Address::isEmpty() const
00061 {
00062 if ( mPostOfficeBox.isEmpty() &&
00063 mExtended.isEmpty() &&
00064 mStreet.isEmpty() &&
00065 mLocality.isEmpty() &&
00066 mRegion.isEmpty() &&
00067 mPostalCode.isEmpty() &&
00068 mCountry.isEmpty() &&
00069 mLabel.isEmpty() ) {
00070 return true;
00071 }
00072 return false;
00073 }
00074
00075 void Address::clear()
00076 {
00077 *this = Address();
00078 }
00079
00080 void Address::setId( const QString &id )
00081 {
00082 mEmpty = false;
00083
00084 mId = id;
00085 }
00086
00087 QString Address::id() const
00088 {
00089 return mId;
00090 }
00091
00092 void Address::setType( int type )
00093 {
00094 mEmpty = false;
00095
00096 mType = type;
00097 }
00098
00099 int Address::type() const
00100 {
00101 return mType;
00102 }
00103
00104 QString Address::typeLabel() const
00105 {
00106 QString label;
00107 bool first = true;
00108
00109 TypeList list = typeList();
00110
00111 TypeList::Iterator it;
00112 for ( it = list.begin(); it != list.end(); ++it ) {
00113 if ( ( type() & (*it) ) && ( (*it) != Pref ) ) {
00114 label.append( ( first ? "" : "/" ) + typeLabel( *it ) );
00115 if ( first )
00116 first = false;
00117 }
00118 }
00119
00120 return label;
00121 }
00122
00123 void Address::setPostOfficeBox( const QString &s )
00124 {
00125 mEmpty = false;
00126
00127 mPostOfficeBox = s;
00128 }
00129
00130 QString Address::postOfficeBox() const
00131 {
00132 return mPostOfficeBox;
00133 }
00134
00135 QString Address::postOfficeBoxLabel()
00136 {
00137 return i18n("Post Office Box");
00138 }
00139
00140
00141 void Address::setExtended( const QString &s )
00142 {
00143 mEmpty = false;
00144
00145 mExtended = s;
00146 }
00147
00148 QString Address::extended() const
00149 {
00150 return mExtended;
00151 }
00152
00153 QString Address::extendedLabel()
00154 {
00155 return i18n("Extended Address Information");
00156 }
00157
00158
00159 void Address::setStreet( const QString &s )
00160 {
00161 mEmpty = false;
00162
00163 mStreet = s;
00164 }
00165
00166 QString Address::street() const
00167 {
00168 return mStreet;
00169 }
00170
00171 QString Address::streetLabel()
00172 {
00173 return i18n("Street");
00174 }
00175
00176
00177 void Address::setLocality( const QString &s )
00178 {
00179 mEmpty = false;
00180
00181 mLocality = s;
00182 }
00183
00184 QString Address::locality() const
00185 {
00186 return mLocality;
00187 }
00188
00189 QString Address::localityLabel()
00190 {
00191 return i18n("Locality");
00192 }
00193
00194
00195 void Address::setRegion( const QString &s )
00196 {
00197 mEmpty = false;
00198
00199 mRegion = s;
00200 }
00201
00202 QString Address::region() const
00203 {
00204 return mRegion;
00205 }
00206
00207 QString Address::regionLabel()
00208 {
00209 return i18n("Region");
00210 }
00211
00212
00213 void Address::setPostalCode( const QString &s )
00214 {
00215 mEmpty = false;
00216
00217 mPostalCode = s;
00218 }
00219
00220 QString Address::postalCode() const
00221 {
00222 return mPostalCode;
00223 }
00224
00225 QString Address::postalCodeLabel()
00226 {
00227 return i18n("Postal Code");
00228 }
00229
00230
00231 void Address::setCountry( const QString &s )
00232 {
00233 mEmpty = false;
00234
00235 mCountry = s;
00236 }
00237
00238 QString Address::country() const
00239 {
00240 return mCountry;
00241 }
00242
00243 QString Address::countryLabel()
00244 {
00245 return i18n("Country");
00246 }
00247
00248
00249 void Address::setLabel( const QString &s )
00250 {
00251 mEmpty = false;
00252
00253 mLabel = s;
00254 }
00255
00256 QString Address::label() const
00257 {
00258 return mLabel;
00259 }
00260
00261 QString Address::labelLabel()
00262 {
00263 return i18n("Delivery Label");
00264 }
00265
00266 Address::TypeList Address::typeList()
00267 {
00268 TypeList list;
00269
00270 list << Dom << Intl << Postal << Parcel << Home << Work << Pref;
00271
00272 return list;
00273 }
00274
00275 QString Address::typeLabel( int type )
00276 {
00277 switch ( type ) {
00278 case Dom:
00279 return i18n("Domestic");
00280 break;
00281 case Intl:
00282 return i18n("International");
00283 break;
00284 case Postal:
00285 return i18n("Postal");
00286 break;
00287 case Parcel:
00288 return i18n("Parcel");
00289 break;
00290 case Home:
00291 return i18n("Home Address", "Home");
00292 break;
00293 case Work:
00294 return i18n("Work Address", "Work");
00295 break;
00296 case Pref:
00297 return i18n("Preferred Address");
00298 break;
00299 default:
00300 return i18n("Other");
00301 break;
00302 }
00303 }
00304
00305 void Address::dump() const
00306 {
00307 kdDebug(5700) << " Address {" << endl;
00308 kdDebug(5700) << " Id: " << id() << endl;
00309 kdDebug(5700) << " Extended: " << extended() << endl;
00310 kdDebug(5700) << " Street: " << street() << endl;
00311 kdDebug(5700) << " Postal Code: " << postalCode() << endl;
00312 kdDebug(5700) << " Locality: " << locality() << endl;
00313 kdDebug(5700) << " }" << endl;
00314 }
00315
00316 QDataStream &KABC::operator<<( QDataStream &s, const Address &addr )
00317 {
00318 return s << addr.mId << addr.mType << addr.mPostOfficeBox <<
00319 addr.mExtended << addr.mStreet << addr.mLocality <<
00320 addr.mRegion << addr.mPostalCode << addr.mCountry <<
00321 addr.mLabel;
00322 }
00323
00324 QDataStream &KABC::operator>>( QDataStream &s, Address &addr )
00325 {
00326 s >> addr.mId >> addr.mType >> addr.mPostOfficeBox >> addr.mExtended >>
00327 addr.mStreet >> addr.mLocality >> addr.mRegion >>
00328 addr.mPostalCode >> addr.mCountry >> addr.mLabel;
00329
00330 addr.mEmpty = false;
00331
00332 return s;
00333 }
This file is part of the documentation for kdelibs Version 3.1.5.