From 2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e Mon Sep 17 00:00:00 2001 From: zautrix Date: Fri, 29 Oct 2004 11:23:51 +0000 Subject: added filedialog to xml im/export --- 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 @@ -163,7 +163,7 @@ bool ResourceQtopia::load() QDomDocument doc("mydocument" ); if ( !doc.setContent( &file ) ) { file.close(); - return false; + return true; } bool res; QDomElement docElem = doc.documentElement( ); 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 @@ -33,6 +33,7 @@ $Id$ #include "addressee.h" #include "xxportmanager.h" #include "qtopia_xxport.h" +#include /*US class QtopiaXXPortFactory : public XXPortFactory @@ -62,17 +63,24 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char * if ( mFactory && !mFactory->typeName( "qtopia" ).isEmpty() ) { - createImportAction( i18n( "Import Qtopia..." ) ); - createExportAction( i18n( "Export Qtopia..." ) ); + createImportAction( i18n( "Import xml (Qtopia)..." ) ); + createExportAction( i18n( "Export xml (Qtopia)..." ) ); } } bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { - return _exportContacts( list, identifier, defaultFileName ); + QString fn =KFileDialog::getSaveFileName( defaultFileName, i18n("Import xml file"), 0 ); + if ( fn == "" ) + return false; + + return _exportContacts( list, identifier, fn ); } KABC::AddresseeList QtopiaXXPort::importContacts( const QString &identifier ) const { - return _importContacts( identifier, defaultFileName ); + QString fn =KFileDialog::getOpenFileName( defaultFileName, i18n("Import xml file"), 0 ); + if ( fn == "" ) + return KABC::AddresseeList() ; + return _importContacts( identifier, fn ); } diff --git a/kaddressbook/xxportobject.cpp b/kaddressbook/xxportobject.cpp index 67e8406..bd9d986 100644 --- a/kaddressbook/xxportobject.cpp +++ b/kaddressbook/xxportobject.cpp @@ -29,6 +29,7 @@ $Id$ */ #include +#include #include #include @@ -176,50 +177,52 @@ bool XXPortResourceObject::isAvailable() bool XXPortResourceObject::_exportContacts( const KABC::AddresseeList &list, const QString& identifier, const QString& fileName ) { //create new resource - KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0 )); - - if (mResource == 0) - return false; - - if (fileName != QString::null) - mResource->setFileName( fileName ); - - - KABC::TmpAddressBook tmpAB; - - bool res = tmpAB.addResource( mResource ); - if (res == false) - { - delete mResource; - return false; - } - - res = tmpAB.load(); - if (res == false) - { - //removeResource deletes also the resource object, if the linkcount is 0 - tmpAB.removeResource( mResource ); - return false; - } - - - //Now check if the file has already entries, and ask the user if he wants to delete them first. - if (tmpAB.begin() != tmpAB.end()) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); - if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { - // Clean the database.. - tmpAB.clear(); + KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0 )); + + if (mResource == 0) + return false; + + if (fileName != QString::null) { + mResource->setFileName( fileName ); + } else + return false; + + + KABC::TmpAddressBook tmpAB; + + bool res = tmpAB.addResource( mResource ); + if (res == false) + { + delete mResource; + return false; + } + if ( QFile::exists ( fileName ) ) { + res = tmpAB.load(); + if (res == false) + { + //removeResource deletes also the resource object, if the linkcount is 0 + tmpAB.removeResource( mResource ); + return false; + } + + + //Now check if the file has already entries, and ask the user if he wants to delete them first. + if (tmpAB.begin() != tmpAB.end()) + { + QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); + if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { + // Clean the database.. + tmpAB.clear(); + } + } } - } + KABC::Addressee::List::ConstIterator it; + for ( it = list.begin(); it != list.end(); ++it ) { + tmpAB.insertAddressee(*it); + } - KABC::Addressee::List::ConstIterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - tmpAB.insertAddressee(*it); - } - - KABC::Ticket * ticket = tmpAB.requestSaveTicket(mResource); + KABC::Ticket * ticket = tmpAB.requestSaveTicket(mResource); res = false; if (ticket != 0) -- cgit v0.9.0.2