------------------------------------------------------------------------
r516198 | onurf | 2006-03-06 10:32:21 +0100 (Mo, 06 Mär 2006) | 5 lines

Fix bug #122218 where a shift-select in a filtered recipients picker results in non-visible contacts to be added as recipients as well.

BUG: 122218


------------------------------------------------------------------------
Index: kmail/recipientspicker.cpp
===================================================================
--- kmail/recipientspicker.cpp	(Revision 516197)
+++ kmail/recipientspicker.cpp	(Revision 516198)
@@ -613,13 +613,11 @@ void RecipientsPicker::pick( Recipient::
   kdDebug() << "RecipientsPicker::pick " << int( type ) << endl;
 
   int count = 0;
-  QListViewItem *viewItem;
-  for( viewItem = mRecipientList->firstChild(); viewItem;
-       viewItem = viewItem->nextSibling() ) {
-    if ( viewItem->isSelected() ) {
+  QListViewItemIterator it( mRecipientList , 
+            QListViewItemIterator::Visible | QListViewItemIterator::Selected );
+  for ( ; it.current(); ++it )
       ++count;
-    }
-  }
+
   if ( count > GlobalSettings::self()->maximumRecipients() ) {
     KMessageBox::sorry( this,
         i18n("You selected 1 recipient. The maximum supported number of "
@@ -630,16 +628,15 @@ void RecipientsPicker::pick( Recipient::
     return;
   }
 
- for( viewItem = mRecipientList->firstChild(); viewItem;
-       viewItem = viewItem->nextSibling() ) {
-    if ( viewItem->isSelected() ) {
-      RecipientViewItem *item = static_cast<RecipientViewItem *>( viewItem );
-      if ( item ) {
-        RecipientItem *i = item->recipientItem();
-        Recipient r = i->recipient();
-        r.setType( type );
-        emit pickedRecipient( r );
-      }
+  it = QListViewItemIterator( mRecipientList , 
+            QListViewItemIterator::Visible | QListViewItemIterator::Selected );
+  for ( ; it.current(); ++it ) {
+    RecipientViewItem *item = static_cast<RecipientViewItem *>( it.current() );
+    if ( item ) {
+      RecipientItem *i = item->recipientItem();
+      Recipient r = i->recipient();
+      r.setType( type );
+      emit pickedRecipient( r );
     }
   }
   close();
