vcardconverter.cpp
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #include "vcard21parser.h"
00022 #include "vcardformatimpl.h"
00023 #include "vcardtool.h"
00024 
00025 #include "vcardconverter.h"
00026 
00027 using namespace KABC;
00028 
00029 struct VCardConverter::VCardConverterData
00030 {
00031   VCard21Parser vcard21parser;
00032   VCardFormatImpl vcard30parser;
00033 };
00034 
00035 VCardConverter::VCardConverter()
00036   : d( new VCardConverterData )
00037 {
00038 }
00039 
00040 VCardConverter::~VCardConverter()
00041 {
00042   delete d;
00043   d = 0;
00044 }
00045 
00046 QString VCardConverter::createVCard( const Addressee &addr, Version version )
00047 {
00048   Addressee::List list;
00049   list.append( addr );
00050 
00051   return createVCards( list, version );
00052 }
00053 
00054 QString VCardConverter::createVCards( Addressee::List list, Version version )
00055 {
00056   VCardTool tool;
00057 
00058   return tool.createVCards( list, ( version == v3_0 ? VCard::v3_0 : VCard::v2_1 ) );
00059 }
00060 
00061 Addressee VCardConverter::parseVCard( const QString& vcard )
00062 {
00063   Addressee::List list = parseVCards( vcard );
00064 
00065   return list[ 0 ];
00066 }
00067 
00068 Addressee::List VCardConverter::parseVCards( const QString& vcard )
00069 {
00070   VCardTool tool;
00071 
00072   return tool.parseVCards( vcard );
00073 }
00074 
00075 
00076 
00077 bool VCardConverter::vCardToAddressee( const QString &str, Addressee &addr, Version version )
00078 {
00079   if ( version == v2_1 ) {
00080     addr = d->vcard21parser.readFromString( str );
00081     return true;
00082   }
00083 
00084   if ( version == v3_0 )
00085     return d->vcard30parser.readFromString( str, addr );
00086 
00087   return false;
00088 }
00089 
00090 bool VCardConverter::addresseeToVCard( const Addressee &addr, QString &str, Version version )
00091 {
00092   if ( version == v2_1 )
00093     return false;
00094 
00095   if ( version == v3_0 )
00096     return d->vcard30parser.writeToString( addr, str );
00097 
00098   return false;
00099 }
00100 
00101 
00102 
00103 
00104 QString KABC::dateToVCardString( const QDateTime &dateTime )
00105 {
00106   return dateTime.toString("yyyyMMddThhmmssZ");
00107 }
00108 
00109 QString KABC::dateToVCardString( const QDate &date )
00110 {
00111   return date.toString("yyyyMMdd");
00112 }
00113 
00114 QDateTime KABC::VCardStringToDate( const QString &dateString )
00115 {
00116   QDate date;
00117   QTime time;
00118   QString d( dateString );
00119 
00120   d = d.remove('-').remove(':');
00121 
00122   if (d.length()>=8)
00123     date = QDate( d.mid(0,4).toUInt(), d.mid(4,2).toUInt(), d.mid(6,2).toUInt() );
00124   if (d.length()>9 && d[8].upper()=='T')
00125     time = QTime( d.mid(9,2).toUInt(), d.mid(11,2).toUInt(), d.mid(13,2).toUInt() );
00126 
00127   return QDateTime( date, time );
00128 }
00129 
 
This file is part of the documentation for kabc Library Version 3.2.0.