-rw-r--r-- | pluginopiekabc/opieaddressbook.cpp | 33 | ||||
-rw-r--r-- | pluginopiekabc/opieaddressbook.h | 63 | ||||
-rw-r--r-- | pluginopiekabc/opieaddressbookplugin.cpp | 71 | ||||
-rw-r--r-- | pluginopiekabc/opieaddressbookplugin.h | 19 | ||||
-rw-r--r-- | pluginopiekabc/opieaddressee.cpp | 21 | ||||
-rw-r--r-- | pluginopiekabc/opieaddressee.h | 16 | ||||
-rw-r--r-- | pluginopiekabc/pluginopiekabcE.pro | 27 |
7 files changed, 250 insertions, 0 deletions
diff --git a/pluginopiekabc/opieaddressbook.cpp b/pluginopiekabc/opieaddressbook.cpp new file mode 100644 index 0000000..ff0ef63 --- a/dev/null +++ b/pluginopiekabc/opieaddressbook.cpp @@ -0,0 +1,33 @@ +#include "opieaddressbook.h" +#include <qstringlist.h> +#include <opie/ocontact.h> +#include <opie/orecordlist.h> +#include <stdio.h> + +using namespace KABC; + +OpieAddressBook *StdOpieAddressBook::mSelf = 0; + +OpieAddressBook::OpieAddressBook() { + access = new OContactAccess("Addressbook"); +} + +OpieAddressBook::~OpieAddressBook() { +} + + +StdOpieAddressBook::StdOpieAddressBook() { + access = new OContactAccess("Addressbook"); +} + +StdOpieAddressBook::~StdOpieAddressBook() { +} + +OpieAddressBook *StdOpieAddressBook::self() { + if ( !mSelf ) { + mSelf = new StdOpieAddressBook(); + } + return mSelf; +} + +
\ No newline at end of file diff --git a/pluginopiekabc/opieaddressbook.h b/pluginopiekabc/opieaddressbook.h new file mode 100644 index 0000000..d2a3b38 --- a/dev/null +++ b/pluginopiekabc/opieaddressbook.h @@ -0,0 +1,63 @@ +/* + This file is part of libkabc. + Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef KABC_STDADDRESSBOOK_H +#define KABC_STDADDRESSBOOK_H + +#include <opie/ocontactaccess.h> +#include "opieaddressee.h" +#include "opieaddress.h" + +namespace KABC { + +class AddressBook { + + public: + AddressBook(); + ~AddressBook(); + Addressee::List findByEmail( const QString & ); + + protected: + OContactAccess *access; +}; + + +class StdAddressBook : public AddressBook +{ + public: + /** + Return the standard addressbook object. + */ + static AddressBook *self(); + + + protected: + StdAddressBook(); + ~StdAddressBook(); + + void init( bool onlyFastResources ); + + private: + static AddressBook *mSelf; + static bool mAutomaticSave; +}; + +} +#endif diff --git a/pluginopiekabc/opieaddressbookplugin.cpp b/pluginopiekabc/opieaddressbookplugin.cpp new file mode 100644 index 0000000..0b22289 --- a/dev/null +++ b/pluginopiekabc/opieaddressbookplugin.cpp @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <qwidget.h> +#include <qlayout.h> +#include <qlistbox.h> +#include <opie/ocontact.h> +#include <opie/orecordlist.h> +#include "opieaddressbookplugin.h" +#include "opieaddressee.h" + +OpieAddressBookPlugin::OpieAddressBookPlugin() : ref(0) { + + access = new OContactAccess("OpieAddressBookPlugin"); + +} + +KABC::Addressee::List OpieAddressBookPlugin::getAddressees() { + KABC::Addressee::List results; + OContactAccess access("OpieAddressBookPlugin"); + OContactAccess::List::Iterator it; + ORecordList<OContact> accessList = access.sorted(true,0,0,0); + for(it = accessList.begin(); it != accessList.end(); ++it ) { + OpieAddressee addressee( *it ); + results.append(addressee); + } + return results; +} + +QString OpieAddressBookPlugin::name() { + return QString::QString("OpieAddressBookPlugin"); +} + + +KABC::Addressee::List OpieAddressBookPlugin::findByEmail(const QString &email) { +printf("OpieAddressBookPlugin::findByEmail: email=%s\n", email.ascii()); + KABC::Addressee::List results; + + ORecordList<OContact> accessList = access->sorted(true,0,0,0); + OContactAccess::List::Iterator it; + for(it = accessList.begin(); it != accessList.end(); ++it ) { + OContact contact = *it; + QStringList emailList = contact.emailList(); + QStringList foundEmails = emailList.grep(email,false); + if (foundEmails.count() >= 1) { + OpieAddressee a(contact); + printf("Found Contact %s\n", a.formattedName().ascii()); + results.append(a); + } + } + return results; + +} + +QRESULT OpieAddressBookPlugin::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) +{ +printf("Start: OpieAddressBookPlugin::queryInterface\n"); + *iface = 0; + if ( uuid == IID_QUnknown ) + *iface = this; + else if ( uuid == IID_KOAddressBookInterface ) + *iface = this; + if ( *iface ) + (*iface)->addRef(); + return QS_OK; +printf("End: OpieAddressBookPlugin::queryInterface\n"); +} + +Q_EXPORT_INTERFACE() +{ + Q_CREATE_INSTANCE( OpieAddressBookPlugin ) +} + diff --git a/pluginopiekabc/opieaddressbookplugin.h b/pluginopiekabc/opieaddressbookplugin.h new file mode 100644 index 0000000..1ad1c15 --- a/dev/null +++ b/pluginopiekabc/opieaddressbookplugin.h @@ -0,0 +1,19 @@ +#include <qwidget.h> +#include <kabc/koaddressbookinterface.h> +#include <kabc/addressee.h> +#include <opie/ocontactaccess.h> + +struct OpieAddressBookPlugin : public KOAddressBookInterface { + + public: + + OpieAddressBookPlugin::OpieAddressBookPlugin(); + QString name(); + KABC::Addressee::List getAddressees(); + KABC::Addressee::List findByEmail(const QString &email); + QRESULT queryInterface( const QUuid&, QUnknownInterface** ); + Q_REFCOUNT + protected: + OContactAccess *access; + ulong ref; +}; diff --git a/pluginopiekabc/opieaddressee.cpp b/pluginopiekabc/opieaddressee.cpp new file mode 100644 index 0000000..3325152 --- a/dev/null +++ b/pluginopiekabc/opieaddressee.cpp @@ -0,0 +1,21 @@ +#include <stdio.h> +#include "opieaddressee.h" + +OpieAddressee::OpieAddressee(const OContact & ocontact) { + setOContact(ocontact); +} + +OpieAddressee::OpieAddressee() { + empty = true; +} + +void OpieAddressee::setOContact(const OContact & ocontact) { + contact = ocontact; + QString id; + id.setNum(contact.uid()); + fName = contact.lastName() + ", " + contact.firstName(); + rName = contact.fullName(); + pEmail = contact.defaultEmail(); + empty = false; +} + diff --git a/pluginopiekabc/opieaddressee.h b/pluginopiekabc/opieaddressee.h new file mode 100644 index 0000000..b0e8b0d --- a/dev/null +++ b/pluginopiekabc/opieaddressee.h @@ -0,0 +1,16 @@ +#include <opie/ocontact.h> +#include <kabc/addressee.h> + +class OpieAddressee : public KABC::Addressee { + + public: + + OpieAddressee::OpieAddressee(const OContact & contact); + OpieAddressee::OpieAddressee(); + void setOContact(const OContact & contact); + + private: + OContact contact; + QString id; + bool empty; +}; diff --git a/pluginopiekabc/pluginopiekabcE.pro b/pluginopiekabc/pluginopiekabcE.pro new file mode 100644 index 0000000..52adaf1 --- a/dev/null +++ b/pluginopiekabc/pluginopiekabcE.pro @@ -0,0 +1,27 @@ +TEMPLATE = lib +CONFIG += qt warn_on release + +TARGET = opiekabc +OBJECTS_DIR = obj/$(PLATFORM) +MOC_DIR = moc +DESTDIR=$(QPEDIR)/plugins/korganizer +INCLUDEPATH += $(QPEDIR)/include ../libkabcwrap $(OPIEDIR)/include +DEFINES += +LIBS += -L$(QPEDIR)/lib +LIBS += -lmicrokabc +LIBS += -lopie +LIBS += -lqpe +LIBS += -lqte + +INTERFACES = \ + +#select_attendee_base.ui + +HEADERS = \ + opieaddressbookplugin.h \ + opieaddressee.h + +SOURCES = \ + opieaddressbookplugin.cpp \ + opieaddressee.cpp + |