summaryrefslogtreecommitdiffabout
path: root/kabc/field.cpp
Unidiff
Diffstat (limited to 'kabc/field.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/field.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/kabc/field.cpp b/kabc/field.cpp
index fd51026..20885de 100644
--- a/kabc/field.cpp
+++ b/kabc/field.cpp
@@ -1,590 +1,590 @@
1/*** Warning! This file has been generated by the script makeaddressee ***/ 1/*** Warning! This file has been generated by the script makeaddressee ***/
2/* 2/*
3 This file is part of libkabc. 3 This file is part of libkabc.
4 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22/* 22/*
23Enhanced Version of the file for platform independent KDE tools. 23Enhanced Version of the file for platform independent KDE tools.
24Copyright (c) 2004 Ulf Schenk 24Copyright (c) 2004 Ulf Schenk
25 25
26$Id$ 26$Id$
27*/ 27*/
28 28
29#include <klocale.h> 29#include <klocale.h>
30#include <kconfig.h> 30#include <kconfig.h>
31#include <kconfigbase.h> 31#include <kconfigbase.h>
32#include <kglobal.h> 32#include <kglobal.h>
33 33
34#include "field.h" 34#include "field.h"
35#include "resource.h" 35#include "resource.h"
36 36
37using namespace KABC; 37using namespace KABC;
38 38
39class Field::FieldImpl 39class Field::FieldImpl
40{ 40{
41 public: 41 public:
42 FieldImpl( int fieldId, int category = 0, 42 FieldImpl( int fieldId, int category = 0,
43 const QString &label = QString::null, 43 const QString &label = QString::null,
44 const QString &key = QString::null, 44 const QString &key = QString::null,
45 const QString &app = QString::null ) 45 const QString &app = QString::null )
46 : mFieldId( fieldId ), mCategory( category ), mLabel( label ), 46 : mFieldId( fieldId ), mCategory( category ), mLabel( label ),
47 mKey( key ), mApp( app ) {} 47 mKey( key ), mApp( app ) {}
48 48
49 enum FieldId 49 enum FieldId
50 { 50 {
51 CustomField, 51 CustomField,
52 FormattedName, 52 FormattedName,
53 FamilyName, 53 FamilyName,
54 GivenName, 54 GivenName,
55 AdditionalName, 55 AdditionalName,
56 Prefix, 56 Prefix,
57 Suffix, 57 Suffix,
58 NickName, 58 NickName,
59 Birthday, 59 Birthday,
60 Category, 60 Category,
61 HomeAddressStreet, 61 HomeAddressStreet,
62 HomeAddressLocality, 62 HomeAddressLocality,
63 HomeAddressRegion, 63 HomeAddressRegion,
64 HomeAddressPostalCode, 64 HomeAddressPostalCode,
65 HomeAddressCountry, 65 HomeAddressCountry,
66 HomeAddressLabel, 66 HomeAddressLabel,
67 BusinessAddressStreet, 67 BusinessAddressStreet,
68 BusinessAddressLocality, 68 BusinessAddressLocality,
69 BusinessAddressRegion, 69 BusinessAddressRegion,
70 BusinessAddressPostalCode, 70 BusinessAddressPostalCode,
71 BusinessAddressCountry, 71 BusinessAddressCountry,
72 BusinessAddressLabel, 72 BusinessAddressLabel,
73 HomePhone, 73 HomePhone,
74 BusinessPhone, 74 BusinessPhone,
75 MobilePhone, 75 MobilePhone,
76 HomeFax, 76 HomeFax,
77 BusinessFax, 77 BusinessFax,
78 CarPhone, 78 CarPhone,
79 Isdn, 79 Isdn,
80 Pager, 80 Pager,
81 Email, 81 Email,
82 Mailer, 82 Mailer,
83 Title, 83 Title,
84 Role, 84 Role,
85 Organization, 85 Organization,
86 Note, 86 Note,
87 Url, 87 Url,
88 Resource, 88 Resource,
89 Sip, 89 Sip,
90 MobileWorkPhone, 90 MobileWorkPhone,
91 MobileHomePhone 91 MobileHomePhone
92 }; 92 };
93 93
94 int fieldId() { return mFieldId; } 94 int fieldId() { return mFieldId; }
95 int category() { return mCategory; } 95 int category() { return mCategory; }
96 96
97 QString label() { return mLabel; } 97 QString label() { return mLabel; }
98 QString key() { return mKey; } 98 QString key() { return mKey; }
99 QString app() { return mApp; } 99 QString app() { return mApp; }
100 100
101 private: 101 private:
102 int mFieldId; 102 int mFieldId;
103 int mCategory; 103 int mCategory;
104 104
105 QString mLabel; 105 QString mLabel;
106 QString mKey; 106 QString mKey;
107 QString mApp; 107 QString mApp;
108}; 108};
109 109
110 110
111Field::List Field::mAllFields; 111Field::List Field::mAllFields;
112Field::List Field::mDefaultFields; 112Field::List Field::mDefaultFields;
113Field::List Field::mCustomFields; 113Field::List Field::mCustomFields;
114 114
115 115
116Field::Field( FieldImpl *impl ) 116Field::Field( FieldImpl *impl )
117{ 117{
118 mImpl = impl; 118 mImpl = impl;
119} 119}
120 120
121Field::~Field() 121Field::~Field()
122{ 122{
123 delete mImpl; 123 delete mImpl;
124} 124}
125 125
126QString Field::label() 126QString Field::label()
127{ 127{
128 switch ( mImpl->fieldId() ) { 128 switch ( mImpl->fieldId() ) {
129 case FieldImpl::FormattedName: 129 case FieldImpl::FormattedName:
130 return Addressee::formattedNameLabel(); 130 return Addressee::formattedNameLabel();
131 case FieldImpl::FamilyName: 131 case FieldImpl::FamilyName:
132 return Addressee::familyNameLabel(); 132 return Addressee::familyNameLabel();
133 case FieldImpl::GivenName: 133 case FieldImpl::GivenName:
134 return Addressee::givenNameLabel(); 134 return Addressee::givenNameLabel();
135 case FieldImpl::AdditionalName: 135 case FieldImpl::AdditionalName:
136 return Addressee::additionalNameLabel(); 136 return Addressee::additionalNameLabel();
137 case FieldImpl::Prefix: 137 case FieldImpl::Prefix:
138 return Addressee::prefixLabel(); 138 return Addressee::prefixLabel();
139 case FieldImpl::Suffix: 139 case FieldImpl::Suffix:
140 return Addressee::suffixLabel(); 140 return Addressee::suffixLabel();
141 case FieldImpl::NickName: 141 case FieldImpl::NickName:
142 return Addressee::nickNameLabel(); 142 return Addressee::nickNameLabel();
143 case FieldImpl::Birthday: 143 case FieldImpl::Birthday:
144 return Addressee::birthdayLabel(); 144 return Addressee::birthdayLabel();
145 case FieldImpl::HomeAddressStreet: 145 case FieldImpl::HomeAddressStreet:
146 return Addressee::homeAddressStreetLabel(); 146 return Addressee::homeAddressStreetLabel();
147 case FieldImpl::HomeAddressLocality: 147 case FieldImpl::HomeAddressLocality:
148 return Addressee::homeAddressLocalityLabel(); 148 return Addressee::homeAddressLocalityLabel();
149 case FieldImpl::HomeAddressRegion: 149 case FieldImpl::HomeAddressRegion:
150 return Addressee::homeAddressRegionLabel(); 150 return Addressee::homeAddressRegionLabel();
151 case FieldImpl::HomeAddressPostalCode: 151 case FieldImpl::HomeAddressPostalCode:
152 return Addressee::homeAddressPostalCodeLabel(); 152 return Addressee::homeAddressPostalCodeLabel();
153 case FieldImpl::HomeAddressCountry: 153 case FieldImpl::HomeAddressCountry:
154 return Addressee::homeAddressCountryLabel(); 154 return Addressee::homeAddressCountryLabel();
155 case FieldImpl::HomeAddressLabel: 155 case FieldImpl::HomeAddressLabel:
156 return Addressee::homeAddressLabelLabel(); 156 return Addressee::homeAddressLabelLabel();
157 case FieldImpl::BusinessAddressStreet: 157 case FieldImpl::BusinessAddressStreet:
158 return Addressee::businessAddressStreetLabel(); 158 return Addressee::businessAddressStreetLabel();
159 case FieldImpl::BusinessAddressLocality: 159 case FieldImpl::BusinessAddressLocality:
160 return Addressee::businessAddressLocalityLabel(); 160 return Addressee::businessAddressLocalityLabel();
161 case FieldImpl::BusinessAddressRegion: 161 case FieldImpl::BusinessAddressRegion:
162 return Addressee::businessAddressRegionLabel(); 162 return Addressee::businessAddressRegionLabel();
163 case FieldImpl::BusinessAddressPostalCode: 163 case FieldImpl::BusinessAddressPostalCode:
164 return Addressee::businessAddressPostalCodeLabel(); 164 return Addressee::businessAddressPostalCodeLabel();
165 case FieldImpl::BusinessAddressCountry: 165 case FieldImpl::BusinessAddressCountry:
166 return Addressee::businessAddressCountryLabel(); 166 return Addressee::businessAddressCountryLabel();
167 case FieldImpl::BusinessAddressLabel: 167 case FieldImpl::BusinessAddressLabel:
168 return Addressee::businessAddressLabelLabel(); 168 return Addressee::businessAddressLabelLabel();
169 case FieldImpl::HomePhone: 169 case FieldImpl::HomePhone:
170 return Addressee::homePhoneLabel(); 170 return Addressee::homePhoneLabel();
171 case FieldImpl::BusinessPhone: 171 case FieldImpl::BusinessPhone:
172 return Addressee::businessPhoneLabel(); 172 return Addressee::businessPhoneLabel();
173 case FieldImpl::MobilePhone: 173 case FieldImpl::MobilePhone:
174 return Addressee::mobilePhoneLabel(); 174 return Addressee::mobilePhoneLabel();
175 case FieldImpl::MobileHomePhone: 175 case FieldImpl::MobileHomePhone:
176 return Addressee::mobileHomePhoneLabel(); 176 return Addressee::mobileHomePhoneLabel();
177 case FieldImpl::MobileWorkPhone: 177 case FieldImpl::MobileWorkPhone:
178 return Addressee::mobileWorkPhoneLabel(); 178 return Addressee::mobileWorkPhoneLabel();
179 case FieldImpl::HomeFax: 179 case FieldImpl::HomeFax:
180 return Addressee::homeFaxLabel(); 180 return Addressee::homeFaxLabel();
181 case FieldImpl::BusinessFax: 181 case FieldImpl::BusinessFax:
182 return Addressee::businessFaxLabel(); 182 return Addressee::businessFaxLabel();
183 case FieldImpl::CarPhone: 183 case FieldImpl::CarPhone:
184 return Addressee::carPhoneLabel(); 184 return Addressee::carPhoneLabel();
185 case FieldImpl::Isdn: 185 case FieldImpl::Isdn:
186 return Addressee::isdnLabel(); 186 return Addressee::isdnLabel();
187 case FieldImpl::Pager: 187 case FieldImpl::Pager:
188 return Addressee::pagerLabel(); 188 return Addressee::pagerLabel();
189 case FieldImpl::Email: 189 case FieldImpl::Email:
190 return Addressee::emailLabel(); 190 return Addressee::emailLabel();
191 case FieldImpl::Mailer: 191 case FieldImpl::Mailer:
192 return Addressee::mailerLabel(); 192 return Addressee::mailerLabel();
193 case FieldImpl::Title: 193 case FieldImpl::Title:
194 return Addressee::titleLabel(); 194 return Addressee::titleLabel();
195 case FieldImpl::Role: 195 case FieldImpl::Role:
196 return Addressee::roleLabel(); 196 return Addressee::roleLabel();
197 case FieldImpl::Organization: 197 case FieldImpl::Organization:
198 return Addressee::organizationLabel(); 198 return Addressee::organizationLabel();
199 case FieldImpl::Note: 199 case FieldImpl::Note:
200 return Addressee::noteLabel(); 200 return Addressee::noteLabel();
201 case FieldImpl::Url: 201 case FieldImpl::Url:
202 return Addressee::urlLabel(); 202 return Addressee::urlLabel();
203 case FieldImpl::Resource: 203 case FieldImpl::Resource:
204 return Addressee::resourceLabel(); 204 return Addressee::resourceLabel();
205 case FieldImpl::Category: 205 case FieldImpl::Category:
206 return Addressee::categoryLabel(); 206 return Addressee::categoryLabel();
207 case FieldImpl::Sip: 207 case FieldImpl::Sip:
208 return Addressee::sipLabel(); 208 return Addressee::sipLabel();
209 case FieldImpl::CustomField: 209 case FieldImpl::CustomField:
210 return mImpl->label(); 210 return mImpl->label();
211 default: 211 default:
212 return i18n("Unknown Field"); 212 return i18n("Unknown Field");
213 } 213 }
214} 214}
215 215
216int Field::category() 216int Field::category()
217{ 217{
218 return mImpl->category(); 218 return mImpl->category();
219} 219}
220 220
221QString Field::categoryLabel( int category ) 221QString Field::categoryLabel( int category )
222{ 222{
223 switch ( category ) { 223 switch ( category ) {
224 case All: 224 case All:
225 return i18n("All"); 225 return i18n("All");
226 case Frequent: 226 case Frequent:
227 return i18n("Frequent"); 227 return i18n("Frequent");
228 case Address: 228 case Address:
229 return i18n("Address"); 229 return i18n("Address");
230 case Email: 230 case Email:
231 return i18n("Email"); 231 return i18n("Email");
232 case Personal: 232 case Personal:
233 return i18n("Personal"); 233 return i18n("Personal");
234 case Organization: 234 case Organization:
235 return i18n("Organization"); 235 return i18n("Organization");
236 case CustomCategory: 236 case CustomCategory:
237 return i18n("Custom"); 237 return i18n("Custom");
238 default: 238 default:
239 return i18n("Undefined"); 239 return i18n("Undefined");
240 } 240 }
241} 241}
242 242
243QString Field::value( const KABC::Addressee &a ) 243QString Field::value( const KABC::Addressee &a )
244{ 244{
245 switch ( mImpl->fieldId() ) { 245 switch ( mImpl->fieldId() ) {
246 case FieldImpl::FormattedName: 246 case FieldImpl::FormattedName:
247 return a.formattedName(); 247 return a.formattedName();
248 case FieldImpl::FamilyName: 248 case FieldImpl::FamilyName:
249 return a.familyName(); 249 return a.familyName();
250 case FieldImpl::GivenName: 250 case FieldImpl::GivenName:
251 return a.givenName(); 251 return a.givenName();
252 case FieldImpl::AdditionalName: 252 case FieldImpl::AdditionalName:
253 return a.additionalName(); 253 return a.additionalName();
254 case FieldImpl::Prefix: 254 case FieldImpl::Prefix:
255 return a.prefix(); 255 return a.prefix();
256 case FieldImpl::Suffix: 256 case FieldImpl::Suffix:
257 return a.suffix(); 257 return a.suffix();
258 case FieldImpl::NickName: 258 case FieldImpl::NickName:
259 return a.nickName(); 259 return a.nickName();
260 case FieldImpl::Mailer: 260 case FieldImpl::Mailer:
261 return a.mailer(); 261 return a.mailer();
262 case FieldImpl::Title: 262 case FieldImpl::Title:
263 return a.title(); 263 return a.title();
264 case FieldImpl::Role: 264 case FieldImpl::Role:
265 return a.role(); 265 return a.role();
266 case FieldImpl::Organization: 266 case FieldImpl::Organization:
267 return a.organization(); 267 return a.organization();
268 case FieldImpl::Note: 268 case FieldImpl::Note:
269 return a.note(); 269 return a.note();
270 case FieldImpl::Email: 270 case FieldImpl::Email:
271 return a.preferredEmail(); 271 return a.preferredEmail();
272 case FieldImpl::Birthday: 272 case FieldImpl::Birthday:
273 if ( a.birthday().isValid() ) { 273 if ( a.birthday().isValid() ) {
274//the generated code had the following format: return a.birthday().date().toString( Qt::ISODate ); 274//the generated code had the following format: return a.birthday().date().toString( Qt::ISODate );
275// But Qt::IsoDate was not specified. 275// But Qt::IsoDate was not specified.
276// QString _oldFormat = KGlobal::locale()->dateFormat(); 276// QString _oldFormat = KGlobal::locale()->dateFormat();
277// KGlobal::locale()->setDateFormat("%Y-%m-%d"); // = Qt::ISODate 277// KGlobal::locale()->setDateFormat("%Y-%m-%d"); // = Qt::ISODate
278 QString dt = KGlobal::locale()->formatDate(a.birthday().date(), false, KLocale::ISODate); 278 QString dt = KGlobal::locale()->formatDate(a.birthday().date(), false, KLocale::ISODate);
279// KGlobal::locale()->setDateFormat(_oldFormat); 279// KGlobal::locale()->setDateFormat(_oldFormat);
280 return dt; 280 return dt;
281 } 281 }
282 else 282 else
283 return QString::null; 283 return QString::null;
284 case FieldImpl::Url: 284 case FieldImpl::Url:
285 return a.url().prettyURL(); 285 return a.url().prettyURL();
286//US 286//US
287 case FieldImpl::Resource: 287 case FieldImpl::Resource:
288 return a.resource()->resourceName(); 288 return a.resource()->resourceName();
289 case FieldImpl::Category: 289 case FieldImpl::Category:
290 return a.categories().join(","); 290 return a.categories().join(",");
291 case FieldImpl::HomePhone: 291 case FieldImpl::HomePhone:
292 return a.phoneNumber( PhoneNumber::Home ).number(); 292 return a.phoneNumber( PhoneNumber::Home| PhoneNumber::Pref ).number();
293 case FieldImpl::BusinessPhone: 293 case FieldImpl::BusinessPhone:
294 return a.phoneNumber( PhoneNumber::Work ).number(); 294 return a.phoneNumber( PhoneNumber::Work| PhoneNumber::Pref ).number();
295 case FieldImpl::MobilePhone: 295 case FieldImpl::MobilePhone:
296 return a.phoneNumber( PhoneNumber::Cell ).number(); 296 return a.phoneNumber( PhoneNumber::Cell ).number();
297 case FieldImpl::MobileWorkPhone: 297 case FieldImpl::MobileWorkPhone:
298 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Work ).number(); 298 return a.phoneNumber( PhoneNumber::Car ).number();
299 case FieldImpl::MobileHomePhone: 299 case FieldImpl::MobileHomePhone:
300 return a.phoneNumber( PhoneNumber::Cell | PhoneNumber::Home ).number(); 300 return a.phoneNumber( PhoneNumber::Cell ).number();
301 case FieldImpl::HomeFax: 301 case FieldImpl::HomeFax:
302 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number(); 302 return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number();
303 case FieldImpl::BusinessFax: 303 case FieldImpl::BusinessFax:
304 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number(); 304 return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number();
305 case FieldImpl::CarPhone: 305 case FieldImpl::CarPhone:
306 return a.phoneNumber( PhoneNumber::Car ).number(); 306 return a.phoneNumber( PhoneNumber::Car ).number();
307 case FieldImpl::Isdn: 307 case FieldImpl::Isdn:
308 return a.phoneNumber( PhoneNumber::Isdn ).number(); 308 return a.phoneNumber( PhoneNumber::Isdn ).number();
309 case FieldImpl::Pager: 309 case FieldImpl::Pager:
310 return a.phoneNumber( PhoneNumber::Pager ).number(); 310 return a.phoneNumber( PhoneNumber::Pager ).number();
311 case FieldImpl::Sip: 311 case FieldImpl::Sip:
312 return a.phoneNumber( PhoneNumber::Sip ).number(); 312 return a.phoneNumber( PhoneNumber::Pcs | PhoneNumber::Pref ).number();
313 case FieldImpl::HomeAddressStreet: 313 case FieldImpl::HomeAddressStreet:
314 return a.address( Address::Home ).street(); 314 return a.address( Address::Home ).street();
315 case FieldImpl::HomeAddressLocality: 315 case FieldImpl::HomeAddressLocality:
316 return a.address( Address::Home ).locality(); 316 return a.address( Address::Home ).locality();
317 case FieldImpl::HomeAddressRegion: 317 case FieldImpl::HomeAddressRegion:
318 return a.address( Address::Home ).region(); 318 return a.address( Address::Home ).region();
319 case FieldImpl::HomeAddressPostalCode: 319 case FieldImpl::HomeAddressPostalCode:
320 return a.address( Address::Home ).postalCode(); 320 return a.address( Address::Home ).postalCode();
321 case FieldImpl::HomeAddressCountry: 321 case FieldImpl::HomeAddressCountry:
322 return a.address( Address::Home ).country(); 322 return a.address( Address::Home ).country();
323 case FieldImpl::BusinessAddressStreet: 323 case FieldImpl::BusinessAddressStreet:
324 return a.address( Address::Work ).street(); 324 return a.address( Address::Work ).street();
325 case FieldImpl::BusinessAddressLocality: 325 case FieldImpl::BusinessAddressLocality:
326 return a.address( Address::Work ).locality(); 326 return a.address( Address::Work ).locality();
327 case FieldImpl::BusinessAddressRegion: 327 case FieldImpl::BusinessAddressRegion:
328 return a.address( Address::Work ).region(); 328 return a.address( Address::Work ).region();
329 case FieldImpl::BusinessAddressPostalCode: 329 case FieldImpl::BusinessAddressPostalCode:
330 return a.address( Address::Work ).postalCode(); 330 return a.address( Address::Work ).postalCode();
331 case FieldImpl::BusinessAddressCountry: 331 case FieldImpl::BusinessAddressCountry:
332 return a.address( Address::Work ).country(); 332 return a.address( Address::Work ).country();
333 case FieldImpl::CustomField: 333 case FieldImpl::CustomField:
334 return a.custom( mImpl->app(), mImpl->key() ); 334 return a.custom( mImpl->app(), mImpl->key() );
335 default: 335 default:
336 return QString::null; 336 return QString::null;
337 } 337 }
338} 338}
339 339
340bool Field::setValue( KABC::Addressee &a, const QString &value ) 340bool Field::setValue( KABC::Addressee &a, const QString &value )
341{ 341{
342 switch ( mImpl->fieldId() ) { 342 switch ( mImpl->fieldId() ) {
343 case FieldImpl::FormattedName: 343 case FieldImpl::FormattedName:
344 a.setFormattedName( value ); 344 a.setFormattedName( value );
345 return true; 345 return true;
346 case FieldImpl::FamilyName: 346 case FieldImpl::FamilyName:
347 a.setFamilyName( value ); 347 a.setFamilyName( value );
348 return true; 348 return true;
349 case FieldImpl::GivenName: 349 case FieldImpl::GivenName:
350 a.setGivenName( value ); 350 a.setGivenName( value );
351 return true; 351 return true;
352 case FieldImpl::AdditionalName: 352 case FieldImpl::AdditionalName:
353 a.setAdditionalName( value ); 353 a.setAdditionalName( value );
354 return true; 354 return true;
355 case FieldImpl::Prefix: 355 case FieldImpl::Prefix:
356 a.setPrefix( value ); 356 a.setPrefix( value );
357 return true; 357 return true;
358 case FieldImpl::Suffix: 358 case FieldImpl::Suffix:
359 a.setSuffix( value ); 359 a.setSuffix( value );
360 return true; 360 return true;
361 case FieldImpl::NickName: 361 case FieldImpl::NickName:
362 a.setNickName( value ); 362 a.setNickName( value );
363 return true; 363 return true;
364 case FieldImpl::Mailer: 364 case FieldImpl::Mailer:
365 a.setMailer( value ); 365 a.setMailer( value );
366 return true; 366 return true;
367 case FieldImpl::Title: 367 case FieldImpl::Title:
368 a.setTitle( value ); 368 a.setTitle( value );
369 return true; 369 return true;
370 case FieldImpl::Role: 370 case FieldImpl::Role:
371 a.setRole( value ); 371 a.setRole( value );
372 return true; 372 return true;
373 case FieldImpl::Organization: 373 case FieldImpl::Organization:
374 a.setOrganization( value ); 374 a.setOrganization( value );
375 return true; 375 return true;
376 case FieldImpl::Note: 376 case FieldImpl::Note:
377 a.setNote( value ); 377 a.setNote( value );
378 return true; 378 return true;
379 case FieldImpl::Birthday: 379 case FieldImpl::Birthday:
380//US 380//US
381//the generated code had the following format: return a.setBirthday( QDate::fromString( value, Qt::ISODate ) ); 381//the generated code had the following format: return a.setBirthday( QDate::fromString( value, Qt::ISODate ) );
382// But Qt::IsoDate and QDate::fromString was not specified. Do I have the wrong QT version ? 382// But Qt::IsoDate and QDate::fromString was not specified. Do I have the wrong QT version ?
383 { 383 {
384 QDate dt = KGlobal::locale()->readDate( value, "%Y-%m-%d"); // = Qt::ISODate 384 QDate dt = KGlobal::locale()->readDate( value, "%Y-%m-%d"); // = Qt::ISODate
385 a.setBirthday(dt); 385 a.setBirthday(dt);
386 } 386 }
387 return true; 387 return true;
388 case FieldImpl::CustomField: 388 case FieldImpl::CustomField:
389 a.insertCustom( mImpl->app(), mImpl->key(), value ); 389 a.insertCustom( mImpl->app(), mImpl->key(), value );
390//US never copy the resourcename back to the adressee. 390//US never copy the resourcename back to the adressee.
391 case FieldImpl::Resource: 391 case FieldImpl::Resource:
392 default: 392 default:
393 return false; 393 return false;
394 } 394 }
395} 395}
396 396
397bool Field::isCustom() 397bool Field::isCustom()
398{ 398{
399 return mImpl->fieldId() == FieldImpl::CustomField; 399 return mImpl->fieldId() == FieldImpl::CustomField;
400} 400}
401 401
402Field::List Field::allFields() 402Field::List Field::allFields()
403{ 403{
404 if ( mAllFields.isEmpty() ) { 404 if ( mAllFields.isEmpty() ) {
405 createField( FieldImpl::FormattedName, Frequent ); 405 createField( FieldImpl::FormattedName, Frequent );
406 createField( FieldImpl::FamilyName, Frequent ); 406 createField( FieldImpl::FamilyName, Frequent );
407 createField( FieldImpl::GivenName, Frequent ); 407 createField( FieldImpl::GivenName, Frequent );
408 createField( FieldImpl::AdditionalName ); 408 createField( FieldImpl::AdditionalName );
409 createField( FieldImpl::Prefix ); 409 createField( FieldImpl::Prefix );
410 createField( FieldImpl::Suffix ); 410 createField( FieldImpl::Suffix );
411 createField( FieldImpl::NickName, Personal ); 411 createField( FieldImpl::NickName, Personal );
412 createField( FieldImpl::Birthday, Personal ); 412 createField( FieldImpl::Birthday, Personal );
413 createField( FieldImpl::Category ); 413 createField( FieldImpl::Category );
414 createField( FieldImpl::HomeAddressStreet, Address|Personal ); 414 createField( FieldImpl::HomeAddressStreet, Address|Personal );
415 createField( FieldImpl::HomeAddressLocality, Address|Personal ); 415 createField( FieldImpl::HomeAddressLocality, Address|Personal );
416 createField( FieldImpl::HomeAddressRegion, Address|Personal ); 416 createField( FieldImpl::HomeAddressRegion, Address|Personal );
417 createField( FieldImpl::HomeAddressPostalCode, Address|Personal ); 417 createField( FieldImpl::HomeAddressPostalCode, Address|Personal );
418 createField( FieldImpl::HomeAddressCountry, Address|Personal ); 418 createField( FieldImpl::HomeAddressCountry, Address|Personal );
419 createField( FieldImpl::HomeAddressLabel, Address|Personal ); 419 createField( FieldImpl::HomeAddressLabel, Address|Personal );
420 createField( FieldImpl::BusinessAddressStreet, Address|Organization ); 420 createField( FieldImpl::BusinessAddressStreet, Address|Organization );
421 createField( FieldImpl::BusinessAddressLocality, Address|Organization ); 421 createField( FieldImpl::BusinessAddressLocality, Address|Organization );
422 createField( FieldImpl::BusinessAddressRegion, Address|Organization ); 422 createField( FieldImpl::BusinessAddressRegion, Address|Organization );
423 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization ); 423 createField( FieldImpl::BusinessAddressPostalCode, Address|Organization );
424 createField( FieldImpl::BusinessAddressCountry, Address|Organization ); 424 createField( FieldImpl::BusinessAddressCountry, Address|Organization );
425 createField( FieldImpl::BusinessAddressLabel, Address|Organization ); 425 createField( FieldImpl::BusinessAddressLabel, Address|Organization );
426 createField( FieldImpl::HomePhone, Personal|Frequent ); 426 createField( FieldImpl::HomePhone, Personal|Frequent );
427 createField( FieldImpl::BusinessPhone, Organization|Frequent ); 427 createField( FieldImpl::BusinessPhone, Organization|Frequent );
428 createField( FieldImpl::MobilePhone, Frequent ); 428 createField( FieldImpl::MobilePhone, Frequent );
429 createField( FieldImpl::MobileHomePhone, Frequent ); 429 createField( FieldImpl::MobileHomePhone, Frequent );
430 createField( FieldImpl::MobileWorkPhone, Frequent ); 430 createField( FieldImpl::MobileWorkPhone, Frequent );
431 createField( FieldImpl::HomeFax ); 431 createField( FieldImpl::HomeFax );
432 createField( FieldImpl::BusinessFax ); 432 createField( FieldImpl::BusinessFax );
433 createField( FieldImpl::CarPhone ); 433 createField( FieldImpl::CarPhone );
434 createField( FieldImpl::Isdn ); 434 createField( FieldImpl::Isdn );
435 createField( FieldImpl::Pager ); 435 createField( FieldImpl::Pager );
436 createField( FieldImpl::Email, Email|Frequent ); 436 createField( FieldImpl::Email, Email|Frequent );
437 createField( FieldImpl::Mailer, Email ); 437 createField( FieldImpl::Mailer, Email );
438 createField( FieldImpl::Title, Organization ); 438 createField( FieldImpl::Title, Organization );
439 createField( FieldImpl::Role, Organization ); 439 createField( FieldImpl::Role, Organization );
440 createField( FieldImpl::Organization, Organization ); 440 createField( FieldImpl::Organization, Organization );
441 createField( FieldImpl::Note ); 441 createField( FieldImpl::Note );
442 createField( FieldImpl::Url ); 442 createField( FieldImpl::Url );
443 createField( FieldImpl::Resource ); 443 createField( FieldImpl::Resource );
444 createField( FieldImpl::Sip ); 444 createField( FieldImpl::Sip );
445 } 445 }
446 446
447 return mAllFields; 447 return mAllFields;
448} 448}
449 449
450Field::List Field::defaultFields() 450Field::List Field::defaultFields()
451{ 451{
452 if ( mDefaultFields.isEmpty() ) { 452 if ( mDefaultFields.isEmpty() ) {
453 createDefaultField( FieldImpl::GivenName ); 453 createDefaultField( FieldImpl::GivenName );
454 createDefaultField( FieldImpl::FamilyName ); 454 createDefaultField( FieldImpl::FamilyName );
455 createDefaultField( FieldImpl::Email ); 455 createDefaultField( FieldImpl::Email );
456 } 456 }
457 457
458 return mDefaultFields; 458 return mDefaultFields;
459} 459}
460 460
461void Field::createField( int id, int category ) 461void Field::createField( int id, int category )
462{ 462{
463 mAllFields.append( new Field( new FieldImpl( id, category ) ) ); 463 mAllFields.append( new Field( new FieldImpl( id, category ) ) );
464} 464}
465 465
466void Field::createDefaultField( int id, int category ) 466void Field::createDefaultField( int id, int category )
467{ 467{
468 mDefaultFields.append( new Field( new FieldImpl( id, category ) ) ); 468 mDefaultFields.append( new Field( new FieldImpl( id, category ) ) );
469} 469}
470 470
471void Field::deleteFields() 471void Field::deleteFields()
472{ 472{
473 Field::List::ConstIterator it; 473 Field::List::ConstIterator it;
474 474
475 for( it = mAllFields.begin(); it != mAllFields.end(); ++it ) { 475 for( it = mAllFields.begin(); it != mAllFields.end(); ++it ) {
476 delete (*it); 476 delete (*it);
477 } 477 }
478 mAllFields.clear(); 478 mAllFields.clear();
479 479
480 for( it = mDefaultFields.begin(); it != mDefaultFields.end(); ++it ) { 480 for( it = mDefaultFields.begin(); it != mDefaultFields.end(); ++it ) {
481 delete (*it); 481 delete (*it);
482 } 482 }
483 mDefaultFields.clear(); 483 mDefaultFields.clear();
484 484
485 for( it = mCustomFields.begin(); it != mCustomFields.end(); ++it ) { 485 for( it = mCustomFields.begin(); it != mCustomFields.end(); ++it ) {
486 delete (*it); 486 delete (*it);
487 } 487 }
488 mCustomFields.clear(); 488 mCustomFields.clear();
489} 489}
490 490
491void Field::saveFields( const QString &identifier, 491void Field::saveFields( const QString &identifier,
492 const Field::List &fields ) 492 const Field::List &fields )
493{ 493{
494 KConfig *cfg = KGlobal::config(); 494 KConfig *cfg = KGlobal::config();
495 KConfigGroupSaver( cfg, "KABCFields" ); 495 KConfigGroupSaver( cfg, "KABCFields" );
496 saveFields( cfg, identifier, fields ); 496 saveFields( cfg, identifier, fields );
497} 497}
498 498
499void Field::saveFields( KConfig *cfg, const QString &identifier, 499void Field::saveFields( KConfig *cfg, const QString &identifier,
500 const Field::List &fields ) 500 const Field::List &fields )
501{ 501{
502 QValueList<int> fieldIds; 502 QValueList<int> fieldIds;
503 503
504//US 504//US
505// qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1()); 505// qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1());
506 506
507 int custom = 0; 507 int custom = 0;
508 Field::List::ConstIterator it; 508 Field::List::ConstIterator it;
509 for( it = fields.begin(); it != fields.end(); ++it ) { 509 for( it = fields.begin(); it != fields.end(); ++it ) {
510//US 510//US
511// qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId()); 511// qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId());
512 512
513 fieldIds.append( (*it)->mImpl->fieldId() ); 513 fieldIds.append( (*it)->mImpl->fieldId() );
514 if( (*it)->isCustom() ) { 514 if( (*it)->isCustom() ) {
515 QStringList customEntry; 515 QStringList customEntry;
516 customEntry << (*it)->mImpl->label(); 516 customEntry << (*it)->mImpl->label();
517 customEntry << (*it)->mImpl->key(); 517 customEntry << (*it)->mImpl->key();
518 customEntry << (*it)->mImpl->app(); 518 customEntry << (*it)->mImpl->app();
519 cfg->writeEntry( "KABC_CustomEntry_" + identifier + "_" + 519 cfg->writeEntry( "KABC_CustomEntry_" + identifier + "_" +
520 QString::number( custom++ ), customEntry ); 520 QString::number( custom++ ), customEntry );
521 } 521 }
522 } 522 }
523 cfg->writeEntry( identifier, fieldIds ); 523 cfg->writeEntry( identifier, fieldIds );
524} 524}
525 525
526Field::List Field::restoreFields( const QString &identifier ) 526Field::List Field::restoreFields( const QString &identifier )
527{ 527{
528//US 528//US
529// qDebug("Field::restoreFields, identifier: %s", identifier.latin1()); 529// qDebug("Field::restoreFields, identifier: %s", identifier.latin1());
530 530
531 KConfig *cfg = KGlobal::config(); 531 KConfig *cfg = KGlobal::config();
532 KConfigGroupSaver( cfg, "KABCFields" ); 532 KConfigGroupSaver( cfg, "KABCFields" );
533 cfg->setGroup( "KABCFields" ); 533 cfg->setGroup( "KABCFields" );
534 534
535 Field::List l = restoreFields( cfg, identifier ); 535 Field::List l = restoreFields( cfg, identifier );
536 536
537 return l; 537 return l;
538} 538}
539 539
540Field::List Field::restoreFields( KConfig *cfg, const QString &identifier ) 540Field::List Field::restoreFields( KConfig *cfg, const QString &identifier )
541{ 541{
542 QValueList<int> fieldIds = cfg->readIntListEntry( identifier); 542 QValueList<int> fieldIds = cfg->readIntListEntry( identifier);
543//US 543//US
544// qDebug("Field::restoreFields from %s, identifier: %s", cfg->getFileName().latin1(), identifier.latin1()); 544// qDebug("Field::restoreFields from %s, identifier: %s", cfg->getFileName().latin1(), identifier.latin1());
545 545
546 Field::List fields; 546 Field::List fields;
547 547
548 int custom = 0; 548 int custom = 0;
549 QValueList<int>::ConstIterator it; 549 QValueList<int>::ConstIterator it;
550 for( it = fieldIds.begin(); it != fieldIds.end(); ++it ) { 550 for( it = fieldIds.begin(); it != fieldIds.end(); ++it ) {
551 FieldImpl *f = 0; 551 FieldImpl *f = 0;
552 if ( (*it) == FieldImpl::CustomField ) { 552 if ( (*it) == FieldImpl::CustomField ) {
553 QStringList customEntry = cfg->readListEntry( "KABC_CustomEntry_" + 553 QStringList customEntry = cfg->readListEntry( "KABC_CustomEntry_" +
554 identifier + "_" + 554 identifier + "_" +
555 QString::number( custom++ ) ); 555 QString::number( custom++ ) );
556 f = new FieldImpl( *it, CustomCategory, customEntry[ 0 ], 556 f = new FieldImpl( *it, CustomCategory, customEntry[ 0 ],
557 customEntry[ 1 ], customEntry[ 2 ] ); 557 customEntry[ 1 ], customEntry[ 2 ] );
558 } else { 558 } else {
559 f = new FieldImpl( *it ); 559 f = new FieldImpl( *it );
560 } 560 }
561 fields.append( new Field( f ) ); 561 fields.append( new Field( f ) );
562 } 562 }
563 563
564 return fields; 564 return fields;
565} 565}
566 566
567bool Field::equals( Field *field ) 567bool Field::equals( Field *field )
568{ 568{
569 bool sameId = ( mImpl->fieldId() == field->mImpl->fieldId() ); 569 bool sameId = ( mImpl->fieldId() == field->mImpl->fieldId() );
570 570
571 if ( !sameId ) return false; 571 if ( !sameId ) return false;
572 572
573 if ( mImpl->fieldId() != FieldImpl::CustomField ) return true; 573 if ( mImpl->fieldId() != FieldImpl::CustomField ) return true;
574 574
575 return mImpl->key() == field->mImpl->key(); 575 return mImpl->key() == field->mImpl->key();
576} 576}
577 577
578Field *Field::createCustomField( const QString &label, int category, 578Field *Field::createCustomField( const QString &label, int category,
579 const QString &key, const QString &app ) 579 const QString &key, const QString &app )
580{ 580{
581 Field *field = new Field( new FieldImpl( FieldImpl::CustomField, 581 Field *field = new Field( new FieldImpl( FieldImpl::CustomField,
582 category | CustomCategory, 582 category | CustomCategory,
583 label, key, app ) ); 583 label, key, app ) );
584//US 584//US
585// qDebug("Field::createCustomField label %s", label.latin1() ); 585// qDebug("Field::createCustomField label %s", label.latin1() );
586 586
587 mCustomFields.append( field ); 587 mCustomFields.append( field );
588 588
589 return field; 589 return field;
590} 590}