summaryrefslogtreecommitdiffabout
path: root/kabc
authorulf69 <ulf69>2004-07-15 15:15:52 (UTC)
committer ulf69 <ulf69>2004-07-15 15:15:52 (UTC)
commitec8315212b05c128c8d5650cf5daff2b1d6b84dd (patch) (unidiff)
treeae4ffd799c19caa18c1b0964783f915395769a24 /kabc
parent59f727076930aada485db6531d4084f2bfe0b928 (diff)
downloadkdepimpi-ec8315212b05c128c8d5650cf5daff2b1d6b84dd.zip
kdepimpi-ec8315212b05c128c8d5650cf5daff2b1d6b84dd.tar.gz
kdepimpi-ec8315212b05c128c8d5650cf5daff2b1d6b84dd.tar.bz2
resolved crash during import of opie and qtopia addressbooks
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/converter/qtopia/qtopiaconverter.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/kabc/converter/qtopia/qtopiaconverter.cpp b/kabc/converter/qtopia/qtopiaconverter.cpp
index f451b8b..498e89e 100644
--- a/kabc/converter/qtopia/qtopiaconverter.cpp
+++ b/kabc/converter/qtopia/qtopiaconverter.cpp
@@ -1,360 +1,360 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2002 Tobias Koenig <tokoe@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//US 28//US
29#include "kglobal.h" 29#include "kglobal.h"
30 30
31 31
32#include "qtopiaconverter.h" 32#include "qtopiaconverter.h"
33 33
34#include <qpe/categories.h> 34#include <qpe/categories.h>
35//US #include <qpe/categoryselect.h> 35//US #include <qpe/categoryselect.h>
36 36
37 37
38using namespace KABC; 38using namespace KABC;
39 39
40QtopiaConverter::QtopiaConverter() : catDB(0) 40QtopiaConverter::QtopiaConverter() : catDB(0)
41{ 41{
42} 42}
43 43
44QtopiaConverter::~QtopiaConverter() 44QtopiaConverter::~QtopiaConverter()
45{ 45{
46 deinit(); 46 deinit();
47} 47}
48 48
49bool QtopiaConverter::init() 49bool QtopiaConverter::init()
50{ 50{
51 catDB = new Categories(); 51 catDB = new Categories();
52 52
53 if (!catDB) 53 if (!catDB)
54 return false; 54 return false;
55 55
56 catDB->load( categoryFileName() ); 56 catDB->load( categoryFileName() );
57 return true; 57 return true;
58} 58}
59 59
60void QtopiaConverter::deinit() 60void QtopiaConverter::deinit()
61{ 61{
62 if (catDB) 62 if (catDB)
63 { 63 {
64 delete catDB; 64 delete catDB;
65 catDB = 0; 65 catDB = 0;
66 } 66 }
67} 67}
68 68
69bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &addr ) 69bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &addr )
70{ 70{
71 // name 71 // name
72 addr.setFormattedName(contact.fileAs()); 72 addr.setFormattedName(contact.fileAs());
73 addr.setFamilyName( contact.lastName() ); 73 addr.setFamilyName( contact.lastName() );
74 addr.setGivenName( contact.firstName() ); 74 addr.setGivenName( contact.firstName() );
75 addr.setAdditionalName( contact.middleName() ); 75 addr.setAdditionalName( contact.middleName() );
76 addr.setPrefix( contact.nameTitle() ); 76 addr.setPrefix( contact.nameTitle() );
77 addr.setSuffix( contact.suffix() ); 77 addr.setSuffix( contact.suffix() );
78 78
79 79
80 // email 80 // email
81 QStringList emails = contact.emailList(); 81 QStringList emails = contact.emailList();
82 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 82 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
83 addr.insertEmail( *it, ((*it) == contact.defaultEmail()) ); 83 addr.insertEmail( *it, ((*it) == contact.defaultEmail()) );
84 } 84 }
85 85
86 if (!contact.defaultEmail().isEmpty()) 86 if (!contact.defaultEmail().isEmpty())
87 addr.insertEmail(contact.defaultEmail(), true); 87 addr.insertEmail(contact.defaultEmail(), true);
88 88
89 // home 89 // home
90 if ((!contact.homeStreet().isEmpty()) || 90 if ((!contact.homeStreet().isEmpty()) ||
91 (!contact.homeCity().isEmpty()) || 91 (!contact.homeCity().isEmpty()) ||
92 (!contact.homeState().isEmpty()) || 92 (!contact.homeState().isEmpty()) ||
93 (!contact.homeZip().isEmpty()) || 93 (!contact.homeZip().isEmpty()) ||
94 (!contact.homeCountry().isEmpty())) 94 (!contact.homeCountry().isEmpty()))
95 { 95 {
96 Address homeaddress; 96 Address homeaddress;
97 homeaddress.setType(Address::Home); 97 homeaddress.setType(Address::Home);
98//US homeaddress.setPostOfficeBox( "" ); 98//US homeaddress.setPostOfficeBox( "" );
99//US homeaddress.setExtended( "" ); 99//US homeaddress.setExtended( "" );
100 homeaddress.setStreet( contact.homeStreet() ); 100 homeaddress.setStreet( contact.homeStreet() );
101 homeaddress.setLocality( contact.homeCity() ); 101 homeaddress.setLocality( contact.homeCity() );
102 homeaddress.setRegion( contact.homeState() ); 102 homeaddress.setRegion( contact.homeState() );
103 homeaddress.setPostalCode( contact.homeZip() ); 103 homeaddress.setPostalCode( contact.homeZip() );
104 homeaddress.setCountry( contact.homeCountry() ); 104 homeaddress.setCountry( contact.homeCountry() );
105 105
106 addr.insertAddress( homeaddress ); 106 addr.insertAddress( homeaddress );
107 } 107 }
108 108
109 if (!contact.homePhone().isEmpty()) 109 if (!contact.homePhone().isEmpty())
110 { 110 {
111 PhoneNumber homephone; 111 PhoneNumber homephone;
112 homephone.setType( PhoneNumber::Home ); 112 homephone.setType( PhoneNumber::Home );
113 homephone.setNumber( contact.homePhone() ); 113 homephone.setNumber( contact.homePhone() );
114 addr.insertPhoneNumber( homephone ); 114 addr.insertPhoneNumber( homephone );
115 } 115 }
116 116
117 if (!contact.homeFax().isEmpty()) 117 if (!contact.homeFax().isEmpty())
118 { 118 {
119 PhoneNumber homefax; 119 PhoneNumber homefax;
120 homefax.setType( PhoneNumber::Home | PhoneNumber::Fax ); 120 homefax.setType( PhoneNumber::Home | PhoneNumber::Fax );
121 homefax.setNumber( contact.homeFax() ); 121 homefax.setNumber( contact.homeFax() );
122 addr.insertPhoneNumber( homefax ); 122 addr.insertPhoneNumber( homefax );
123 } 123 }
124 124
125 if (!contact.homeMobile().isEmpty()) 125 if (!contact.homeMobile().isEmpty())
126 { 126 {
127 PhoneNumber homemobile; 127 PhoneNumber homemobile;
128 homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell ); 128 homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell );
129 homemobile.setNumber( contact.homeMobile() ); 129 homemobile.setNumber( contact.homeMobile() );
130 addr.insertPhoneNumber( homemobile ); 130 addr.insertPhoneNumber( homemobile );
131 } 131 }
132 132
133 addr.setUrl( contact.homeWebpage() ); 133 addr.setUrl( contact.homeWebpage() );
134 134
135 135
136 // business 136 // business
137 if ((!contact.businessStreet().isEmpty()) || 137 if ((!contact.businessStreet().isEmpty()) ||
138 (!contact.businessCity().isEmpty()) || 138 (!contact.businessCity().isEmpty()) ||
139 (!contact.businessState().isEmpty()) || 139 (!contact.businessState().isEmpty()) ||
140 (!contact.businessZip().isEmpty()) || 140 (!contact.businessZip().isEmpty()) ||
141 (!contact.businessCountry().isEmpty())) 141 (!contact.businessCountry().isEmpty()))
142 { 142 {
143 Address businessaddress; 143 Address businessaddress;
144 businessaddress.setType(Address::Work); 144 businessaddress.setType(Address::Work);
145//US businessaddress.setPostOfficeBox( "" ); 145//US businessaddress.setPostOfficeBox( "" );
146//US businessaddress.setExtended( "" ); 146//US businessaddress.setExtended( "" );
147 businessaddress.setStreet( contact.businessStreet() ); 147 businessaddress.setStreet( contact.businessStreet() );
148 businessaddress.setLocality( contact.businessCity() ); 148 businessaddress.setLocality( contact.businessCity() );
149 businessaddress.setRegion( contact.businessState() ); 149 businessaddress.setRegion( contact.businessState() );
150 businessaddress.setPostalCode( contact.businessZip() ); 150 businessaddress.setPostalCode( contact.businessZip() );
151 businessaddress.setCountry( contact.businessCountry() ); 151 businessaddress.setCountry( contact.businessCountry() );
152 152
153 addr.insertAddress( businessaddress ); 153 addr.insertAddress( businessaddress );
154 } 154 }
155 155
156 156
157 if (!contact.businessPhone().isEmpty()) 157 if (!contact.businessPhone().isEmpty())
158 { 158 {
159 PhoneNumber businessphone; 159 PhoneNumber businessphone;
160 businessphone.setType( PhoneNumber::Work ); 160 businessphone.setType( PhoneNumber::Work );
161 businessphone.setNumber( contact.businessPhone() ); 161 businessphone.setNumber( contact.businessPhone() );
162 addr.insertPhoneNumber( businessphone ); 162 addr.insertPhoneNumber( businessphone );
163 } 163 }
164 164
165 if (!contact.businessFax().isEmpty()) 165 if (!contact.businessFax().isEmpty())
166 { 166 {
167 PhoneNumber businessfax; 167 PhoneNumber businessfax;
168 businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax ); 168 businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax );
169 businessfax.setNumber( contact.businessFax() ); 169 businessfax.setNumber( contact.businessFax() );
170 addr.insertPhoneNumber( businessfax ); 170 addr.insertPhoneNumber( businessfax );
171 } 171 }
172 172
173 if (!contact.businessMobile().isEmpty()) 173 if (!contact.businessMobile().isEmpty())
174 { 174 {
175 PhoneNumber businessmobile; 175 PhoneNumber businessmobile;
176 businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell ); 176 businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell );
177 businessmobile.setNumber( contact.businessMobile() ); 177 businessmobile.setNumber( contact.businessMobile() );
178 addr.insertPhoneNumber( businessmobile ); 178 addr.insertPhoneNumber( businessmobile );
179 } 179 }
180 180
181 if (!contact.businessPager().isEmpty()) 181 if (!contact.businessPager().isEmpty())
182 { 182 {
183 PhoneNumber businesspager; 183 PhoneNumber businesspager;
184 businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager ); 184 businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager );
185 businesspager.setNumber( contact.businessPager() ); 185 businesspager.setNumber( contact.businessPager() );
186 addr.insertPhoneNumber( businesspager ); 186 addr.insertPhoneNumber( businesspager );
187 } 187 }
188 188
189 addr.setRole( contact.jobTitle() ); //? 189 addr.setRole( contact.jobTitle() ); //?
190 addr.setOrganization( contact.company() ); 190 addr.setOrganization( contact.company() );
191 addr.insertCustom( "KADDRESSBOOK", "X-Profession", contact.profession() ); 191 addr.insertCustom( "KADDRESSBOOK", "X-Profession", contact.profession() );
192 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", contact.assistant() ); 192 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", contact.assistant() );
193 addr.insertCustom( "KADDRESSBOOK", "X-Department", contact.department() ); 193 addr.insertCustom( "KADDRESSBOOK", "X-Department", contact.department() );
194 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", contact.manager() ); 194 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", contact.manager() );
195 addr.insertCustom( "KADDRESSBOOK", "X-Office", contact.office() ); 195 addr.insertCustom( "KADDRESSBOOK", "X-Office", contact.office() );
196 196
197 //personal 197 //personal
198 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", contact.spouse() ); 198 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", contact.spouse() );
199 // qtopia uses this categorization: 199 // qtopia uses this categorization:
200 // enum GenderType { UnspecifiedGender=0, Male, Female }; 200 // enum GenderType { UnspecifiedGender=0, Male, Female };
201 if (contact.gender() == PimContact::Male) 201 if (contact.gender() == PimContact::Male)
202 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); 202 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male");
203 else if (contact.gender() == PimContact::Female) 203 else if (contact.gender() == PimContact::Female)
204 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); 204 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female");
205 205
206 if (contact.anniversary().isValid()) { 206 if (contact.anniversary().isValid()) {
207 QString dt = KGlobal::locale()->formatDate(contact.anniversary(), true, KLocale::ISODate); 207 QString dt = KGlobal::locale()->formatDate(contact.anniversary(), true, KLocale::ISODate);
208//US 208//US
209 qDebug("OpieConverter::qtopiaToAddressee found:%s", dt.latin1()); 209// qDebug("QtopiaConverter::qtopiaToAddressee found:%s", dt.latin1());
210 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); 210 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt);
211 } 211 }
212 212
213 addr.insertCustom( "KADDRESSBOOK", "X-Children", contact.children() ); 213 addr.insertCustom( "KADDRESSBOOK", "X-Children", contact.children() );
214 if (contact.birthday().isValid()) 214 if (contact.birthday().isValid())
215 addr.setBirthday( contact.birthday() ); 215 addr.setBirthday( contact.birthday() );
216 216
217 addr.setNickName( contact.nickname() ); 217 addr.setNickName( contact.nickname() );
218 218
219 // others 219 // others
220 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. 220 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available.
221 QString notes = contact.notes(); 221 QString notes = contact.notes();
222 notes += "\nBusinessWebPage: " + contact.businessWebpage() + "\n"; 222 notes += "\nBusinessWebPage: " + contact.businessWebpage() + "\n";
223 223
224 addr.setNote( contact.notes() ); 224 addr.setNote( contact.notes() );
225 225
226 226
227 227
228//US QString groups() const { return find( Qtopia::Groups ); } 228//US QString groups() const { return find( Qtopia::Groups ); }
229//US QStringList groupList() const; 229//US QStringList groupList() const;
230 230
231 QArray<int> catArray = contact.categories(); 231 QArray<int> catArray = contact.categories();
232 QString cat; 232 QString cat;
233 233
234 for ( unsigned int i=0; i < catArray.size(); i++ ) { 234 for ( unsigned int i=0; i < catArray.size(); i++ ) {
235 cat = catDB->label("contact", catArray[i]); 235 cat = catDB->label("contact", catArray[i]);
236 if ( !cat.isEmpty() ) 236 if ( !cat.isEmpty() )
237 addr.insertCategory( cat ); 237 addr.insertCategory( cat );
238 } 238 }
239 239
240 return true; 240 return true;
241} 241}
242 242
243bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &contact ) 243bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &contact )
244{ 244{
245 // name 245 // name
246 contact.setLastName(addr.familyName()); 246 contact.setLastName(addr.familyName());
247 contact.setFirstName(addr.givenName()); 247 contact.setFirstName(addr.givenName());
248 contact.setMiddleName(addr.additionalName()); 248 contact.setMiddleName(addr.additionalName());
249 contact.setNameTitle(addr.prefix()); 249 contact.setNameTitle(addr.prefix());
250 contact.setSuffix(addr.suffix()); 250 contact.setSuffix(addr.suffix());
251 contact.setFileAs(); 251 contact.setFileAs();
252 252
253 253
254 // email 254 // email
255 QStringList emails = addr.emails(); 255 QStringList emails = addr.emails();
256 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 256 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
257 contact.insertEmail(*it); 257 contact.insertEmail(*it);
258 } 258 }
259 contact.setDefaultEmail( addr.preferredEmail() ); 259 contact.setDefaultEmail( addr.preferredEmail() );
260 260
261 261
262 // home 262 // home
263 const Address homeaddress = addr.address(Address::Home); 263 const Address homeaddress = addr.address(Address::Home);
264 if (!homeaddress.isEmpty()) { 264 if (!homeaddress.isEmpty()) {
265 contact.setHomeStreet(homeaddress.street()); 265 contact.setHomeStreet(homeaddress.street());
266 contact.setHomeCity(homeaddress.locality()); 266 contact.setHomeCity(homeaddress.locality());
267 contact.setHomeState(homeaddress.region()); 267 contact.setHomeState(homeaddress.region());
268 contact.setHomeZip(homeaddress.postalCode()); 268 contact.setHomeZip(homeaddress.postalCode());
269 contact.setHomeCountry(homeaddress.country()); 269 contact.setHomeCountry(homeaddress.country());
270 } 270 }
271 271
272 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); 272 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home );
273 if (!homephone.number().isEmpty()) 273 if (!homephone.number().isEmpty())
274 contact.setHomePhone(homephone.number()); 274 contact.setHomePhone(homephone.number());
275 275
276 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); 276 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax );
277 if (!homefax.number().isEmpty()) 277 if (!homefax.number().isEmpty())
278 contact.setHomeFax(homefax.number()); 278 contact.setHomeFax(homefax.number());
279 279
280 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); 280 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell );
281 if (!homemobile.number().isEmpty()) 281 if (!homemobile.number().isEmpty())
282 contact.setHomeMobile(homemobile.number()); 282 contact.setHomeMobile(homemobile.number());
283 283
284 contact.setHomeWebpage(addr.url().url()); 284 contact.setHomeWebpage(addr.url().url());
285 285
286 286
287 // business 287 // business
288 const Address businessaddress = addr.address(Address::Work); 288 const Address businessaddress = addr.address(Address::Work);
289 if (!businessaddress.isEmpty()) { 289 if (!businessaddress.isEmpty()) {
290 contact.setBusinessStreet(businessaddress.street()); 290 contact.setBusinessStreet(businessaddress.street());
291 contact.setBusinessCity(businessaddress.locality()); 291 contact.setBusinessCity(businessaddress.locality());
292 contact.setBusinessState(businessaddress.region()); 292 contact.setBusinessState(businessaddress.region());
293 contact.setBusinessZip(businessaddress.postalCode()); 293 contact.setBusinessZip(businessaddress.postalCode());
294 contact.setBusinessCountry(businessaddress.country()); 294 contact.setBusinessCountry(businessaddress.country());
295 } 295 }
296 296
297 PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); 297 PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work );
298 if (!businessphone.number().isEmpty()) 298 if (!businessphone.number().isEmpty())
299 contact.setBusinessPhone(businessphone.number()); 299 contact.setBusinessPhone(businessphone.number());
300 300
301 PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); 301 PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax );
302 if (!businessfax.number().isEmpty()) 302 if (!businessfax.number().isEmpty())
303 contact.setBusinessFax(businessfax.number()); 303 contact.setBusinessFax(businessfax.number());
304 304
305 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); 305 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell );
306 if (!businessmobile.number().isEmpty()) 306 if (!businessmobile.number().isEmpty())
307 contact.setBusinessMobile(businessmobile.number()); 307 contact.setBusinessMobile(businessmobile.number());
308 308
309 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); 309 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager );
310 if (!businesspager.number().isEmpty()) 310 if (!businesspager.number().isEmpty())
311 contact.setBusinessPager(businesspager.number()); 311 contact.setBusinessPager(businesspager.number());
312 312
313 contact.setJobTitle(addr.role()); 313 contact.setJobTitle(addr.role());
314 contact.setCompany(addr.organization()); 314 contact.setCompany(addr.organization());
315 315
316 contact.setProfession(addr.custom( "KADDRESSBOOK", "X-Profession" )); 316 contact.setProfession(addr.custom( "KADDRESSBOOK", "X-Profession" ));
317 contact.setAssistant(addr.custom( "KADDRESSBOOK", "X-AssistantsName" )); 317 contact.setAssistant(addr.custom( "KADDRESSBOOK", "X-AssistantsName" ));
318 contact.setDepartment(addr.custom( "KADDRESSBOOK", "X-Department" )); 318 contact.setDepartment(addr.custom( "KADDRESSBOOK", "X-Department" ));
319 contact.setManager(addr.custom( "KADDRESSBOOK", "X-ManagersName" )); 319 contact.setManager(addr.custom( "KADDRESSBOOK", "X-ManagersName" ));
320 contact.setOffice(addr.custom( "KADDRESSBOOK", "X-Office" )); 320 contact.setOffice(addr.custom( "KADDRESSBOOK", "X-Office" ));
321 321
322 //personal 322 //personal
323 contact.setSpouse(addr.custom( "KADDRESSBOOK", "X-Spouse" )); 323 contact.setSpouse(addr.custom( "KADDRESSBOOK", "X-Spouse" ));
324 // qtopia uses this categorization: 324 // qtopia uses this categorization:
325 // enum GenderType { UnspecifiedGender=0, Male, Female }; 325 // enum GenderType { UnspecifiedGender=0, Male, Female };
326 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" ); 326 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" );
327 if (gt = "male") 327 if (gt = "male")
328 contact.setGender(PimContact::Male); 328 contact.setGender(PimContact::Male);
329 else if (gt = "female") 329 else if (gt = "female")
330 contact.setGender(PimContact::Female); 330 contact.setGender(PimContact::Female);
331 else 331 else
332 contact.setGender(PimContact::UnspecifiedGender); 332 contact.setGender(PimContact::UnspecifiedGender);
333 333
334 334
335 QDate dt = KGlobal::locale()->readDate( 335 QDate dt = KGlobal::locale()->readDate(
336 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate 336 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
337 contact.setAnniversary( dt ); 337 contact.setAnniversary( dt );
338 338
339 contact.setChildren(addr.custom( "KADDRESSBOOK", "X-Children" )); 339 contact.setChildren(addr.custom( "KADDRESSBOOK", "X-Children" ));
340 340
341 contact.setBirthday(addr.birthday().date()); 341 contact.setBirthday(addr.birthday().date());
342 contact.setNickname(addr.nickName()); 342 contact.setNickname(addr.nickName());
343 343
344 // other 344 // other
345 contact.setNotes(addr.note()); 345 contact.setNotes(addr.note());
346 346
347//US QString groups() const { return find( Qtopia::Groups ); } 347//US QString groups() const { return find( Qtopia::Groups ); }
348//US QStringList groupList() const; 348//US QStringList groupList() const;
349 349
350 350
351 QStringList cats = addr.categories(); 351 QStringList cats = addr.categories();
352 352
353 QArray<int> iar; 353 QArray<int> iar;
354 if ( !cats.isEmpty() ) { 354 if ( !cats.isEmpty() ) {
355 QArray<int> iar = catDB->ids("contact", cats); 355 QArray<int> iar = catDB->ids("contact", cats);
356 contact.setCategories(iar); 356 contact.setCategories(iar);
357 } 357 }
358 358
359 return true; 359 return true;
360} 360}