summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kabc/plugins/qtopia/resourceqtopia.cpp2
-rw-r--r--kaddressbook/xxport/qtopia_xxport.cpp16
-rw-r--r--kaddressbook/xxportobject.cpp9
3 files changed, 19 insertions, 8 deletions
diff --git a/kabc/plugins/qtopia/resourceqtopia.cpp b/kabc/plugins/qtopia/resourceqtopia.cpp
index d6df981..cf6b11a 100644
--- a/kabc/plugins/qtopia/resourceqtopia.cpp
+++ b/kabc/plugins/qtopia/resourceqtopia.cpp
@@ -160,13 +160,13 @@ bool ResourceQtopia::load()
160 return false; 160 return false;
161 } 161 }
162 162
163 QDomDocument doc("mydocument" ); 163 QDomDocument doc("mydocument" );
164 if ( !doc.setContent( &file ) ) { 164 if ( !doc.setContent( &file ) ) {
165 file.close(); 165 file.close();
166 return false; 166 return true;
167 } 167 }
168 bool res; 168 bool res;
169 QDomElement docElem = doc.documentElement( ); 169 QDomElement docElem = doc.documentElement( );
170 QDomNode n = docElem.firstChild(); 170 QDomNode n = docElem.firstChild();
171 while ( !n.isNull() ) { 171 while ( !n.isNull() ) {
172 QDomElement e = n.toElement(); 172 QDomElement e = n.toElement();
diff --git a/kaddressbook/xxport/qtopia_xxport.cpp b/kaddressbook/xxport/qtopia_xxport.cpp
index 0cf6546..fc4abbb 100644
--- a/kaddressbook/xxport/qtopia_xxport.cpp
+++ b/kaddressbook/xxport/qtopia_xxport.cpp
@@ -30,12 +30,13 @@ $Id$
30 30
31#include <qdir.h> 31#include <qdir.h>
32 32
33#include "addressee.h" 33#include "addressee.h"
34#include "xxportmanager.h" 34#include "xxportmanager.h"
35#include "qtopia_xxport.h" 35#include "qtopia_xxport.h"
36#include <kfiledialog.h>
36 37
37/*US 38/*US
38class QtopiaXXPortFactory : public XXPortFactory 39class QtopiaXXPortFactory : public XXPortFactory
39{ 40{
40 public: 41 public:
41 XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) 42 XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name )
@@ -59,20 +60,27 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char *
59 : XXPortResourceObject( ab, parent, name ) 60 : XXPortResourceObject( ab, parent, name )
60{ 61{
61 defaultFileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml"; 62 defaultFileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml";
62 63
63 if ( mFactory && !mFactory->typeName( "qtopia" ).isEmpty() ) 64 if ( mFactory && !mFactory->typeName( "qtopia" ).isEmpty() )
64 { 65 {
65 createImportAction( i18n( "Import Qtopia..." ) ); 66 createImportAction( i18n( "Import xml (Qtopia)..." ) );
66 createExportAction( i18n( "Export Qtopia..." ) ); 67 createExportAction( i18n( "Export xml (Qtopia)..." ) );
67 } 68 }
68} 69}
69 70
70bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) 71bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier )
71{ 72{
72 return _exportContacts( list, identifier, defaultFileName ); 73 QString fn =KFileDialog::getSaveFileName( defaultFileName, i18n("Import xml file"), 0 );
74 if ( fn == "" )
75 return false;
76
77 return _exportContacts( list, identifier, fn );
73} 78}
74 79
75KABC::AddresseeList QtopiaXXPort::importContacts( const QString &identifier ) const 80KABC::AddresseeList QtopiaXXPort::importContacts( const QString &identifier ) const
76{ 81{
77 return _importContacts( identifier, defaultFileName ); 82 QString fn =KFileDialog::getOpenFileName( defaultFileName, i18n("Import xml file"), 0 );
83 if ( fn == "" )
84 return KABC::AddresseeList() ;
85 return _importContacts( identifier, fn );
78} 86}
diff --git a/kaddressbook/xxportobject.cpp b/kaddressbook/xxportobject.cpp
index 67e8406..bd9d986 100644
--- a/kaddressbook/xxportobject.cpp
+++ b/kaddressbook/xxportobject.cpp
@@ -26,12 +26,13 @@ Enhanced 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 <qmap.h> 31#include <qmap.h>
32#include <qfile.h>
32#include <qsignalmapper.h> 33#include <qsignalmapper.h>
33 34
34#include <kaction.h> 35#include <kaction.h>
35#include <kmessagebox.h> 36#include <kmessagebox.h>
36#include <factory.h> 37#include <factory.h>
37 38
@@ -178,25 +179,27 @@ bool XXPortResourceObject::_exportContacts( const KABC::AddresseeList &list, con
178 //create new resource 179 //create new resource
179 KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0 )); 180 KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0 ));
180 181
181 if (mResource == 0) 182 if (mResource == 0)
182 return false; 183 return false;
183 184
184 if (fileName != QString::null) 185 if (fileName != QString::null) {
185 mResource->setFileName( fileName ); 186 mResource->setFileName( fileName );
187 } else
188 return false;
186 189
187 190
188 KABC::TmpAddressBook tmpAB; 191 KABC::TmpAddressBook tmpAB;
189 192
190 bool res = tmpAB.addResource( mResource ); 193 bool res = tmpAB.addResource( mResource );
191 if (res == false) 194 if (res == false)
192 { 195 {
193 delete mResource; 196 delete mResource;
194 return false; 197 return false;
195 } 198 }
196 199 if ( QFile::exists ( fileName ) ) {
197 res = tmpAB.load(); 200 res = tmpAB.load();
198 if (res == false) 201 if (res == false)
199 { 202 {
200 //removeResource deletes also the resource object, if the linkcount is 0 203 //removeResource deletes also the resource object, if the linkcount is 0
201 tmpAB.removeResource( mResource ); 204 tmpAB.removeResource( mResource );
202 return false; 205 return false;
@@ -209,13 +212,13 @@ bool XXPortResourceObject::_exportContacts( const KABC::AddresseeList &list, con
209 QString text( i18n( "Do you want to remove<br>all existing entries from<br>%1<br>before exporting.?" ) ); 212 QString text( i18n( "Do you want to remove<br>all existing entries from<br>%1<br>before exporting.?" ) );
210 if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { 213 if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) {
211 // Clean the database.. 214 // Clean the database..
212 tmpAB.clear(); 215 tmpAB.clear();
213 } 216 }
214 } 217 }
215 218 }
216 219
217 KABC::Addressee::List::ConstIterator it; 220 KABC::Addressee::List::ConstIterator it;
218 for ( it = list.begin(); it != list.end(); ++it ) { 221 for ( it = list.begin(); it != list.end(); ++it ) {
219 tmpAB.insertAddressee(*it); 222 tmpAB.insertAddressee(*it);
220 } 223 }
221 224