void DolphinView::rename(const KURL& source, const QString& newName) { bool ok = false; if (newName.isEmpty() || (source.fileName() == newName)) { return; } KURL dest(source.upURL()); dest.addPath(newName); const bool destExists = KIO::NetAccess::exists(dest, false, Dolphin::mainWin().activeView()); if (destExists) { // the destination already exists, hence ask the user // how to proceed... KIO::RenameDlg renameDialog(this, i18n("File Already Exists"), source.path(), dest.path(), KIO::M_OVERWRITE); switch (renameDialog.exec()) { case KIO::R_OVERWRITE: // the destination should be overwritten ok = KIO::NetAccess::file_move(source, dest, -1, true); break; case KIO::R_RENAME: { // a new name for the destination has been used KURL newDest(renameDialog.newDestURL()); ok = KIO::NetAccess::file_move(source, newDest); break; } default: // the renaming operation has been canceled reload(); return; } } else { // no destination exists, hence just move the file to // do the renaming ok = KIO::NetAccess::file_move(source, dest); } if (ok) { m_statusBar->setMessage(i18n("Renamed file '%1' to '%2'.").arg(source.fileName(), dest.fileName()), DolphinStatusBar::OperationCompleted); DolphinCommand command(DolphinCommand::Rename, source, dest); UndoManager::instance().addCommand(command); } else { m_statusBar->setMessage(i18n("Renaming of file '%1' to '%2' failed.").arg(source.fileName(), dest.fileName()), DolphinStatusBar::Error); reload(); } }
void CopyTask::copyDirs( const QString& dirName, const QString& dest ) { qDebug()<<"Copy dir from: "<<dirName<<" dest: "<<dest; QDir dir( dirName ); if( !QDir( dest ).mkdir( dir.dirName() ) ) qDebug()<<"Creating dir"<<dest<<" "<<dir.dirName()<<" failed."; QString ndest; ndest.append( dest ); ndest.append( dir.dirName() ); QStringList dirs = dir.entryList( QDir::AllDirs | QDir::NoDotAndDotDot ); QString newDest(ndest); newDest.append("/"); QString newFrom(dirName); for( int i = 0; i < dirs.count(); i++ ) { //newDest.append( dirs[i] ); //newDest.append("/"); //if( !QDir( dest ).mkdir( dirs[i] ) ) // qDebug()<<"Creating dir"<<dirs[i]<<" failed."; newFrom.clear(); newFrom.append(dirName); newFrom.append("/"); newFrom.append( dirs[i] ); copyDirs( newFrom, newDest ); } QStringList files = dir.entryList( QDir::Files ); copyFiles( dirName, files, ndest ); }
NS_IMETHODIMP nsMsgOfflineImapOperation::AddMessageCopyOperation(const char *destinationBox) { SetOperation(kMsgCopy); nsCAutoString newDest(destinationBox); nsresult rv = GetCopiesFromDB(); NS_ENSURE_SUCCESS(rv, rv); m_copyDestinations.AppendCString(newDest); return SetCopiesToDB(); }
bool PathInfo::Update(const float destX, const float destY, const float destZ, bool useStraightPath) { PathNode newDest(destX, destY, m_sourceUnit->GetMap()->GetHeight(destX,destY,destZ,100.0f)); PathNode oldDest = getEndPosition(); setEndPosition(newDest); float x, y, z; m_sourceUnit->GetPosition(x, y, z); PathNode newStart(x, y, m_sourceUnit->GetMap()->GetHeight(x,y,z,100.0f)); PathNode oldStart = getStartPosition(); setStartPosition(newStart); m_useStraightPath = useStraightPath; PATH_DEBUG("++ PathInfo::Update() for %u \n", m_sourceUnit->GetGUID()); // make sure navMesh works - we can run on map w/o mmap if (!m_navMesh || !m_navMeshQuery) { BuildShortcut(); m_type = PathType(PATHFIND_NORMAL | PATHFIND_NOT_USING_PATH); return true; } float dist = m_sourceUnit->GetObjectBoundingRadius(); bool oldDestInRange = inRange(oldDest, newDest, dist, dist); // this can happen only if caller did a bad job calculating the need for path update if (oldDestInRange && inRange(newStart, oldStart, dist, dist)) { setEndPosition(oldDest); setStartPosition(oldStart); return false; } // check if destination moved - if not we can optimize something here // we are following old, precalculated path? if (oldDestInRange && m_pathPoints.size() > 2) { // our target is not moving - we just coming closer // we are moving on precalculated path - enjoy the ride PATH_DEBUG("++ PathInfo::Update:: precalculated path\n"); m_pathPoints.crop(1, 0); setNextPosition(m_pathPoints[1]); return false; } else { // target moved, so we need to update the poly path BuildPolyPath(newStart, newDest); return true; } }
bool PathInfo::Update(const float destX, const float destY, const float destZ, bool useStraightPath, bool forceDest) { PathNode newDest(destX, destY, destZ); PathNode oldDest = getEndPosition(); setEndPosition(newDest); float x, y, z; m_sourceUnit->GetPosition(x, y, z); PathNode newStart(x, y, z); PathNode oldStart = getStartPosition(); setStartPosition(newStart); m_useStraightPath = useStraightPath; m_forceDestination = forceDest; DEBUG_FILTER_LOG(LOG_FILTER_PATHFINDING, "++ PathInfo::Update() for %u \n", m_sourceUnit->GetGUID()); // make sure navMesh works - we can run on map w/o mmap if (!m_navMesh || !m_navMeshQuery || !HaveTiles(newDest) || m_sourceUnit->hasUnitState(UNIT_STAT_IGNORE_PATHFINDING)) { BuildShortcut(); m_type = PathType(PATHFIND_NORMAL | PATHFIND_NOT_USING_PATH); return true; } updateFilter(); // check if destination moved - if not we can optimize something here // we are following old, precalculated path? float dist = m_sourceUnit->GetObjectBoundingRadius(); if (inRange(oldDest, newDest, dist, dist) && m_pathPoints.size() > 2) { // our target is not moving - we just coming closer // we are moving on precalculated path - enjoy the ride DEBUG_FILTER_LOG(LOG_FILTER_PATHFINDING, "++ PathInfo::Update:: precalculated path\n"); m_pathPoints.crop(1, 0); setNextPosition(m_pathPoints[1]); return false; } else { // target moved, so we need to update the poly path BuildPolyPath(newStart, newDest); return true; } }
bool PathInfo::Update(float destX, float destY, float destZ, bool forceDest) { float x, y, z; m_sourceUnit->GetPosition(x, y, z); if (!Oregon::IsValidMapCoord(destX, destY, destZ) || !Oregon::IsValidMapCoord(x, y, z)) { sLog.outMMap("PathInfo::Update() called with invalid map coords, destX: %f destY: %f destZ: %f x: %f y: %f z: %f for creature %u", destX, destY, destZ, x, y, z, m_sourceUnit->GetGUIDLow()); m_type = PATHFIND_NOPATH; return false; } Vector3 oldDest = getEndPosition(); Vector3 newDest(destX, destY, destZ); setEndPosition(newDest); Vector3 newStart(x, y, z); setStartPosition(newStart); m_forceDestination = forceDest; sLog.outMMap("PathInfo::Update() for %u \n", m_sourceUnit->GetGUIDLow()); // make sure navMesh works - we can run on map w/o mmap // check if the start and end point have a .mmtile loaded (can we pass via not loaded tile on the way?) if (!m_navMesh || !m_navMeshQuery || m_sourceUnit->HasUnitState(UNIT_STATE_IGNORE_PATHFINDING) || !HaveTile(newStart) || !HaveTile(newDest)) { BuildShortcut(); m_type = PathType(PATHFIND_NORMAL | PATHFIND_NOT_USING_PATH); return true; } updateFilter(); BuildPolyPath(newStart, newDest); return true; }