forked from qt-creator/qt-creator
ProjectExplorer: Remove versionControls argument from scanForFiles
Retrieving the list is cheap, there's no reason to store it and pass it through all these functions. Change-Id: I394b512c113af92f60cfb8c2f6561d1617d9cd36 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
377f5badd8
commit
2f6c6b632c
@@ -69,10 +69,7 @@ bool TreeScanner::asyncScanForFiles(const Utils::FileName &directory)
|
||||
m_scanFuture = fi->future();
|
||||
m_futureWatcher.setFuture(m_scanFuture);
|
||||
|
||||
if (m_versionControls.isEmpty())
|
||||
m_versionControls = Core::VcsManager::versionControls();
|
||||
|
||||
Utils::runAsync([this, fi, directory]() { TreeScanner::scanForFiles(fi, directory, m_filter, m_factory, m_versionControls); });
|
||||
Utils::runAsync([this, fi, directory]() { TreeScanner::scanForFiles(fi, directory, m_filter, m_factory); });
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -150,14 +147,12 @@ FileType TreeScanner::genericFileType(const Utils::MimeType &mimeType, const Uti
|
||||
}
|
||||
|
||||
void TreeScanner::scanForFiles(FutureInterface *fi, const Utils::FileName& directory,
|
||||
const FileFilter &filter, const FileTypeFactory &factory,
|
||||
QList<Core::IVersionControl *> &versionControls)
|
||||
const FileFilter &filter, const FileTypeFactory &factory)
|
||||
{
|
||||
std::unique_ptr<FutureInterface> fip(fi);
|
||||
fip->reportStarted();
|
||||
|
||||
Result nodes
|
||||
= FileNode::scanForFilesWithVersionControls(
|
||||
Result nodes = FileNode::scanForFiles(
|
||||
directory,
|
||||
[&filter, &factory](const Utils::FileName &fn) -> FileNode * {
|
||||
const Utils::MimeType mimeType = Utils::mimeTypeForFile(fn.toString());
|
||||
@@ -172,7 +167,7 @@ void TreeScanner::scanForFiles(FutureInterface *fi, const Utils::FileName& direc
|
||||
type = factory(mimeType, fn);
|
||||
|
||||
return new FileNode(fn, type, false);
|
||||
}, versionControls, fip.get());
|
||||
}, fip.get());
|
||||
|
||||
Utils::sort(nodes, ProjectExplorer::Node::sortByPath);
|
||||
|
||||
|
@@ -88,8 +88,7 @@ signals:
|
||||
|
||||
private:
|
||||
static void scanForFiles(FutureInterface *fi, const Utils::FileName &directory,
|
||||
const FileFilter &filter, const FileTypeFactory &factory,
|
||||
QList<Core::IVersionControl *> &versionControls);
|
||||
const FileFilter &filter, const FileTypeFactory &factory);
|
||||
|
||||
private:
|
||||
FileFilter m_filter;
|
||||
@@ -97,7 +96,6 @@ private:
|
||||
|
||||
FutureWatcher m_futureWatcher;
|
||||
Future m_scanFuture;
|
||||
QList<Core::IVersionControl *> m_versionControls;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
@@ -113,11 +113,9 @@ void NimProject::collectProjectFiles()
|
||||
m_lastProjectScan.start();
|
||||
QTC_ASSERT(!m_futureWatcher.future().isRunning(), return);
|
||||
FileName prjDir = projectDirectory();
|
||||
const QList<Core::IVersionControl *> versionControls = Core::VcsManager::versionControls();
|
||||
QFuture<QList<ProjectExplorer::FileNode *>> future = Utils::runAsync([prjDir, versionControls] {
|
||||
return FileNode::scanForFilesWithVersionControls(
|
||||
prjDir, [](const FileName &fn) { return new FileNode(fn, FileType::Source, false); },
|
||||
versionControls);
|
||||
QFuture<QList<ProjectExplorer::FileNode *>> future = Utils::runAsync([prjDir] {
|
||||
return FileNode::scanForFiles(
|
||||
prjDir, [](const FileName &fn) { return new FileNode(fn, FileType::Source, false); });
|
||||
});
|
||||
m_futureWatcher.setFuture(future);
|
||||
Core::ProgressManager::addTask(future, tr("Scanning for Nim files"), "Nim.Project.Scan");
|
||||
|
@@ -390,15 +390,15 @@ static QList<FileNode *> scanForFilesRecursively(const Utils::FileName &director
|
||||
}
|
||||
|
||||
QList<FileNode *>
|
||||
FileNode::scanForFilesWithVersionControls(const Utils::FileName &directory,
|
||||
const std::function<FileNode *(const Utils::FileName &)> factory,
|
||||
const QList<Core::IVersionControl *> &versionControls,
|
||||
QFutureInterface<QList<FileNode *>> *future)
|
||||
FileNode::scanForFiles(const Utils::FileName &directory,
|
||||
const std::function<FileNode *(const Utils::FileName &)> factory,
|
||||
QFutureInterface<QList<FileNode *>> *future)
|
||||
{
|
||||
QSet<QString> visited;
|
||||
if (future)
|
||||
future->setProgressRange(0, 1000000);
|
||||
return scanForFilesRecursively(directory, factory, visited, future, 0.0, 1000000.0, versionControls);
|
||||
return scanForFilesRecursively(directory, factory, visited, future, 0.0, 1000000.0,
|
||||
Core::VcsManager::versionControls());
|
||||
}
|
||||
|
||||
bool FileNode::supportsAction(ProjectAction action, const Node *node) const
|
||||
|
@@ -36,7 +36,6 @@
|
||||
#include <functional>
|
||||
|
||||
namespace Utils { class MimeType; }
|
||||
namespace Core { class IVersionControl; }
|
||||
|
||||
namespace ProjectExplorer {
|
||||
|
||||
@@ -191,10 +190,9 @@ public:
|
||||
const FileNode *asFileNode() const final { return this; }
|
||||
|
||||
static QList<FileNode *>
|
||||
scanForFilesWithVersionControls(const Utils::FileName &directory,
|
||||
const std::function<FileNode *(const Utils::FileName &fileName)> factory,
|
||||
const QList<Core::IVersionControl *> &versionControls,
|
||||
QFutureInterface<QList<FileNode *>> *future = nullptr);
|
||||
scanForFiles(const Utils::FileName &directory,
|
||||
const std::function<FileNode *(const Utils::FileName &fileName)> factory,
|
||||
QFutureInterface<QList<FileNode *>> *future = nullptr);
|
||||
bool supportsAction(ProjectAction action, const Node *node) const override;
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user