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

List:       kde-commits
Subject:    osnabrueck_branch: kdepim/kmail
From:       Andreas Gungl <a.gungl () gmx ! de>
Date:       2004-01-02 21:12:16
Message-ID: 20040102211216.CCF4693EA () office ! kde ! org
[Download RAW message or body]

CVS commit by gungl: 

fix #68249 - vcard viewer ignores multiple cards (shows only the first one)


  M +33 -12    vcardviewer.cpp   1.4.2.2
  M +10 -1     vcardviewer.h   1.2.4.1


--- kdepim/kmail/vcardviewer.cpp  #1.4.2.1:1.4.2.2
@@ -33,9 +33,7 @@ using KABC::Addressee;
 #include <qstring.h>
 
-// FIXME The title should be "VCard Viewer" instead of "VCard viewer",
-// can't change now because of KDE 3.2 string freeze
 KMail::VCardViewer::VCardViewer(QWidget *parent, const QString& vCard, const char* name)
-  : KDialogBase( parent, name, false, i18n("VCard viewer"), User1|Close, Close,
-                 true, i18n("&Import"))
+  : KDialogBase( parent, name, false, i18n("VCard Viewer"), User1|User2|User3|Close, Close,
+                 true, i18n("&Import"), QString("&Next Card"), QString("&Previous Card") )
 {
   mAddresseeView = new AddresseeView(this);
@@ -43,10 +41,16 @@ KMail::VCardViewer::VCardViewer(QWidget 
   setMainWidget(mAddresseeView);
 
-  Addressee::List al;
-  VCardConverter t;
-    
-  al = t.parseVCards( vCard );
-  if ( !al.empty() ) 
-      mAddresseeView->setAddressee( *(al.begin()) );
+  VCardConverter vcc;
+  mAddresseeList = vcc.parseVCards( vCard );
+  if ( !mAddresseeList.empty() ) {
+    itAddresseeList = mAddresseeList.begin();
+    mAddresseeView->setAddressee( *itAddresseeList );
+    if ( mAddresseeList.size() <= 1 ) {
+      showButton(User2, false);
+      showButton(User3, false);
+    }
+    else
+      enableButton(User3, false);
+  }
   else {
     mAddresseeView->setText(i18n("Failed to parse vCard!"));
@@ -63,6 +67,23 @@ KMail::VCardViewer::~VCardViewer()
 void KMail::VCardViewer::slotUser1()
 {
-  if (KMAddrBookExternal::addVCard(mAddresseeView->addressee(), this))
-    enableButton(User1, false);
+  KMAddrBookExternal::addVCard( *itAddresseeList, this );
+}
+
+void KMail::VCardViewer::slotUser2()
+{
+  // next vcard
+  mAddresseeView->setAddressee( *(++itAddresseeList) );
+  if ( itAddresseeList == --(mAddresseeList.end()) )
+    enableButton(User2, false);
+  enableButton(User3, true);
+}
+
+void KMail::VCardViewer::slotUser3()
+{
+  // previous vcard
+  mAddresseeView->setAddressee( *(--itAddresseeList) );
+  if ( itAddresseeList == mAddresseeList.begin() )
+    enableButton(User3, false);
+  enableButton(User2, true);
 }
 

--- kdepim/kmail/vcardviewer.h  #1.2:1.2.4.1
@@ -22,4 +22,7 @@
 
 #include <kdialogbase.h>
+#include <kabc/addressee.h>
+
+#include <qvaluelist.h>
 
 class QString;
@@ -39,7 +43,12 @@ namespace KMail {
      protected:
        virtual void slotUser1();
+       virtual void slotUser2();
+       virtual void slotUser3();
 
      private:
        KPIM::AddresseeView * mAddresseeView;
+       KABC::Addressee::List  mAddresseeList;
+
+       QValueListIterator<KABC::Addressee> itAddresseeList;
   };
 


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

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