summaryrefslogtreecommitdiffabout
path: root/kabc/plugins/qtopia/resourceqtopia.cpp
authorzautrix <zautrix>2004-10-18 21:12:55 (UTC)
committer zautrix <zautrix>2004-10-18 21:12:55 (UTC)
commitc051fdcc1e7abac87f74430a7fcf3e7099f3b062 (patch) (side-by-side diff)
tree16048a695d69508c8779a7c23a4b9175623106e1 /kabc/plugins/qtopia/resourceqtopia.cpp
parentc613ac44ea26c66305252feb4ed4ad17f79b5cc6 (diff)
downloadkdepimpi-c051fdcc1e7abac87f74430a7fcf3e7099f3b062.zip
kdepimpi-c051fdcc1e7abac87f74430a7fcf3e7099f3b062.tar.gz
kdepimpi-c051fdcc1e7abac87f74430a7fcf3e7099f3b062.tar.bz2
changed qtopia converter
Diffstat (limited to 'kabc/plugins/qtopia/resourceqtopia.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/qtopia/resourceqtopia.cpp101
1 files changed, 81 insertions, 20 deletions
diff --git a/kabc/plugins/qtopia/resourceqtopia.cpp b/kabc/plugins/qtopia/resourceqtopia.cpp
index deb218b..b7263bb 100644
--- a/kabc/plugins/qtopia/resourceqtopia.cpp
+++ b/kabc/plugins/qtopia/resourceqtopia.cpp
@@ -29,8 +29,9 @@ $Id$
#include <unistd.h>
#include <qdir.h>
#include <qfile.h>
+#include <qtextstream.h>
#include <qfileinfo.h>
#include <qregexp.h>
//US #include <qtimer.h>
@@ -89,10 +90,8 @@ ResourceQtopia::~ResourceQtopia()
{
if (mConverter != 0)
delete mConverter;
- if(mAccess != 0)
- delete mAccess;
}
void ResourceQtopia::writeConfig( KConfig *config )
{
@@ -119,15 +118,8 @@ Ticket *ResourceQtopia::requestSaveTicket()
bool ResourceQtopia::doOpen()
{
qDebug("ResourceQtopia::doOpen(): %s", fileName().latin1());
- mAccess = new AddressBookAccess();
-
- if ( !mAccess ) {
- qDebug("Unable to load file() %s", fileName().latin1());
- return false;
- }
-
if (mConverter == 0)
{
mConverter = new QtopiaConverter();
@@ -135,10 +127,8 @@ bool ResourceQtopia::doOpen()
if ( !res )
{
QString msg("Unable to initialize qtopia converter. Most likely a problem with the category file");
qDebug(msg);
- delete mAccess;
- mAccess = 0;
return false;
}
}
@@ -148,21 +138,58 @@ bool ResourceQtopia::doOpen()
void ResourceQtopia::doClose()
{
qDebug("ResourceQtopia::doClose: %s", fileName().latin1());
- if(mAccess)
- {
- delete mAccess;
- mAccess = 0;
- }
+
// it seems so, that deletion of access deletes backend as well
//delete backend;
return;
}
bool ResourceQtopia::load()
{
+
+ QFile file( fileName() );
+ if ( !file.open(IO_ReadOnly ) ) {
+ return false;
+ }
+
+ QDomDocument doc("mydocument" );
+ if ( !doc.setContent( &file ) ) {
+ file.close();
+ return false;
+ }
+ bool res;
+ QDomElement docElem = doc.documentElement( );
+ QDomNode n = docElem.firstChild();
+ while ( !n.isNull() ) {
+ QDomElement e = n.toElement();
+ if ( !e.isNull() ) {
+ if ( e.tagName() == QString::fromLatin1( "Contacts" ) ) { // we're looking for them
+ QDomNode no = e.firstChild();
+ while ( !no.isNull() ) {
+ QDomElement el = no.toElement();
+ if ( !el.isNull() ) {
+ KABC::Addressee addressee;
+ res = mConverter->qtopiaToAddressee( el, addressee );
+ if ( !addressee.isEmpty() && res )
+ {
+ addressee.setResource( this );
+ addressBook()->insertAddressee( addressee );
+ }
+ }
+
+ no = no.nextSibling();
+ }
+ }
+ }
+
+ n = n.nextSibling();
+ }
+
+#if 0
+/ old code
qDebug("ResourceQtopia::load: %s", fileName().latin1());
AddressBookIterator it(*mAccess);
const PimContact* contact;
@@ -173,22 +200,56 @@ bool ResourceQtopia::load()
contact = it.current();
KABC::Addressee addressee;
- res = mConverter->qtopiaToAddressee( (*contact), addressee );
+ //LRres = mConverter->qtopiaToAddressee( (*contact), addressee );
if ( !addressee.isEmpty() && res )
{
addressee.setResource( this );
addressBook()->insertAddressee( addressee );
}
}
-
+#endif
return true;
}
bool ResourceQtopia::save( Ticket *ticket )
{
+
+ mDirWatch.stopScan();
+ KABC::AddressBook::Iterator it;
+ bool res;
+ //pending open file for stream
+ QTextStream *stream;// = tempFile->textStream();
+ stream->setEncoding( QTextStream::UnicodeUTF8 );
+ *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE Addressbook ><AddressBook>" << endl;
+ *stream << " <Groups>" << endl;
+ *stream << " </Groups>" << endl;
+ *stream << " <Contacts> " << endl;
+ // for all entries
+ KABC::Addressee ab;
+ for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
+ KABC::Addressee addressee = (*it);
+ res = mConverter->addresseeToQtopia( addressee, stream );
+ if (!res == true)
+ {
+ qDebug("Unable to convert Addressee %s", addressee.formattedName().latin1());
+ }
+ }
+
+
+ *stream << "</Contacts>" << endl;
+ *stream << "</AddressBook>" << endl;
+ //pending close file
+ mDirWatch.startScan();
+
+ delete ticket;
+ unlock( fileName() );
+
+
+#if 0
+ //old code
qDebug("ResourceQtopia::save: %s", fileName().latin1());
mDirWatch.stopScan();
@@ -198,9 +259,9 @@ bool ResourceQtopia::save( Ticket *ticket )
for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
PimContact c;
KABC::Addressee addressee = (*it);
- res = mConverter->addresseeToQtopia( *it, c );
+ //res = mConverter->addresseeToQtopia( *it, c );
if (res == true)
{
mAccess->addContact(c);
// if (res == false)
@@ -217,9 +278,9 @@ bool ResourceQtopia::save( Ticket *ticket )
mDirWatch.startScan();
delete ticket;
unlock( fileName() );
-
+#endif
return true;
}
bool ResourceQtopia::lock( const QString &lockfileName )