/*************************************************************************** copytodlg.cpp - description ------------------- begin : Mon Mar 27 2000 copyright : (C) 2000 by Yacovlev Alexander & Dmitry Poplavsky (C) 2001-2002 Andras Mantia ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // qt includes // kde includes #include #include //app includes #include "copyto.h" #include "qextfileinfo.h" CopyTo::CopyTo(const KURL& dirURL) { m_InitialDirUrl = dirURL; } CopyTo::~CopyTo(){ } KURL CopyTo::copy(const KURL& urlToCopy, const KURL& destination) { m_destList.clear(); KURL targetDirURL = KURL(); if ( destination.isEmpty() ) { targetDirURL = m_InitialDirUrl; } else { targetDirURL = destination; } targetDirURL.adjustPath(1); bool doCopy = true; if (!QExtFileInfo::exists(targetDirURL, false, 0L)) { doCopy = QExtFileInfo::createDir(targetDirURL, 0L); } KURL destURL; if (doCopy) { TDEIO::UDSEntry entry; TDEIO::NetAccess::stat(urlToCopy, entry, 0); KFileItem item(entry, urlToCopy, false, true); destURL = targetDirURL; destURL.setPath(destURL.path(1) + urlToCopy.fileName(false)); if (item.isDir()) destURL.adjustPath(1); TDEIO::CopyJob *job = TDEIO::copy(urlToCopy, destURL, true); connect( job, TQT_SIGNAL(result( TDEIO::Job *)), TQT_SLOT (slotResult( TDEIO::Job *))); TQString path = destURL.path(); if (path != "." && path != "..") m_destList.append(destURL); } return destURL; } void CopyTo::slotResult( TDEIO::Job *) { emit addFilesToProject(m_destList); emit deleteDialog(this); } KURL::List CopyTo::copy(const KURL::List& sourceList, const KURL& destination ) { m_listCopy = true; m_destList.clear(); KURL targetDirURL = KURL(); if ( destination.isEmpty() ) { targetDirURL = m_InitialDirUrl; } else { targetDirURL = destination; } bool doCopy = true; if (!QExtFileInfo::exists(targetDirURL, false, 0L)) { doCopy = QExtFileInfo::createDir(targetDirURL, 0L); } TDEIO::UDSEntry entry; if (doCopy) { TQString path; for (uint i = 0; i < sourceList.count(); i++) { KURL srcURL = sourceList[i]; TDEIO::NetAccess::stat(srcURL, entry, 0); KFileItem item(entry, srcURL, false, true); KURL u = targetDirURL; u.setPath(targetDirURL.path(1) + srcURL.fileName()); if (item.isDir()) u.adjustPath(1); path = u.path(); if (path != "." && path != "..") m_destList.append(u); } TDEIO::CopyJob *job = TDEIO::copy(sourceList, targetDirURL, true); connect( job, TQT_SIGNAL(result( TDEIO::Job *)), TQT_SLOT (slotResult( TDEIO::Job *))); } return m_destList; } #include "copyto.moc"