summaryrefslogtreecommitdiffabout
path: root/plugindtmkabc
authorzautrix <zautrix>2004-07-01 19:28:46 (UTC)
committer zautrix <zautrix>2004-07-01 19:28:46 (UTC)
commitdf5b4df6bc00ea8acfee0b11a335a9d2f39d04dc (patch) (side-by-side diff)
tree34a8459c68c1fdd849006452c45f34a5ad38eaab /plugindtmkabc
parent574570db1963fd729bb40a778ae3fc6a71ffc221 (diff)
downloadkdepimpi-df5b4df6bc00ea8acfee0b11a335a9d2f39d04dc.zip
kdepimpi-df5b4df6bc00ea8acfee0b11a335a9d2f39d04dc.tar.gz
kdepimpi-df5b4df6bc00ea8acfee0b11a335a9d2f39d04dc.tar.bz2
Added missing DTM plugin
Diffstat (limited to 'plugindtmkabc') (more/less context) (ignore whitespace changes)
-rw-r--r--plugindtmkabc/plugindtmkabcE.pro20
-rw-r--r--plugindtmkabc/qtopiaaddressbookplugin.cpp167
-rw-r--r--plugindtmkabc/qtopiaaddressbookplugin.h24
-rw-r--r--plugindtmkabc/qtopiaaddressee.cpp26
-rw-r--r--plugindtmkabc/qtopiaaddressee.h20
5 files changed, 257 insertions, 0 deletions
diff --git a/plugindtmkabc/plugindtmkabcE.pro b/plugindtmkabc/plugindtmkabcE.pro
new file mode 100644
index 0000000..56c08fa
--- a/dev/null
+++ b/plugindtmkabc/plugindtmkabcE.pro
@@ -0,0 +1,20 @@
+TEMPLATE = lib
+#TEMPLATE = app
+CONFIG = qt warn_on release
+
+TARGET = dtmkabc
+OBJECTS_DIR = obj/$(PLATFORM)
+MOC_DIR = moc
+DESTDIR=$(QPEDIR)/plugins/korganizer
+#DESTDIR=.
+INCLUDEPATH += ../libkabcwrap $(QPEDIR)/include
+DEFINES +=
+LIBS += -lmicrokabc
+
+HEADERS = \
+ qtopiaaddressbookplugin.h \
+ qtopiaaddressee.h
+
+SOURCES = \
+ qtopiaaddressbookplugin.cpp \
+ qtopiaaddressee.cpp
diff --git a/plugindtmkabc/qtopiaaddressbookplugin.cpp b/plugindtmkabc/qtopiaaddressbookplugin.cpp
new file mode 100644
index 0000000..37dd4e2
--- a/dev/null
+++ b/plugindtmkabc/qtopiaaddressbookplugin.cpp
@@ -0,0 +1,167 @@
+#include <qwidget.h>
+#include <qlayout.h>
+#include <qlistbox.h>
+#include <qstring.h>
+#include <qfile.h>
+#include <qtextstream.h>
+#include <qtextcodec.h>
+#include <stdlib.h>
+#include "qtopiaaddressbookplugin.h"
+#include "qtopiaaddressee.h"
+
+QtopiaAddressBookPlugin::QtopiaAddressBookPlugin() : ref(0) {
+ qDebug("DTMAddressBookPlugin::DTMAddressBookPlugin");
+ QString command ="db2file address -r -c utf8 > /tmp/addressDTM.txt";
+ system ( command.latin1() );
+}
+
+QtopiaAddressBookPlugin::~QtopiaAddressBookPlugin() {
+}
+
+KABC::Addressee::List QtopiaAddressBookPlugin::getAddressees() {
+
+ qDebug("Start: DTMAddressBookPlugin::getAddressees");
+
+ KABC::Addressee::List result;
+ QString text;
+ QString fileName = "/tmp/addressDTM.txt";
+ QFile file( fileName );
+ if (!file.open( IO_ReadOnly ) ) {
+ return result;
+ }
+ QTextStream ts( &file );
+ ts.setCodec( QTextCodec::codecForName("utf8") );
+ text = ts.read();
+ file.close();
+
+ QStringList templist;
+ QString tempString;
+ int start = 0;
+ int len = text.length();
+ int end = text.find ("\n",start)+1;
+ bool ok = true;
+ start = end;
+ int lastStart1 = -1;
+ int lastStart2 = -1;
+ while ( start > 0 ) {
+ //qDebug("while start %d ", start);
+ if ( lastStart1 == start )
+ break;
+ lastStart1 =start;
+ templist.clear();
+ ok = true;
+ int iii = 0;
+ while ( ok ) {
+
+ // qDebug("while ok %d ", start);
+
+ if ( lastStart2 == start )
+ break;
+ lastStart2 =start;
+ tempString = getPart( text, ok, start );
+ //if ( ! tempString.isEmpty() )
+ //qDebug("tempString %s %d",tempString.latin1(), iii);
+ iii++;
+ if ( start >= len || start == 0 ) {
+ start = 0;
+ ok = false;
+ }
+ if ( tempString.right(1) =="\n" )
+ tempString = tempString.left( tempString.length()-1);
+ //if ( ok )
+ templist.append( tempString );
+ //qDebug("%d ---%s---", templist.count(),tempString.latin1() );
+ }
+ result.append(QtopiaAddressee(templist));
+ //qDebug("name %s ",templist[2].latin1() );
+ //qDebug("name %s ",templist[4].latin1() );
+ //qDebug("name %s ",templist[5].latin1() );
+ //qDebug("name %s ",templist[40].latin1() );
+ }
+
+
+ qDebug("End: DTMAddressBookPlugin::getAddressees");
+
+ return result;
+}
+
+QString QtopiaAddressBookPlugin::getPart( const QString& text , bool &ok, int &start )
+{
+ //qDebug("start %d ", start);
+
+ QString retval ="";
+ if ( text.at(start) == '"' ) {
+ if ( text.mid( start,2) == "\"\"" && !( text.mid( start+2,1) == "\"")) {
+ start = start +2;
+ if ( text.mid( start,1) == "," ) {
+ start += 1;
+ }
+ retval = "";
+ if ( text.mid( start,1) == "\n" ) {
+ start += 1;
+ ok = false;
+ }
+ return retval;
+ }
+ int hk = start+1;
+ hk = text.find ('"',hk);
+ while ( text.at(hk+1) == '"' )
+ hk = text.find ('"',hk+2);
+ retval = text.mid( start+1, hk-start-1);
+ start = hk+1;
+ retval.replace( QRegExp("\"\""), "\"");
+ if ( text.mid( start,1) == "," ) {
+ start += 1;
+ }
+ if ( text.mid( start,1) == "\n" ) {
+ start += 1;
+ ok = false;
+ }
+ //qDebug("retval***%s*** ",retval.latin1() );
+ return retval;
+
+ } else {
+ int nl = text.find ("\n",start);
+ int kom = text.find (',',start);
+ if ( kom < nl ) {
+ // qDebug("kom < nl %d ", kom);
+ retval = text.mid(start, kom-start);
+ start = kom+1;
+ return retval;
+ } else {
+ if ( nl == kom ) {
+ // qDebug(" nl == kom ");
+ start = 0;
+ ok = false;
+ return "0";
+ }
+ // qDebug(" nl < kom ", nl);
+ retval = text.mid( start, nl-start);
+ ok = false;
+ start = nl+1;
+ return retval;
+ }
+ }
+
+}
+QString QtopiaAddressBookPlugin::name() {
+ return "DTM addressbook plugin";
+}
+
+QRESULT QtopiaAddressBookPlugin::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
+{
+ *iface = 0;
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_KOAddressBookInterface )
+ *iface = this;
+ if ( *iface )
+ (*iface)->addRef();
+ return QS_OK;
+}
+
+Q_EXPORT_INTERFACE()
+{
+ Q_CREATE_INSTANCE( QtopiaAddressBookPlugin )
+}
+
diff --git a/plugindtmkabc/qtopiaaddressbookplugin.h b/plugindtmkabc/qtopiaaddressbookplugin.h
new file mode 100644
index 0000000..abedf73
--- a/dev/null
+++ b/plugindtmkabc/qtopiaaddressbookplugin.h
@@ -0,0 +1,24 @@
+#ifndef QTOPIA_ADDRESS_BOOK_PLUGIN_H
+#define QTOPIA_ADDRESS_BOOK_PLUGIN_H
+#include <kabc/koaddressbookinterface.h>
+#include <kabc/addressee.h>
+#include <qstring.h>
+
+
+class QtopiaAddressBookPlugin : public KOAddressBookInterface {
+
+ public:
+ QtopiaAddressBookPlugin();
+ virtual ~QtopiaAddressBookPlugin();
+ QString name();
+ KABC::Addressee::List getAddressees();
+ QRESULT queryInterface( const QUuid&, QUnknownInterface** );
+ Q_REFCOUNT
+
+ protected:
+ ulong ref;
+ QString getPart( const QString & , bool& , int &start );
+ private:
+};
+#endif
+
diff --git a/plugindtmkabc/qtopiaaddressee.cpp b/plugindtmkabc/qtopiaaddressee.cpp
new file mode 100644
index 0000000..e8e49f5
--- a/dev/null
+++ b/plugindtmkabc/qtopiaaddressee.cpp
@@ -0,0 +1,26 @@
+#include "qtopiaaddressee.h"
+
+QtopiaAddressee::QtopiaAddressee(const QStringList& contact) {
+ setPimContact(contact);
+}
+
+QtopiaAddressee::QtopiaAddressee() {
+ empty = true;
+}
+
+void QtopiaAddressee::setPimContact(const QStringList& contact) {
+ if ( contact[40].isEmpty() )
+ id = contact[0];
+ else
+ id = contact[40];
+ fName = contact[2];
+ rName = contact[2];
+ pEmail = contact[40];
+ empty = false;
+ mails.clear();
+ mobilehomephone = contact[30] ;
+ workphone = contact[16];
+ homephone = contact[31];
+ //mails = pimContact.emailList();
+}
+
diff --git a/plugindtmkabc/qtopiaaddressee.h b/plugindtmkabc/qtopiaaddressee.h
new file mode 100644
index 0000000..f7d18a3
--- a/dev/null
+++ b/plugindtmkabc/qtopiaaddressee.h
@@ -0,0 +1,20 @@
+#include <qstringlist.h>
+#include <kabc/addressee.h>
+
+#ifndef QTOPIA_ADDRESSE_H
+#define QTOPIA_ADDRESSE_H
+
+class QtopiaAddressee : public KABC::Addressee {
+
+ public:
+
+ QtopiaAddressee(const QStringList& contact);
+ QtopiaAddressee();
+ void setPimContact(const QStringList& contact);
+
+ private:
+
+};
+
+#endif
+