void VcsAnnotateTaskHandler::handle(const ProjectExplorer::Task &task) { QFileInfo fi(task.file); Core::IVersionControl *vc = Core::ICore::instance()->vcsManager()->findVersionControlForDirectory(fi.absolutePath()); Q_ASSERT(vc); Q_ASSERT(vc->supportsOperation(Core::IVersionControl::AnnotateOperation)); vc->vcsAnnotate(fi.absoluteFilePath(), task.line); }
bool VcsAnnotateTaskHandler::canHandle(const ProjectExplorer::Task &task) { QFileInfo fi(task.file); if (!fi.exists() || !fi.isFile() || !fi.isReadable()) return false; Core::IVersionControl *vc = Core::ICore::instance()->vcsManager()->findVersionControlForDirectory(fi.absolutePath()); if (!vc) return false; return vc->supportsOperation(Core::IVersionControl::AnnotateOperation); }
void DocumentManager::addFileToVersionControl(const QString &directoryPath, const QString &newFilePath) { Core::IVersionControl *versionControl = Core::VcsManager::findVersionControlForDirectory(directoryPath); if (versionControl && versionControl->supportsOperation(Core::IVersionControl::AddOperation)) { const QMessageBox::StandardButton button = QMessageBox::question(Core::ICore::mainWindow(), Core::VcsManager::msgAddToVcsTitle(), Core::VcsManager::msgPromptToAddToVcs(QStringList(newFilePath), versionControl), QMessageBox::Yes | QMessageBox::No); if (button == QMessageBox::Yes && !versionControl->vcsAdd(newFilePath)) { Core::AsynchronousMessageBox::warning(Core::VcsManager::msgAddToVcsFailedTitle(), Core::VcsManager::msgToAddToVcsFailed(QStringList(newFilePath), versionControl)); } } }
bool FileUtils::renameFile(const QString &orgFilePath, const QString &newFilePath) { if (orgFilePath == newFilePath) return false; QString dir = QFileInfo(orgFilePath).absolutePath(); Core::IVersionControl *vc = Core::ICore::vcsManager()->findVersionControlForDirectory(dir); bool result = false; if (vc && vc->supportsOperation(Core::IVersionControl::MoveOperation)) result = vc->vcsMove(orgFilePath, newFilePath); if (!result) // The moving via vcs failed or the vcs does not support moving, fall back result = fileSystemRenameFile(orgFilePath, newFilePath); if (result) { // yeah we moved, tell the filemanager about it Core::DocumentManager::renamedFile(orgFilePath, newFilePath); } return result; }