-rw-r--r-- | kaddressbook/xxport/vcard_xxport.cpp | 16 |
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 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (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 | ||
51 | class VCardXXPortFactory : public XXPortFactory | 52 | class 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 | ||
211 | KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const | 212 | KABC::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 |