Diffstat (limited to 'korganizer/koimportoldialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | korganizer/koimportoldialog.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/korganizer/koimportoldialog.cpp b/korganizer/koimportoldialog.cpp index 36363e5..16f2eca 100644 --- a/korganizer/koimportoldialog.cpp +++ b/korganizer/koimportoldialog.cpp @@ -37,24 +37,25 @@ #include <kdebug.h> #include <klocale.h> #include <kstandarddirs.h> #include <kmessagebox.h> #include <kfiledialog.h> #include <libkdepim/categoryselectdialog.h> #include <libkdepim/kinputdialog.h> #include <libkcal/calendarlocal.h> #include <libkcal/icalformat.h> +#include <kabc/stdaddressbook.h> #include "koprefs.h" #include "koglobals.h" #include "koimportoldialog.h" #include "../outport/msoutl9.h" #include <ole2.h> #include <comutil.h> _Application gOlApp; QDateTime mDdate2Qdtr( DATE dt) @@ -431,36 +432,46 @@ void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRe KCal::Attendee::Role role; if ( event->organizer() == name ) role = KCal::Attendee::Chair; else if ( reqAtt.find( name ) >= 0 ) role = KCal::Attendee::ReqParticipant; else if ( optAtt.find( name ) >= 0 ) role = KCal::Attendee::OptParticipant; else role = KCal::Attendee::NonParticipant; QString mail = QString::fromUcs2(pItem->GetAddress().GetBuffer()); if( mail.isEmpty() && name.find("@") > 0 ) mail = name; - QString uid; - if ( mail.isEmpty() ) - uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer()); - else - uid = mail; mail = mail.stripWhiteSpace(); + + QString uid = getUidByEmail( mail ); + //uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer()); KCal::Attendee * a = new KCal::Attendee( name, mail,rsvp,stat,role,uid) ; event->addAttendee( a , false ); itm->Release(); } if ( !mCalendar->addEventNoDup( event )) delete event; else { // QString mes = i18n("Importing %1.\n date: %2 date: %3").arg( event->summary()).arg( event->dtStart().toString()).arg( event->dtEnd().toString()); //KMessageBox::information(this,mes); ++importedItems; } } void KOImportOLdialog::slotCancel() { reject(); } + +QString KOImportOLdialog::getUidByEmail( QString email ) +{ + KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); + KABC::AddressBook::Iterator it; + for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { + QStringList em = (*it).emails(); + if ( em.contains( email )) + return (*it).uid(); + } + return ""; +} |