author | zautrix <zautrix> | 2004-06-26 19:01:18 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-06-26 19:01:18 (UTC) |
commit | b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 (patch) (side-by-side diff) | |
tree | 2c3d4004fb21c72cba65793859f9bcd8ffd3a49c /kabc/formats/vcardformatplugin2.cpp | |
download | kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.zip kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.gz kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.bz2 |
Initial revision
Diffstat (limited to 'kabc/formats/vcardformatplugin2.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | kabc/formats/vcardformatplugin2.cpp | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/kabc/formats/vcardformatplugin2.cpp b/kabc/formats/vcardformatplugin2.cpp new file mode 100644 index 0000000..2a772b4 --- a/dev/null +++ b/kabc/formats/vcardformatplugin2.cpp @@ -0,0 +1,123 @@ +/* +Enhanced Version of the file for platform independent KDE tools. +Copyright (c) 2004 Ulf Schenk + +$Id$ +*/ + +#include "vcardformatplugin2.h" + +#include "address.h" +#include "addressee.h" +#include "vcardparser/vcardtool.h" + +#include <qtextstream.h> +#include <qfile.h> + +using namespace KABC; + +/*US +extern "C" +{ + FormatPlugin *format() + { + qDebug(" VCardFormatPlugin2::format = new VCardFormatPlugin2"); + return new VCardFormatPlugin2(); + } +} +*/ + +VCardFormatPlugin2::VCardFormatPlugin2() +{ +} + +VCardFormatPlugin2::~VCardFormatPlugin2() +{ +} + +bool VCardFormatPlugin2::load( Addressee &addressee, QFile *file ) +{ + QString data; + + QTextStream t( file ); + t.setEncoding( QTextStream::UnicodeUTF8 ); + data = t.read(); + + VCardTool tool; + + Addressee::List l = tool.parseVCards( data ); + + if ( ! l.first().isEmpty() ) { + addressee = l.first(); + return true; + } + + return false; +} + +bool VCardFormatPlugin2::loadAll( AddressBook *addressBook, Resource *resource, QFile *file ) +{ + QString data; + + QTextStream t( file ); + t.setEncoding( QTextStream::UnicodeUTF8 ); + data = t.read(); + + VCardTool tool; + + Addressee::List l = tool.parseVCards( data ); + + Addressee::List::Iterator itr; + + for ( itr = l.begin(); itr != l.end(); ++itr) { + Addressee addressee = *itr; + addressee.setResource( resource ); + addressBook->insertAddressee( addressee ); + } + + return true; +} + +void VCardFormatPlugin2::save( const Addressee &addressee, QFile *file ) +{ + VCardTool tool; + Addressee::List vcardlist; + + + vcardlist.append( addressee ); + + QTextStream t( file ); + t.setEncoding( QTextStream::UnicodeUTF8 ); + t << tool.createVCards( vcardlist ); +} + +void VCardFormatPlugin2::saveAll( AddressBook *ab, Resource *resource, QFile *file ) +{ + VCardTool tool; + Addressee::List vcardlist; + + AddressBook::Iterator it; + for ( it = ab->begin(); it != ab->end(); ++it ) { + if ( (*it).resource() == resource ) { + (*it).setChanged( false ); + vcardlist.append( *it ); + } + } + + QTextStream t( file ); + t.setEncoding( QTextStream::UnicodeUTF8 ); + t << tool.createVCards( vcardlist ); +} + +bool VCardFormatPlugin2::checkFormat( QFile *file ) const +{ + QString line; + + file->readLine( line, 1024 ); + line = line.stripWhiteSpace(); + if ( line == "BEGIN:VCARD" ) + return true; + else + return false; +} + |