Prevent duplicated entries.

svn path=/trunk/kdepim/; revision=380851
wilder-work
Cornelius Schumacher 21 years ago
parent 0da969ff03
commit c2fa0c642b
  1. 15
      recipientspicker.cpp
  2. 7
      recipientspicker.h

@ -47,6 +47,8 @@ void RecipientItem::setDistributionList( KABC::DistributionList *list )
mDistributionList = list;
mIcon = KGlobal::iconLoader()->loadIcon( "kdmconfig", KIcon::Small );
mKey = "D" + list->name();
}
void RecipientItem::setAddressee( const KABC::Addressee &a )
@ -58,6 +60,8 @@ void RecipientItem::setAddressee( const KABC::Addressee &a )
mIcon = img.smoothScale( 20, 20, QImage::ScaleMin );
else
mIcon = KGlobal::iconLoader()->loadIcon( "personal", KIcon::Small );
mKey = "A" + a.preferredEmail();
}
QPixmap RecipientItem::icon() const
@ -134,6 +138,8 @@ QString RecipientsCollection::title() const
void RecipientsCollection::addItem( RecipientItem *item )
{
mItems.append( item );
mKeyMap.insert( item->key(), item );
}
RecipientItem::List RecipientsCollection::items() const
@ -141,6 +147,11 @@ RecipientItem::List RecipientsCollection::items() const
return mItems;
}
bool RecipientsCollection::hasEquivalentItem( RecipientItem *item ) const
{
return mKeyMap.find( item->key() ) != mKeyMap.end();
}
SearchLine::SearchLine( QWidget *parent, KListView *listView )
: KListViewSearchLine( parent, listView )
@ -334,7 +345,9 @@ void RecipientsPicker::insertRecentAddresses()
for( it = recents.begin(); it != recents.end(); ++it ) {
RecipientItem *item = new RecipientItem;
item->setAddressee( *it );
mAllRecipients->addItem( item );
if ( !mAllRecipients->hasEquivalentItem( item ) ) {
mAllRecipients->addItem( item );
}
collection->addItem( item );
}

@ -55,12 +55,16 @@ class RecipientItem
QString name() const;
QString email() const;
QString key() const { return mKey; }
private:
KABC::Addressee mAddressee;
KABC::DistributionList *mDistributionList;
QString mType;
QPixmap mIcon;
QString mKey;
};
class RecipientViewItem : public KListViewItem
@ -86,9 +90,12 @@ class RecipientsCollection
RecipientItem::List items() const;
bool hasEquivalentItem( RecipientItem * ) const;
private:
QString mTitle;
RecipientItem::List mItems;
QMap<QString, RecipientItem *> mKeyMap;
};
class SearchLine : public KListViewSearchLine

Loading…
Cancel
Save