summaryrefslogtreecommitdiffabout
path: root/kabc/formats/vcardformatplugin2.cpp
Side-by-side diff
Diffstat (limited to 'kabc/formats/vcardformatplugin2.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/formats/vcardformatplugin2.cpp123
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;
+}
+