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

List:       kde-core-devel
Subject:    PATCH: Port klprfax to kabc
From:       Cornelius Schumacher <schumacher () kde ! org>
Date:       2002-02-26 12:37:27
[Download RAW message or body]

This patch ports klprfax to the new addressbook API. Ok to commit?

-- 
Cornelius Schumacher <schumacher@kde.org>
["usekabc.patch" (text/x-diff)]

? usekabc.patch
Index: klprfax/Makefile.am
===================================================================
RCS file: /home/kde/kdeutils/klprfax/klprfax/Makefile.am,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile.am
--- klprfax/Makefile.am	2001/11/11 06:34:09	1.11
+++ klprfax/Makefile.am	2002/02/26 12:33:33
@@ -2,7 +2,7 @@ bin_PROGRAMS = klprfax
 bin_SCRIPTS = klprfax_filter klprfax_lpd
 klprfax_SOURCES = klprfax_config.cpp klprfax.cpp main.cpp klprfax_widget.cpp
 noinst_HEADERS = klprfax_config.h klprfax.h klprfax_widget.h
-klprfax_LDADD   =  $(LIB_KAB) $(LIB_KIO) 
+klprfax_LDADD   =  -lkabc $(LIB_KIO) 
 klprfax_LDFLAGS = $(all_libraries) $(KDE_RPATH)
 
 KDE_ICON=AUTO
Index: klprfax/klprfax.cpp
===================================================================
RCS file: /home/kde/kdeutils/klprfax/klprfax/klprfax.cpp,v
retrieving revision 1.14
diff -u -p -r1.14 klprfax.cpp
--- klprfax/klprfax.cpp	2002/01/21 06:31:43	1.14
+++ klprfax/klprfax.cpp	2002/02/26 12:33:33
@@ -22,6 +22,8 @@
 #include <klocale.h>
 #include <kio/netaccess.h>
 #include <kstandarddirs.h>
+#include <kabc/stdaddressbook.h>
+#include <kdebug.h>
 
 #include <qfile.h>
 
