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

List:       kmail-devel
Subject:    [PATCH] for #68249 - vcard viewer ignores multiple cards (shows
From:       Andreas Gungl <a.gungl () gmx ! de>
Date:       2004-01-02 10:43:26
Message-ID: 200401021143.44407 () gungl-dd ! de
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

the attached patch fixes bug 68249. It allows to display multiple vcards 
when they are in the same attachment.
So far I didn't introduce new strings which need translation, so I think, it 
can go into 3.2. However there is a FIXME left for after 3.2 to fix three 
strings.

Please review.

TIA,
Andreas
- -- 
    ~
  ' v '
 //   \\
/(     )\  Powered by Penguin.
  ^ ' ^

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iD8DBQE/9UtcVhjiFd4beU8RAh4aAKD7grh9mF5yYZ90AF+1LenTsPN7fwCglFSo
OC5xRNRjBn7RKZ9hBWB94Xs=
=8NSY
-----END PGP SIGNATURE-----

["vcardviewer.diff" (text/x-diff)]

Index: vcardviewer.h
===================================================================
RCS file: /home/kde/kdepim/kmail/vcardviewer.h,v
retrieving revision 1.2
diff -u -3 -p -r1.2 vcardviewer.h
--- vcardviewer.h	8 Jul 2003 19:31:29 -0000	1.2
+++ vcardviewer.h	2 Jan 2004 10:34:03 -0000
@@ -21,8 +21,12 @@
 #define VCARDVIEWER_H
 
 #include <kdialogbase.h>
+#include <kabc/addressee.h>
+
+#include <qvaluelist.h>
 
 class QString;
+
 namespace KPIM {
   class AddresseeView;
 }
@@ -38,9 +42,14 @@ namespace KMail {
 
      protected:
        virtual void slotUser1();
+       virtual void slotUser2();
+       virtual void slotUser3();
 
      private:
-       KPIM::AddresseeView * mAddresseeView;
+       KPIM::AddresseeView *  mAddresseeView;
+       KABC::Addressee::List  mAddresseeList;
+
+       QValueListIterator<KABC::Addressee> itAddresseeList;
   };
 
 }
Index: vcardviewer.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/vcardviewer.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 vcardviewer.cpp
--- vcardviewer.cpp	30 Dec 2003 11:52:14 -0000	1.4
+++ vcardviewer.cpp	2 Jan 2004 10:34:03 -0000
@@ -34,20 +34,27 @@ using KABC::Addressee;
 
 // FIXME The title should be "VCard Viewer" instead of "VCard viewer",
 // can't change now because of KDE 3.2 string freeze
+// also the user buttons 2 and 3 should have better texts
 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("->"), QString("<-") )
 {
   mAddresseeView = new AddresseeView(this);
   mAddresseeView->setVScrollBarMode(QScrollView::Auto);
   setMainWidget(mAddresseeView);
 
-  Addressee::List al;
   VCardTool t;
-    
-  al = t.parseVCards( vCard );
-  if ( !al.empty() ) 
-      mAddresseeView->setAddressee( *(al.begin()) );
+  mAddresseeList = t.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!"));
     enableButton(User1, false);
@@ -62,8 +69,25 @@ 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);
 }
 
 #include "vcardviewer.moc"


_______________________________________________
KMail developers mailing list
KMail-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmail-devel


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

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