diff options
Diffstat (limited to 'kresources/lib/groupwaredataadaptor.cpp')
-rw-r--r-- | kresources/lib/groupwaredataadaptor.cpp | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/kresources/lib/groupwaredataadaptor.cpp b/kresources/lib/groupwaredataadaptor.cpp deleted file mode 100644 index 85dacdaa8..000000000 --- a/kresources/lib/groupwaredataadaptor.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/* - This file is part of tdepim. - - Copyright (c) 2004 Cornelius Schumacher <schumacher@kde.org> - Copyright (c) 2004 Till Adam <adam@kde.org> - Copyright (c) 2005 Reinhold Kainhofer <reinhold@kainhofer.com> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "groupwaredataadaptor.h" -#include <kdebug.h> -#include <kio/job.h> -#include <libemailfunctions/idmapper.h> - -using namespace KPIM; - -GroupwareUploadItem::GroupwareUploadItem( UploadType type ) : mItemType( KPIM::FolderLister::Unknown ), mType( type ) -{ -} - -KURL GroupwareUploadItem::adaptNewItemUrl( GroupwareDataAdaptor *adaptor, - const KURL &baseurl ) -{ -kdDebug()<<"GroupwareUploadItem::adaptNewItemUrl, baseurl=" << baseurl.url() << endl; - if ( adaptor ) { - TQString path( adaptor->defaultNewItemName( this ) ); -kdDebug() << "path=" << path << endl; - KURL u( baseurl ); - if ( path.isEmpty() ) return u; - else { - u.addPath( path ); -kdDebug() << "Final Path for new item: " << u.url() << endl; - return u; - } - } else return baseurl; -} - -TDEIO::TransferJob *GroupwareUploadItem::createRawUploadJob( - GroupwareDataAdaptor *adaptor, const KURL &/*baseurl*/ ) -{ - Q_ASSERT( adaptor ); - if ( !adaptor ) return 0; - const TQString dta = data(); - //kdDebug(7000) << "Uploading: " << data << endl; - KURL upUrl( url() ); - if ( adaptor ) - adaptor->adaptUploadUrl( upUrl ); - kdDebug(7000) << "Uploading to: " << upUrl.prettyURL() << endl; - TDEIO::TransferJob *job = TDEIO::storedPut( dta.utf8(), upUrl, -1, true, - false, false ); - job->addMetaData( "PropagateHttpHeader", "true" ); - if ( adaptor ) { - job->addMetaData( "customHTTPHeader", "Content-Type: " + adaptor->mimeType() ); - } - return job; -} - -TDEIO::TransferJob *GroupwareUploadItem::createUploadNewJob( - GroupwareDataAdaptor *adaptor, const KURL &baseurl ) -{ -kdDebug()<<"GroupwareUploadItem::createUploadNewJob, baseurl=" << baseurl.url() << endl; - setUrl( adaptNewItemUrl( adaptor, baseurl ) ); - TDEIO::TransferJob *job = createRawUploadJob( adaptor, baseurl ); - if ( job ) { - kdDebug() << "Adding If-None-Match " << endl; - TQString header; - if ( job->outgoingMetaData().contains("customHTTPHeader") ) { - header = job->outgoingMetaData()["customHTTPHeader"]; - header += "\r\n"; - } - header += "If-None-Match: *"; - job->addMetaData( "customHTTPHeader", header ); - } - return job; -} - -TDEIO::TransferJob *GroupwareUploadItem::createUploadJob( - GroupwareDataAdaptor *adaptor, const KURL &baseurl ) -{ -kdDebug()<<"GroupwareUploadItem::createUploadJob" << endl; - TDEIO::TransferJob *job = createRawUploadJob( adaptor, baseurl ); - if ( job && adaptor ) { - kdDebug()<<"Adding If-Match header: " << adaptor->idMapper()->fingerprint( uid() ) << endl; - TQString header; - if ( job->outgoingMetaData().contains("customHTTPHeader") ) { - header = job->outgoingMetaData()["customHTTPHeader"]; - header += "\r\n"; - } -kdDebug()<<"old HEADER: " << header << endl; - header += "If-Match: " + adaptor->idMapper()->fingerprint( uid() ); -kdDebug()<<"new HEADER: " << header << endl; - job->addMetaData( "customHTTPHeader", header ); - } - return job; -} - - -GroupwareDataAdaptor::GroupwareDataAdaptor() - : TQObject(), mFolderLister( 0 ), mIdMapper( 0 ) -{ -} - -GroupwareDataAdaptor::~GroupwareDataAdaptor() -{ -} - -void GroupwareDataAdaptor::setUserPassword( KURL &url ) -{ - kdDebug(5800) << "GroupwareDataAdaptor::setUserPassword, mUser=" - << mUser << endl; - url.setUser( mUser ); - url.setPass( mPassword ); -} - -FolderLister::Entry::List GroupwareDataAdaptor::defaultFolders() -{ - return FolderLister::Entry::List(); -} - -TDEIO::TransferJob *GroupwareDataAdaptor::createUploadJob( const KURL &url, - GroupwareUploadItem *item ) -{ - if ( item ) { - TDEIO::TransferJob *job = item->createUploadJob( this, url ); - setUidForJob( job, item->uid() ); - return job; - } else return 0; -} - -TDEIO::TransferJob *GroupwareDataAdaptor::createUploadNewJob( const KURL &url, - GroupwareUploadItem *item ) -{ -kdDebug()<<"GroupwareDataAdaptor::createUploadNewJob, url=" << url.url() << endl; - if ( item ) { - TDEIO::TransferJob *job = item->createUploadNewJob( this, url ); - setUidForJob( job, item->uid() ); - return job; - } else return 0; -} - -void GroupwareDataAdaptor::processDownloadListItem( const KURL &entry, - const TQString &newFingerprint, KPIM::FolderLister::ContentType type ) -{ - bool download = false; - const TQString &location = entry.path(); - - emit itemOnServer( entry ); - // if not locally present, download - const TQString &localId = idMapper()->localId( location ); - kdDebug(5800) << "Looking up remote: " << location - << " found: " << localId << endl; - if ( localId.isEmpty() || !localItemExists( localId ) ) { - //kdDebug(7000) << "Not locally present, download: " << location << endl; - download = true; - } else { - kdDebug(5800) << "Locally present " << endl; - // locally present, let's check if it's newer than what we have - const TQString &oldFingerprint = idMapper()->fingerprint( localId ); - if ( oldFingerprint != newFingerprint ) { - kdDebug(5800) << "Fingerprint changed old: " << oldFingerprint << - " new: " << newFingerprint << endl; - // something changed on the server, check if we also changed it locally - if ( localItemHasChanged( localId ) ) { - // TODO conflict resolution - kdDebug(5800) << "TODO conflict resolution" << endl; - download = true; - } else { - download = true; - } - } else { - kdDebug(5800) << "Fingerprint not changed, don't download this " << endl; - } - } - if ( download ) { - emit itemToDownload( entry, type ); - } -} - -bool GroupwareDataAdaptor::interpretRemoveJob( TDEIO::Job *job, const TQString &/*jobData*/ ) -{ - if ( !job ) return false; - TDEIO::DeleteJob *deljob = dynamic_cast<TDEIO::DeleteJob*>(job); - bool error = job->error(); - const TQString err = job->errorString(); - - if ( deljob ) { - KURL::List urls( deljob->urls() ); - for ( KURL::List::Iterator it = urls.begin(); it != urls.end(); ++it ) { - if ( error ) { - emit itemDeletionError( *it, err ); - } else { - // FIXME: Don't use TQString() here - emit itemDeleted( TQString(), *it ); - } - } - return true; - } else { - return false; - } -} - - -bool GroupwareDataAdaptor::interpretUploadJob( TDEIO::Job *job, const TQString &/*jobData*/ ) -{ - kdDebug(7000) << "GroupwareDataAdaptor::interpretUploadJob " << endl; - TDEIO::TransferJob *trfjob = dynamic_cast<TDEIO::TransferJob*>(job); - bool error = job->error(); - const TQString err = job->errorString(); - - if ( trfjob ) { - KURL url( trfjob->url() ); - if ( error ) { - emit itemUploadError( url, err ); - } else { - // We don't know the local id here (and we don't want to extract it from - // the idMapper, that's the task of the receiver - emit itemUploaded( uidFromJob( job ), url ); - } - return true; - } else { - return false; - } -} - -bool GroupwareDataAdaptor::interpretUploadNewJob( TDEIO::Job *job, const TQString &/*jobData*/ ) -{ -// TODO: How does the incidence mapper know the old/new ids??? - kdDebug(7000) << "GroupwareDataAdaptor::interpretUploadNewJob " << endl; - TDEIO::TransferJob *trfjob = dynamic_cast<TDEIO::TransferJob*>(job); - bool error = job->error(); - const TQString err = job->errorString(); - - if ( trfjob ) { - KURL url( trfjob->url() ); - if ( error ) { - emit itemUploadNewError( idMapper()->localId( url.path() ), err ); - } else { - // We don't know the local id here (and we don't want to extract it from - // the idMapper, that's the task of the receiver - emit itemUploadedNew( uidFromJob( job ), url ); - } - return true; - } else { - return false; - } -} - -TQString GroupwareDataAdaptor::uidFromJob( TDEIO::Job *job ) const -{ -kdDebug()<<"GroupwareDataAdaptor::uidFromJob( "<<job<<")"<<endl; - if ( mJobUIDMap.contains( job ) ) { - kdDebug()<<" Contained: "<< mJobUIDMap[job] << endl; - return mJobUIDMap[ job ]; - } else { - return TQString(); - } -} - -void GroupwareDataAdaptor::setUidForJob( TDEIO::Job *job, const TQString &uid ) -{ - if ( uid.isEmpty() ) { - mJobUIDMap.remove( job ); - } else { - mJobUIDMap[ job ] = uid; - } -} - - -#include "groupwaredataadaptor.moc" |