summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/xxport/vcard_xxport.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/kaddressbook/xxport/vcard_xxport.cpp b/kaddressbook/xxport/vcard_xxport.cpp
index 54d0cbd..b53f873 100644
--- a/kaddressbook/xxport/vcard_xxport.cpp
+++ b/kaddressbook/xxport/vcard_xxport.cpp
@@ -11,48 +11,49 @@
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33 33
34#include <kabc/vcardconverter.h> 34#include <kabc/vcardconverter.h>
35#include <kabc/vcardparser/vcardtool.h>
35#include <kfiledialog.h> 36#include <kfiledialog.h>
36#ifndef KAB_EMBEDDED 37#ifndef KAB_EMBEDDED
37#include <kio/netaccess.h> 38#include <kio/netaccess.h>
38#endif //KAB_EMBEDDED 39#endif //KAB_EMBEDDED
39 40
40#include <klocale.h> 41#include <klocale.h>
41#include <kmessagebox.h> 42#include <kmessagebox.h>
42#include <ktempfile.h> 43#include <ktempfile.h>
43#include <kurl.h> 44#include <kurl.h>
44 45
45#include "xxportmanager.h" 46#include "xxportmanager.h"
46 47
47#include "vcard_xxport.h" 48#include "vcard_xxport.h"
48 49
49#ifndef KAB_EMBEDDED 50#ifndef KAB_EMBEDDED
50 51
51class VCardXXPortFactory : public XXPortFactory 52class VCardXXPortFactory : public XXPortFactory
52{ 53{
53 public: 54 public:
54 XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) 55 XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name )
55 { 56 {
56 return new VCardXXPort( ab, parent, name ); 57 return new VCardXXPort( ab, parent, name );
57 } 58 }
58}; 59};
@@ -188,59 +189,66 @@ KABC::AddresseeList VCardXXPort::importContacts( const QString& ) const
188//US url = XXPortManager::importURL; 189//US url = XXPortManager::importURL;
189 qDebug("VCardXXPort::importContacts Urls at the moment not supported"); 190 qDebug("VCardXXPort::importContacts Urls at the moment not supported");
190 if ( url.isEmpty() ) 191 if ( url.isEmpty() )
191 return addrList; 192 return addrList;
192 193
193 } 194 }
194 195
195 196
196 QFile file( fileName ); 197 QFile file( fileName );
197 198
198 file.open( IO_ReadOnly ); 199 file.open( IO_ReadOnly );
199 QByteArray rawData = file.readAll(); 200 QByteArray rawData = file.readAll();
200 file.close(); 201 file.close();
201 202
202 QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); 203 QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 );
203 addrList = parseVCard( data ); 204 addrList = parseVCard( data );
204 205
205 } 206 }
206#endif //KAB_EMBEDDED 207#endif //KAB_EMBEDDED
207 208
208 return addrList; 209 return addrList;
209} 210}
210 211
211KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const 212KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const
212{ 213{
213 KABC::VCardConverter converter; 214
215 KABC::VCardTool tool;
214 KABC::AddresseeList addrList; 216 KABC::AddresseeList addrList;
215 217 addrList = tool.parseVCards( data );
218 // LR : I switched to the code, which is in current cvs HEAD
219 /*
216 uint numVCards = data.contains( "BEGIN:VCARD", false ); 220 uint numVCards = data.contains( "BEGIN:VCARD", false );
217 QStringList dataList = QStringList::split( "\r\n\r\n", data ); 221 QStringList dataList = QStringList::split( "\r\n\r\n", data );
218 222
219 for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) { 223 for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) {
220 KABC::Addressee addr; 224 KABC::Addressee addr;
221 bool ok = false; 225 bool ok = false;
222 226
223 if ( dataList[ i ].contains( "VERSION:3.0" ) ) 227 if ( dataList[ i ].contains( "VERSION:3.0" ) )
224 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 ); 228 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 );
225 else if ( dataList[ i ].contains( "VERSION:2.1" ) ) 229 else if ( dataList[ i ].contains( "VERSION:2.1" ) )
226 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 ); 230 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 );
227 else { 231 else {
228 KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) ); 232 KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) );
229 continue; 233 continue;
230 } 234 }
231 235
232 if ( !addr.isEmpty() && ok ) 236 if ( !addr.isEmpty() && ok )
233 addrList.append( addr ); 237 addrList.append( addr );
234 else { 238 else {
235 QString text = i18n( "The selected file does not include a valid vCard. " 239 QString text = i18n( "The selected file does not include a valid vCard. "
236 "Please check the file and try again." ); 240 "Please check the file and try again." );
237 KMessageBox::sorry( parentWidget(), text ); 241 KMessageBox::sorry( parentWidget(), text );
238 } 242 }
239 } 243 }
240 244 */
245 if ( addrList.isEmpty() ) {
246 QString text = i18n( "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n" );
247 KMessageBox::sorry( parentWidget(), text );
248 }
241 return addrList; 249 return addrList;
242} 250}
243 251
244#ifndef KAB_EMBEDDED 252#ifndef KAB_EMBEDDED
245#include "vcard_xxport.moc" 253#include "vcard_xxport.moc"
246#endif //KAB_EMBEDDED 254#endif //KAB_EMBEDDED