summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koimportoldialog.cpp21
-rw-r--r--korganizer/koimportoldialog.h1
2 files changed, 17 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
@@ -43,12 +43,13 @@
#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"
@@ -437,18 +438,16 @@ void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRe
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();
}
@@ -461,6 +460,18 @@ void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRe
}
}
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 "";
+}
diff --git a/korganizer/koimportoldialog.h b/korganizer/koimportoldialog.h
index f6a753d..c8847c5 100644
--- a/korganizer/koimportoldialog.h
+++ b/korganizer/koimportoldialog.h
@@ -70,12 +70,13 @@ class KOImportOLdialog : public KDialogBase
void addFolder(OLEListViewItem* iParent, LPDISPATCH dispParent);
void readCalendarData( DWORD folder );
void ol2kopiCalendar( _AppointmentItem * , bool computeRecurrence = true );
Calendar *mCalendar;
QListView * mListView;
+ QString getUidByEmail( QString email );
private:
int importedItems;
};
#endif