summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/converter/qtopia/qtopiaconverter.cpp98
1 files changed, 50 insertions, 48 deletions
diff --git a/kabc/converter/qtopia/qtopiaconverter.cpp b/kabc/converter/qtopia/qtopiaconverter.cpp
index 498e89e..ac513b6 100644
--- a/kabc/converter/qtopia/qtopiaconverter.cpp
+++ b/kabc/converter/qtopia/qtopiaconverter.cpp
@@ -49,23 +49,23 @@ QtopiaConverter::~QtopiaConverter()
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
@@ -75,17 +75,17 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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()) ||
@@ -102,10 +102,10 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -113,7 +113,7 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -121,7 +121,7 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -129,9 +129,9 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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()) ||
@@ -149,11 +149,11 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -161,7 +161,7 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -169,7 +169,7 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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;
@@ -185,7 +185,7 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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() );
@@ -202,41 +202,43 @@ bool QtopiaConverter::qtopiaToAddressee( const PimContact &contact, Addressee &a
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("QtopiaConverter::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(QString::number(catArray[i]));
238 else
237 addr.insertCategory( cat ); 239 addr.insertCategory( cat );
238 } 240 }
239 241
240 return true; 242 return true;
241} 243}
242 244
@@ -249,15 +251,15 @@ bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &cont
249 contact.setNameTitle(addr.prefix()); 251 contact.setNameTitle(addr.prefix());
250 contact.setSuffix(addr.suffix()); 252 contact.setSuffix(addr.suffix());
251 contact.setFileAs(); 253 contact.setFileAs();
252 254
253 255
254 // email 256 // email
255 QStringList emails = addr.emails(); 257 QStringList emails = addr.emails();
256 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 258 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
257 contact.insertEmail(*it); 259 contact.insertEmail(*it);
258 } 260 }
259 contact.setDefaultEmail( addr.preferredEmail() ); 261 contact.setDefaultEmail( addr.preferredEmail() );
260 262
261 263
262 // home 264 // home
263 const Address homeaddress = addr.address(Address::Home); 265 const Address homeaddress = addr.address(Address::Home);
@@ -272,17 +274,17 @@ bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &cont
272 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); 274 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home );
273 if (!homephone.number().isEmpty()) 275 if (!homephone.number().isEmpty())
274 contact.setHomePhone(homephone.number()); 276 contact.setHomePhone(homephone.number());
275 277
276 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); 278 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax );
277 if (!homefax.number().isEmpty()) 279 if (!homefax.number().isEmpty())
278 contact.setHomeFax(homefax.number()); 280 contact.setHomeFax(homefax.number());
279 281
280 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); 282 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell );
281 if (!homemobile.number().isEmpty()) 283 if (!homemobile.number().isEmpty())
282 contact.setHomeMobile(homemobile.number()); 284 contact.setHomeMobile(homemobile.number());
283 285
284 contact.setHomeWebpage(addr.url().url()); 286 contact.setHomeWebpage(addr.url().url());
285 287
286 288
287 // business 289 // business
288 const Address businessaddress = addr.address(Address::Work); 290 const Address businessaddress = addr.address(Address::Work);
@@ -297,15 +299,15 @@ bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &cont
297 PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); 299 PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work );
298 if (!businessphone.number().isEmpty()) 300 if (!businessphone.number().isEmpty())
299 contact.setBusinessPhone(businessphone.number()); 301 contact.setBusinessPhone(businessphone.number());
300 302
301 PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); 303 PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax );
302 if (!businessfax.number().isEmpty()) 304 if (!businessfax.number().isEmpty())
303 contact.setBusinessFax(businessfax.number()); 305 contact.setBusinessFax(businessfax.number());
304 306
305 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); 307 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell );
306 if (!businessmobile.number().isEmpty()) 308 if (!businessmobile.number().isEmpty())
307 contact.setBusinessMobile(businessmobile.number()); 309 contact.setBusinessMobile(businessmobile.number());
308 310
309 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); 311 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager );
310 if (!businesspager.number().isEmpty()) 312 if (!businesspager.number().isEmpty())
311 contact.setBusinessPager(businesspager.number()); 313 contact.setBusinessPager(businesspager.number());
@@ -331,30 +333,30 @@ bool QtopiaConverter::addresseeToQtopia( const Addressee &addr, PimContact &cont
331 else 333 else
332 contact.setGender(PimContact::UnspecifiedGender); 334 contact.setGender(PimContact::UnspecifiedGender);
333 335
334 336
335 QDate dt = KGlobal::locale()->readDate( 337 QDate dt = KGlobal::locale()->readDate(
336 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate 338 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
337 contact.setAnniversary( dt ); 339 contact.setAnniversary( dt );
338 340
339 contact.setChildren(addr.custom( "KADDRESSBOOK", "X-Children" )); 341 contact.setChildren(addr.custom( "KADDRESSBOOK", "X-Children" ));
340 342
341 contact.setBirthday(addr.birthday().date()); 343 contact.setBirthday(addr.birthday().date());
342 contact.setNickname(addr.nickName()); 344 contact.setNickname(addr.nickName());
343 345
344 // other 346 // other
345 contact.setNotes(addr.note()); 347 contact.setNotes(addr.note());
346 348
347//US QString groups() const { return find( Qtopia::Groups ); } 349//US QString groups() const { return find( Qtopia::Groups ); }
348//US QStringList groupList() const; 350//US QStringList groupList() const;
349 351
350 352
351 QStringList cats = addr.categories(); 353 QStringList cats = addr.categories();
352 354
353 QArray<int> iar; 355 QArray<int> iar;
354 if ( !cats.isEmpty() ) { 356 if ( !cats.isEmpty() ) {
355 QArray<int> iar = catDB->ids("contact", cats); 357 QArray<int> iar = catDB->ids("contact", cats);
356 contact.setCategories(iar); 358 contact.setCategories(iar);
357 } 359 }
358 360
359 return true; 361 return true;
360} 362}