@@ -37,10 +39,6 @@
 
 Klprfax::Klprfax(KApplication *_app,KConfigBase *cnf,QCString faxF,QWidget *parent, \
const char *_name) : QWidget(parent, _name)  {
-AddressBook::ErrorCode err;
-AddressBook   *bk;
-int            n,i;
-QString        name,fax0,fax1,fax2,fax3;
 QString        nil="";
 
    app=_app;
@@ -67,18 +65,14 @@ QString        nil="";
 
    // Search all entries with fax numbers
 
-   kab=new KabAPI;
-   err=kab->init();
-   bk=kab->addressbook();
-   n=bk->noOfEntries();
-
+   KABC::AddressBook *ab = KABC::StdAddressBook::self();
+   
+   KABC::AddressBook::Iterator it;
+   
    int rows=-1,col0=0,col1=0;
-   for(i=0;i<n;i++) {
-     KabKey k;
-     AddressBook::Entry e;
-     err=bk->getKey(i,k);
-     err=bk->getEntry(k,e);
-     if (NameFax(e,name,fax0,fax1,fax2,fax3)) {
+   for( it = ab->begin(); it != ab->end(); ++it ) {
+     QString name,fax0,fax1,fax2,fax3;
+     if (NameFax(*it,name,fax0,fax1,fax2,fax3)) {
         klprfax_widget *tmp;
 
 	rows+=1;if (rows>=names->numRows()) { names->setNumRows(rows+1); }
@@ -207,60 +201,40 @@ Klprfax::~Klprfax()
 }
 
 /** No descriptions */
-bool Klprfax::NameFax(AddressBook::Entry & e,QString & name, QString & fax0,QString \
& fax1, QString & fax2, QString & fax3) +bool Klprfax::NameFax(KABC::Addressee & \
a,QString & name, QString & fax0,QString & fax1, QString & fax2, QString & fax3)  {
-   bool isFax=false;
-   AddressBook::Telephone faxEnum=AddressBook::Fax;
-   int fn=0;
-   QString fax;
-
-   fax0=QString::null;
-   fax1=QString::null;
-   fax2=QString::null;
-   fax3=QString::null;
-
-   int phone_nrs=e.telephone.count();
-qWarning("Phone nrs: %d", phone_nrs);
-   for(int i=0;i<phone_nrs;i+=2) {
-      QString type=e.telephone[i];
-      bool ok;
-      int _type=type.toInt(&ok,10);
-      if (ok) {
-        if (_type==faxEnum) {
-          fax=e.telephone[i+1].stripWhiteSpace();
-          if (!fax.isEmpty()) {
-            isFax=true;
-            switch (fn++) {
-              case 0 : fax0=fax;
-              break;
-              case 1 : fax1=fax;
-              break;
-              case 2 : fax2=fax;
-              break;
-              case 3 : fax3=fax;
-              break;
-            }
+  KABC::PhoneNumber::List numbers = a.phoneNumbers();
 
-          }
-        }
+  bool isFax=false;
+  int fn=0;
+  
+  KABC::PhoneNumber::List::Iterator it;
+  for( it = numbers.begin(); it != numbers.end(); ++it ) {
+    if ( (*it).type() & KABC::PhoneNumber::Fax ) {
+      QString fax = (*it).number();
+      kdDebug() << "Found " << a.realName() << ": " << fax << endl;
+      isFax = true;
+      switch (fn++) {
+        case 0 : fax0=fax;
+        break;
+        case 1 : fax1=fax;
+        break;
+        case 2 : fax2=fax;
+        break;
+        case 3 : fax3=fax;
+        break;
+	default : kdDebug() << "Too many fax numbers." << endl;
       }
-   }
+    }
+  }
 
   if (isFax) {
-    name=e.fn.stripWhiteSpace();
-    if (name.isEmpty()) {
-       QString fn=e.firstname.stripWhiteSpace();
-       QString mn=e.middlename.stripWhiteSpace();
-       QString ln=e.lastname.stripWhiteSpace();
-       if (mn.isEmpty()) 
-          name=fn+" "+ln;
-       else
-          name=fn+" "+mn+" "+ln;
-    }
+    name=a.realName();
   }
 
   return isFax;
 }
+
 /** No descriptions */
 void Klprfax::noFaxing()
 {
Index: klprfax/klprfax.h
===================================================================
RCS file: /home/kde/kdeutils/klprfax/klprfax/klprfax.h,v
retrieving revision 1.7
diff -u -p -r1.7 klprfax.h
--- klprfax/klprfax.h	2002/01/09 11:34:50	1.7
+++ klprfax/klprfax.h	2002/02/26 12:33:33
@@ -26,12 +26,11 @@
 #include <qwidget.h>
 
 #include <kconfig.h>
+#include <kabc/addressee.h>
 
 #include <qlistview.h>
 #include <qlistbox.h>
 #include <qpushbutton.h>
-#include <addressbook.h>
-#include <kabapi.h>
 #include <qlineedit.h>
 #include <qprogressbar.h>
 #include <qlabel.h>
@@ -93,8 +92,6 @@ private: // Private attributes
   bool            canCancel;
   bool            canceled;
 
-  KabAPI        * kab;
-
   KShellProcess   efax_helper;
   QString         efax_diagnostic;
 
@@ -108,7 +105,7 @@ public: // Public attributes
 private: // Private methods
   void doLog(QString s);
 
-  bool NameFax(AddressBook::Entry & e,QString & name, QString & fax0,QString & \
fax1,QString & fax2,QString & fax3); +  bool NameFax(KABC::Addressee & e,QString & \
name, QString & fax0,QString & fax1,QString & fax2,QString & fax3);  void findEFax();
 
   void enableAll(bool yes=true);



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

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