summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koimportoldialog.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/korganizer/koimportoldialog.cpp b/korganizer/koimportoldialog.cpp
index 16f2eca..0a3c2d5 100644
--- a/korganizer/koimportoldialog.cpp
+++ b/korganizer/koimportoldialog.cpp
@@ -394,84 +394,92 @@ void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRe
394 mf.m_lpDispatch->AddRef(); 394 mf.m_lpDispatch->AddRef();
395 _variant_t indx((long)0); 395 _variant_t indx((long)0);
396 LPDISPATCH itm; 396 LPDISPATCH itm;
397 int i; 397 int i;
398 QString optAtt = QString::fromUcs2( aItem->GetOptionalAttendees().GetBuffer()); 398 QString optAtt = QString::fromUcs2( aItem->GetOptionalAttendees().GetBuffer());
399 QString reqAtt = QString::fromUcs2( aItem->GetRequiredAttendees().GetBuffer()); 399 QString reqAtt = QString::fromUcs2( aItem->GetRequiredAttendees().GetBuffer());
400 //GetRequiredAttendees() 400 //GetRequiredAttendees()
401 for(i=1; i <= mf.GetCount(); ++i) { 401 for(i=1; i <= mf.GetCount(); ++i) {
402 indx = (long)i; 402 indx = (long)i;
403 itm = mf.Item( indx.Detach() ); 403 itm = mf.Item( indx.Detach() );
404 Recipient * pItem = (Recipient *)&itm; 404 Recipient * pItem = (Recipient *)&itm;
405 405
406 //a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 406 //a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
407 QString name = QString::fromUcs2( pItem->GetName().GetBuffer()); 407 QString name = QString::fromUcs2( pItem->GetName().GetBuffer());
408 KCal::Attendee::PartStat stat; 408 KCal::Attendee::PartStat stat;
409 bool rsvp = false; 409 bool rsvp = false;
410 switch ( pItem->GetMeetingResponseStatus() ) { 410 switch ( pItem->GetMeetingResponseStatus() ) {
411 case 0: //not answered 411 case 0: //not answered
412 rsvp = true; 412 rsvp = true;
413 case 5: //not answered 413 case 5: //not answered
414 stat = Attendee::NeedsAction; 414 stat = Attendee::NeedsAction;
415 break; 415 break;
416 case 1: //organizer 416 case 1: //organizer
417 stat = Attendee::Delegated ; 417 stat = Attendee::Delegated ;
418 break; 418 break;
419 case 2: //tentative 419 case 2: //tentative
420 stat = Attendee::Tentative ; 420 stat = Attendee::Tentative ;
421 break; 421 break;
422 case 3: //accepted 422 case 3: //accepted
423 stat = Attendee::Accepted; 423 stat = Attendee::Accepted;
424 break; 424 break;
425 case 4: //declined 425 case 4: //declined
426 stat =Attendee::Declined ; 426 stat =Attendee::Declined ;
427 break; 427 break;
428 default: 428 default:
429 stat = Attendee::NeedsAction ; 429 stat = Attendee::NeedsAction ;
430 430
431 } 431 }
432 KCal::Attendee::Role role; 432 KCal::Attendee::Role role;
433 if ( event->organizer() == name ) 433 if ( event->organizer() == name )
434 role = KCal::Attendee::Chair; 434 role = KCal::Attendee::Chair;
435 else if ( reqAtt.find( name ) >= 0 ) 435 else if ( reqAtt.find( name ) >= 0 )
436 role = KCal::Attendee::ReqParticipant; 436 role = KCal::Attendee::ReqParticipant;
437 else if ( optAtt.find( name ) >= 0 ) 437 else if ( optAtt.find( name ) >= 0 )
438 role = KCal::Attendee::OptParticipant; 438 role = KCal::Attendee::OptParticipant;
439 else 439 else
440 role = KCal::Attendee::NonParticipant; 440 role = KCal::Attendee::NonParticipant;
441 QString mail = QString::fromUcs2(pItem->GetAddress().GetBuffer()); 441 QString mail = QString::fromUcs2(pItem->GetAddress().GetBuffer());
442 if( mail.isEmpty() && name.find("@") > 0 ) 442 if( mail.isEmpty() && name.find("@") > 0 ) {
443 mail = name; 443 int kl = name.find("<");
444 int gr = name.find(">");
445 if ( kl >= 0 && gr >= 0) {
446 mail = name.mid (kl+1, gr - kl -1);
447 name = name.left( kl );
448 }
449 else
450 mail = name;
451 }
444 mail = mail.stripWhiteSpace(); 452 mail = mail.stripWhiteSpace();
445 453
446 QString uid = getUidByEmail( mail ); 454 QString uid = getUidByEmail( mail );
447 //uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer()); 455 //uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer());
448 KCal::Attendee * a = new KCal::Attendee( name, mail,rsvp,stat,role,uid) ; 456 KCal::Attendee * a = new KCal::Attendee( name, mail,rsvp,stat,role,uid) ;
449 event->addAttendee( a , false ); 457 event->addAttendee( a , false );
450 itm->Release(); 458 itm->Release();
451 } 459 }
452 460
453 461
454 if ( !mCalendar->addEventNoDup( event )) 462 if ( !mCalendar->addEventNoDup( event ))
455 delete event; 463 delete event;
456 else { 464 else {
457 // QString mes = i18n("Importing %1.\n date: %2 date: %3").arg( event->summary()).arg( event->dtStart().toString()).arg( event->dtEnd().toString()); 465 // QString mes = i18n("Importing %1.\n date: %2 date: %3").arg( event->summary()).arg( event->dtStart().toString()).arg( event->dtEnd().toString());
458 //KMessageBox::information(this,mes); 466 //KMessageBox::information(this,mes);
459 ++importedItems; 467 ++importedItems;
460 } 468 }
461} 469}
462void KOImportOLdialog::slotCancel() 470void KOImportOLdialog::slotCancel()
463{ 471{
464 reject(); 472 reject();
465} 473}
466 474
467QString KOImportOLdialog::getUidByEmail( QString email ) 475QString KOImportOLdialog::getUidByEmail( QString email )
468{ 476{
469 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 477 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
470 KABC::AddressBook::Iterator it; 478 KABC::AddressBook::Iterator it;
471 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 479 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
472 QStringList em = (*it).emails(); 480 QStringList em = (*it).emails();
473 if ( em.contains( email )) 481 if ( em.contains( email ))
474 return (*it).uid(); 482 return (*it).uid();
475 } 483 }
476 return ""; 484 return "";
477} 485}