summaryrefslogtreecommitdiffabout
path: root/kaddressbook/xxportobject.cpp
authorzautrix <zautrix>2004-10-29 11:23:51 (UTC)
committer zautrix <zautrix>2004-10-29 11:23:51 (UTC)
commit2d28a226645f56a96fe0a8252e0d7e7b2cc4df2e (patch) (side-by-side diff)
tree183624f038dc3176e89db748f25b024aa75b6365 /kaddressbook/xxportobject.cpp
parent67146a3d92727f6fe3e92eacdb51da58bc7b0adf (diff)
downloadkdepimpi-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.cpp85
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)