summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2005-07-06 09:29:15 (UTC)
committer zautrix <zautrix>2005-07-06 09:29:15 (UTC)
commit38c8ca3f376451c072650fad8964adbbc513a105 (patch) (unidiff)
treeb1d4f1cec8b208294a16ff0d88ef6f8d5812c887 /kaddressbook
parent68016257abe13019610cb7bb230f8d754179abfb (diff)
downloadkdepimpi-38c8ca3f376451c072650fad8964adbbc513a105.zip
kdepimpi-38c8ca3f376451c072650fad8964adbbc513a105.tar.gz
kdepimpi-38c8ca3f376451c072650fad8964adbbc513a105.tar.bz2
fixxxx
Diffstat (limited to 'kaddressbook') (more/less context) (ignore 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
@@ -152,100 +152,111 @@ KABC::AddresseeList VCardXXPort::importContacts( const QString& ) const
152 QString caption( i18n( "vCard Import Failed" ) ); 152 QString caption( i18n( "vCard Import Failed" ) );
153 if ( KIO::NetAccess::download( url, fileName ) ) { 153 if ( KIO::NetAccess::download( url, fileName ) ) {
154 QFile file( fileName ); 154 QFile file( fileName );
155 155
156 file.open( IO_ReadOnly ); 156 file.open( IO_ReadOnly );
157 QByteArray rawData = file.readAll(); 157 QByteArray rawData = file.readAll();
158 file.close(); 158 file.close();
159 159
160 QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); 160 QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 );
161 addrList = parseVCard( data ); 161 addrList = parseVCard( data );
162 162
163 if ( !url.isLocalFile() ) 163 if ( !url.isLocalFile() )
164 KIO::NetAccess::removeTempFile( fileName ); 164 KIO::NetAccess::removeTempFile( fileName );
165 165
166 } else { 166 } else {
167 QString text = i18n( "<qt>Unable to access <b>%1</b>.</qt>" ); 167 QString text = i18n( "<qt>Unable to access <b>%1</b>.</qt>" );
168 KMessageBox::error( parentWidget(), text.arg( url.url() ), caption ); 168 KMessageBox::error( parentWidget(), text.arg( url.url() ), caption );
169 } 169 }
170 170
171 } 171 }
172 172
173 173
174#else //KAB_EMBEDDED 174#else //KAB_EMBEDDED
175 175
176 176
177 if ( !XXPortManager::importData.isEmpty() ) 177 if ( !XXPortManager::importData.isEmpty() )
178 addrList = parseVCard( XXPortManager::importData ); 178 addrList = parseVCard( XXPortManager::importData );
179 else { 179 else {
180 if ( XXPortManager::importURL.isEmpty() ) 180 if ( XXPortManager::importURL.isEmpty() )
181 { 181 {
182 fileName = KFileDialog::getOpenFileName( QString::null, i18n("Select vCard to Import"), parentWidget() ); 182 fileName = KFileDialog::getOpenFileName( QString::null, i18n("Select vCard to Import"), parentWidget() );
183 183
184 if ( fileName.isEmpty() ) 184 if ( fileName.isEmpty() )
185 return addrList; 185 return addrList;
186 QFileInfo fi ( fileName ); 186 QFileInfo fi ( fileName );
187 if ( !fi.isFile() ) 187 if ( !fi.isFile() )
188 return addrList; 188 return addrList;
189 } 189 }
190 else 190 else
191 { 191 {
192 //US url = XXPortManager::importURL; 192 //US url = XXPortManager::importURL;
193 qDebug("VCardXXPort::importContacts Urls at the moment not supported"); 193 qDebug("VCardXXPort::importContacts Urls at the moment not supported");
194 if ( url.isEmpty() ) 194 if ( url.isEmpty() )
195 return addrList; 195 return addrList;
196 196
197 } 197 }
198 QFile file( fileName ); 198 QFile file( fileName );
199 if ( file.open( IO_ReadOnly ) ) { 199 if ( file.open( IO_ReadOnly ) ) {
200 QByteArray rawData = file.readAll(); 200 QCString rawData ( file.readAll().data(),file.size()+1);
201 file.close(); 201 file.close();
202 QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); 202 int start = 0;
203 addrList = parseVCard( data ); 203#ifndef DESKTOP_VERSION
204 while ( start < rawData.size()-2 ) {
205 if ( rawData.at( start ) == '\r' )
206 if ( rawData.at( start+1 ) == '\n' )
207 if ( rawData.at( start+2 ) == ' ' ) {
208 rawData.remove(start,3);
209 --start;
210 }
211 ++start;
212 }
213#endif
214 addrList = parseVCard( QString::fromUtf8( rawData.data() ) );
204 } 215 }
205 216
206 } 217 }
207#endif //KAB_EMBEDDED 218#endif //KAB_EMBEDDED
208 219
209 return addrList; 220 return addrList;
210} 221}
211 222
212KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const 223KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const
213{ 224{
214 225
215 KABC::VCardTool tool; 226 KABC::VCardTool tool;
216 KABC::AddresseeList addrList; 227 KABC::AddresseeList addrList;
217 addrList = tool.parseVCards( data ); 228 addrList = tool.parseVCards( data );
218 // LR : I switched to the code, which is in current cvs HEAD 229 // LR : I switched to the code, which is in current cvs HEAD
219 /* 230 /*
220 uint numVCards = data.contains( "BEGIN:VCARD", false ); 231 uint numVCards = data.contains( "BEGIN:VCARD", false );
221 QStringList dataList = QStringList::split( "\r\n\r\n", data ); 232 QStringList dataList = QStringList::split( "\r\n\r\n", data );
222 233
223 for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) { 234 for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) {
224 KABC::Addressee addr; 235 KABC::Addressee addr;
225 bool ok = false; 236 bool ok = false;
226 237
227 if ( dataList[ i ].contains( "VERSION:3.0" ) ) 238 if ( dataList[ i ].contains( "VERSION:3.0" ) )
228 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 ); 239 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 );
229 else if ( dataList[ i ].contains( "VERSION:2.1" ) ) 240 else if ( dataList[ i ].contains( "VERSION:2.1" ) )
230 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 ); 241 ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 );
231 else { 242 else {
232 KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) ); 243 KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) );
233 continue; 244 continue;
234 } 245 }
235 246
236 if ( !addr.isEmpty() && ok ) 247 if ( !addr.isEmpty() && ok )
237 addrList.append( addr ); 248 addrList.append( addr );
238 else { 249 else {
239 QString text = i18n( "The selected file does not include a valid vCard. " 250 QString text = i18n( "The selected file does not include a valid vCard. "
240 "Please check the file and try again." ); 251 "Please check the file and try again." );
241 KMessageBox::sorry( parentWidget(), text ); 252 KMessageBox::sorry( parentWidget(), text );
242 } 253 }
243 } 254 }
244 */ 255 */
245 if ( addrList.isEmpty() ) { 256 if ( addrList.isEmpty() ) {
246 QString text = i18n( "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n" ); 257 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 ); 258 KMessageBox::sorry( parentWidget(), text );
248 } 259 }
249 return addrList; 260 return addrList;
250} 261}
251 262