author | zautrix <zautrix> | 2004-10-29 11:23:51 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-29 11:23:51 (UTC) |
commit | 2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e (patch) (side-by-side diff) | |
tree | 183624f038dc3176e89db748f25b024aa75b6365 /kaddressbook/xxportobject.cpp | |
parent | 67146a3d92727f6fe3e92eacdb51da58bc7b0adf (diff) | |
download | kdepimpi-2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e.zip kdepimpi-2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e.tar.gz kdepimpi-2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e.tar.bz2 |
added filedialog to xml im/export
Diffstat (limited to 'kaddressbook/xxportobject.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/xxportobject.cpp | 85 |
1 files changed, 44 insertions, 41 deletions
diff --git a/kaddressbook/xxportobject.cpp b/kaddressbook/xxportobject.cpp index 67e8406..bd9d986 100644 --- a/kaddressbook/xxportobject.cpp +++ b/kaddressbook/xxportobject.cpp @@ -8,48 +8,49 @@ (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include <qmap.h> +#include <qfile.h> #include <qsignalmapper.h> #include <kaction.h> #include <kmessagebox.h> #include <factory.h> #include "kabcore.h" #include "addressee.h" #include "tmpaddressbook.h" #include "xxportobject.h" class XXPortObject::XXPortObjectPrivate { public: QSignalMapper *mExportMapper; QSignalMapper *mImportMapper; }; XXPortObject::XXPortObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) : QObject( parent, name ), mAddressBook( ab ), mParentWidget( parent ), d( new XXPortObjectPrivate ) { @@ -155,92 +156,94 @@ void XXPortObject::slotImportActivated( const QString &data ) *******************************************************************/ XXPortResourceObject::XXPortResourceObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) : XXPortObject( ab, parent, name ), mFactory(0) { mFactory = KRES::Factory::self( "tmpcontact" ); } XXPortResourceObject::~XXPortResourceObject() { //do not delete the factory. It is a singleton, and selfcontained } bool XXPortResourceObject::isAvailable() { return (mFactory != 0); } 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<br>all existing entries from<br>%1<br>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<br>all existing entries from<br>%1<br>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) res = tmpAB.save( ticket ); //removeResource deletes also the resource object, if the linkcount is 0 tmpAB.removeResource( mResource ); return res; } KABC::AddresseeList XXPortResourceObject::_importContacts( const QString& identifier, const QString& fileName ) const { KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0 )); if (mResource == 0) return KABC::AddresseeList(); KABC::AddresseeList adrlst; if (fileName != QString::null) |