-rw-r--r-- | kaddressbook/kabcore.cpp | 28 | ||||
-rw-r--r-- | kaddressbook/kaimportoldialog.cpp | 8 | ||||
-rw-r--r-- | kaddressbook/undocmds.cpp | 3 |
3 files changed, 33 insertions, 6 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index f4263c4..1a34e4d 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -114,8 +114,9 @@ #include "kaimportoldialog.h" #endif +bool pasteWithNewUid = true; #ifdef KAB_EMBEDDED KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), @@ -397,9 +398,13 @@ void KABCore::createAboutData() "Mike Pilone GUI and framework redesign mpilone@slac.com\n" "Greg Stern DCOP interface\n" "Mark Westcot Contact pinning\n" "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" - "Steffen Hansen LDAP Lookup hansen@kde.org\n" ); + "Steffen Hansen LDAP Lookup hansen@kde.org\n" +#ifdef _WIN32_ + "(c) 2004 Lutz Rogowski Import from OL rogowski@kde.org\n" +#endif + ); } void KABCore::setContactSelected( const QString &uid ) { @@ -853,10 +858,27 @@ void KABCore::importFromOL() #ifdef _WIN32_ KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); idgl->exec(); KABC::Addressee::List list = idgl->getAddressList(); - if ( list.count() > 0 ) - pasteContacts( list ); + if ( list.count() > 0 ) { + KABC::Addressee::List listNew; + KABC::Addressee::List listExisting; + KABC::Addressee::List::Iterator it; + KABC::AddressBook::Iterator iter; + for ( it = list.begin(); it != list.end(); ++it ) { + if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) + listNew.append( (*it) ); + else + listExisting.append( (*it) ); + } + if ( listExisting.count() > 0 ) + KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); + if ( listNew.count() > 0 ) { + pasteWithNewUid = false; + pasteContacts( listNew ); + pasteWithNewUid = true; + } + } delete idgl; #endif } diff --git a/kaddressbook/kaimportoldialog.cpp b/kaddressbook/kaimportoldialog.cpp index 5e7d7c4..ef949e7 100644 --- a/kaddressbook/kaimportoldialog.cpp +++ b/kaddressbook/kaimportoldialog.cpp @@ -247,9 +247,9 @@ void KAImportOLdialog::ol2kapiContact( _ContactItem * aItem ) { KABC::Addressee addressee; addressee.setUid( QString::fromUcs2(aItem->GetEntryID().GetBuffer())); - + //GetLastModificationTime() //addressee.setName( const QString &name ); //addressee.setFormattedName( const QString &formattedName ); addressee.setFamilyName( QString::fromUcs2(aItem->GetLastName().GetBuffer()) ); addressee.setGivenName( QString::fromUcs2(aItem->GetFirstName().GetBuffer()) ); @@ -628,8 +628,12 @@ bool KAImportOLdialog::addAddressee( KABC::Addressee a ) add = false; break; } } - if ( add ) + if ( add ) { + if ( mABook->findByUid(a.uid() ).isEmpty()) mAList.append ( a ); + else + add = false; + } return add; } diff --git a/kaddressbook/undocmds.cpp b/kaddressbook/undocmds.cpp index 5fbeec3..5807dc0 100644 --- a/kaddressbook/undocmds.cpp +++ b/kaddressbook/undocmds.cpp @@ -35,9 +35,9 @@ #include "addresseeconfig.h" #include "kabcore.h" #include "undocmds.h" - +extern bool pasteWithNewUid; ///////////////////////////////// // PwDelete Methods PwDeleteCommand::PwDeleteCommand(KABC::AddressBook *doc, @@ -111,8 +111,9 @@ void PwPasteCommand::redo() for ( it = mAddresseeList.begin(); it != mAddresseeList.end(); ++it ) { /* we have to set a new uid for the contact, otherwise insertAddressee() ignore it. */ + if ( pasteWithNewUid ) (*it).setUid( KApplication::randomString( 10 ) ); uids.append( (*it).uid() ); mCore->addressBook()->insertAddressee( *it ); } |