/* 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 #include using namespace KABC; extern "C" { FormatPlugin *format() { return new VCardFormatPlugin2(); } } VCardFormatPlugin2::VCardFormatPlugin2() { } VCardFormatPlugin2::~VCardFormatPlugin2() { } bool VCardFormatPlugin2::load( Addressee &addressee, QFile *file ) { qDebug("VCardFormatPlugin2::load"); QString data; Q3TextStream t( file ); t.setEncoding( Q3TextStream::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 ) { qDebug("VCardFormatPlugin2::loadAll"); QString data; Q3TextStream t( file ); t.setEncoding( Q3TextStream::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 ) { qDebug("VCardFormatPlugin2::save"); VCardTool tool; Addressee::List vcardlist; vcardlist.append( addressee ); Q3TextStream t( file ); t.setEncoding( Q3TextStream::UnicodeUTF8 ); t << tool.createVCards( vcardlist ); } void VCardFormatPlugin2::saveAll( AddressBook *ab, Resource *resource, QFile *file ) { qDebug("VCardFormatPlugin2::saveAll"); 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 ); } } Q3TextStream t( file ); t.setEncoding( Q3TextStream::UnicodeUTF8 ); t << tool.createVCards( vcardlist ); } bool VCardFormatPlugin2::checkFormat( QFile *file ) const { QString line; char tmp[1024]; file->readLine( tmp, 1024 ); line = tmp; line = line.stripWhiteSpace(); if ( line == "BEGIN:VCARD" ) return true; else return false; }