[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/3.5/kdepim/kmail
From:       Bram Schoenmakers <bramschoenmakers () kde ! nl>
Date:       2006-01-13 19:38:23
Message-ID: 1137181103.579180.28222.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 497767 by bram:

Fix bug 117118: composer kaddressbook no adresses at first launch

Update the list again once the resource is loaded.

BUG:117118



 M  +23 -15    recipientspicker.cpp  
 M  +7 -1      recipientspicker.h  


--- branches/KDE/3.5/kdepim/kmail/recipientspicker.cpp #497766:497767
@@ -27,7 +27,6 @@
 
 #include <klistview.h>
 #include <klocale.h>
-#include <kabc/stdaddressbook.h>
 #include <kabc/resource.h>
 #include <kiconloader.h>
 #include <kdialog.h>
@@ -324,6 +323,13 @@
   buttonLayout->addWidget( closeButton );
   connect( closeButton, SIGNAL( clicked() ), SLOT( close() ) );
 
+  {
+    using namespace KABC;
+    mAddressBook = KABC::StdAddressBook::self( true );
+    connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
+             this, SLOT( insertAddressBook( AddressBook * ) ) );
+  }
+
   initCollections();
 
   mCollectionCombo->setCurrentItem( 0 );
@@ -355,8 +361,21 @@
 
 void RecipientsPicker::initCollections()
 {
-  KABC::StdAddressBook *addressbook = KABC::StdAddressBook::self( true );
+  mAllRecipients = new RecipientsCollection;
+  mAllRecipients->setTitle( i18n("All") );
+  insertCollection( mAllRecipients );
 
+  insertDistributionLists();
+
+  insertRecentAddresses();
+
+  mSelectedRecipients = new RecipientsCollection;
+  mSelectedRecipients->setTitle( i18n("Selected Recipients") );
+  insertCollection( mSelectedRecipients );
+}
+
+void RecipientsPicker::insertAddressBook( KABC::AddressBook *addressbook )
+{
   QMap<KABC::Resource *,RecipientsCollection *> collectionMap;
 
   QPtrList<KABC::Resource> resources = addressbook->resources();
@@ -369,9 +388,6 @@
 
   QMap<QString,RecipientsCollection *> categoryMap;
 
-  mAllRecipients = new RecipientsCollection;
-  mAllRecipients->setTitle( i18n("All") );
-
   KABC::AddressBook::Iterator it;
   for( it = addressbook->begin(); it != addressbook->end(); ++it ) {
     QStringList emails = (*it).emails();
@@ -405,8 +421,6 @@
     }
   }
 
-  insertCollection( mAllRecipients );
-
   QMap<KABC::Resource *,RecipientsCollection *>::ConstIterator it2;
   for( it2 = collectionMap.begin(); it2 != collectionMap.end(); ++it2 ) {
     insertCollection( *it2 );
@@ -416,14 +430,8 @@
   for( it3 = categoryMap.begin(); it3 != categoryMap.end(); ++it3 ) {
     insertCollection( *it3 );
   }
-
-  insertDistributionLists();
-
-  insertRecentAddresses();
-
-  mSelectedRecipients = new RecipientsCollection;
-  mSelectedRecipients->setTitle( i18n("Selected Recipients") );
-  insertCollection( mSelectedRecipients );
+  
+  updateList();
 }
 
 void RecipientsPicker::insertDistributionLists()
--- branches/KDE/3.5/kdepim/kmail/recipientspicker.h #497766:497767
@@ -26,6 +26,7 @@
 #include <klistview.h>
 #include <klistviewsearchline.h>
 #include <kabc/addressee.h>
+#include <kabc/stdaddressbook.h>
 
 #include <qwidget.h>
 #include <qdialog.h>
@@ -133,6 +134,8 @@
     void keyPressEvent( QKeyEvent * );
 };
 
+using namespace KABC;
+
 class RecipientsPicker : public QDialog
 {
     Q_OBJECT
@@ -172,8 +175,11 @@
     void slotPicked();
     void setFocusList();
     void resetSearch();
-
+    void insertAddressBook( AddressBook * );
+    
   private:
+    KABC::StdAddressBook *mAddressBook;
+      
     QComboBox *mCollectionCombo;
     KListView *mRecipientList;
     KListViewSearchLine *mSearchLine;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic