summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Side-by-side diff
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/xxport/vcard_xxport.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/kaddressbook/xxport/vcard_xxport.cpp b/kaddressbook/xxport/vcard_xxport.cpp
index c56be8b..91df96d 100644
--- a/kaddressbook/xxport/vcard_xxport.cpp
+++ b/kaddressbook/xxport/vcard_xxport.cpp
@@ -176,52 +176,63 @@ KABC::AddresseeList VCardXXPort::importContacts( const QString& ) const
if ( !XXPortManager::importData.isEmpty() )
addrList = parseVCard( XXPortManager::importData );
else {
if ( XXPortManager::importURL.isEmpty() )
{
fileName = KFileDialog::getOpenFileName( QString::null, i18n("Select vCard to Import"), parentWidget() );
if ( fileName.isEmpty() )
return addrList;
QFileInfo fi ( fileName );
if ( !fi.isFile() )
return addrList;
}
else
{
//US url = XXPortManager::importURL;
qDebug("VCardXXPort::importContacts Urls at the moment not supported");
if ( url.isEmpty() )
return addrList;
}
QFile file( fileName );
if ( file.open( IO_ReadOnly ) ) {
- QByteArray rawData = file.readAll();
+ QCString rawData ( file.readAll().data(),file.size()+1);
file.close();
- QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 );
- addrList = parseVCard( data );
+ int start = 0;
+#ifndef DESKTOP_VERSION
+ while ( start < rawData.size()-2 ) {
+ if ( rawData.at( start ) == '\r' )
+ if ( rawData.at( start+1 ) == '\n' )
+ if ( rawData.at( start+2 ) == ' ' ) {
+ rawData.remove(start,3);
+ --start;
+ }
+ ++start;
+ }
+#endif
+ addrList = parseVCard( QString::fromUtf8( rawData.data() ) );
}
}
#endif //KAB_EMBEDDED
return addrList;
}
KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const
{
KABC::VCardTool tool;
KABC::AddresseeList addrList;
addrList = tool.parseVCards( data );
// LR : I switched to the code, which is in current cvs HEAD
/*
uint numVCards = data.contains( "BEGIN:VCARD", false );
QStringList dataList = QStringList::split( "\r\n\r\n", data );
for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) {
KABC::Addressee addr;
bool ok = false;
if ( dataList[ i ].contains( "VERSION:3.0" ) )