void KMail::FolderDialogACLTab::ListViewItem::save( ACLList& aclList, KABC::AddressBook* addressBook, IMAPUserIdFormat userIdFormat ) { // expand distribution lists KABC::DistributionList* list = addressBook->findDistributionListByName( userId(), Qt::CaseInsensitive ); if ( list ) { Q_ASSERT( mModified ); // it has to be new, it couldn't be stored as a distr list name.... KABC::DistributionList::Entry::List entryList = list->entries(); KABC::DistributionList::Entry::List::ConstIterator it; // nice number of "::"! for( it = entryList.constBegin(); it != entryList.constEnd(); ++it ) { QString email = (*it).email(); if ( email.isEmpty() ) email = addresseeToUserId( (*it).addressee(), userIdFormat ); ACLListEntry entry( email, QString(), mPermissions ); entry.changed = true; aclList.append( entry ); } } else { // it wasn't a distribution list ACLListEntry entry( userId(), mInternalRightsList, mPermissions ); if ( mModified ) { entry.internalRightsList.clear(); entry.changed = true; } aclList.append( entry ); } }
KABC::Addressee::List AddressesDialog::allToAddressesNoDuplicates() const { KABC::Addressee::List aList = allAddressee( d->toItem ); const QStringList dList = toDistributionLists(); KABC::AddressBook* abook = KABC::StdAddressBook::self( true ); for ( QStringList::ConstIterator it = dList.constBegin(); it != dList.constEnd(); ++it ) { const KABC::DistributionList *list = abook->findDistributionListByName( *it ); if ( !list ) continue; const KABC::DistributionList::Entry::List eList = list->entries(); KABC::DistributionList::Entry::List::ConstIterator eit; for( eit = eList.constBegin(); eit != eList.constEnd(); ++eit ) { KABC::Addressee a = (*eit).addressee(); if ( !a.preferredEmail().isEmpty() && !aList.contains( a ) ) { aList.append( a ) ; } } } return aList; }