Autotest: Avoid needless iterations over the project files

Task-number: QTCREATORBUG-18185
Change-Id: I6c541cfa577331edc1ff3083d2f9b705ffc7ce73
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Orgad Shaneh
2017-05-10 22:48:55 +03:00
committed by Orgad Shaneh
parent c7d7cb9d40
commit f6c6224ebc
3 changed files with 8 additions and 8 deletions

View File

@@ -206,7 +206,7 @@ void TestCodeParser::onDocumentUpdated(const QString &fileName)
Project *project = SessionManager::startupProject(); Project *project = SessionManager::startupProject();
if (!project) if (!project)
return; return;
if (!project->files(Project::SourceFiles).contains(fileName)) if (!SessionManager::projectContainsFile(project, Utils::FileName::fromString(fileName)))
return; return;
scanForTests(QStringList(fileName)); scanForTests(QStringList(fileName));

View File

@@ -74,7 +74,6 @@ namespace ProjectExplorer {
class SessionManagerPrivate class SessionManagerPrivate
{ {
public: public:
bool projectContainsFile(Project *p, const FileName &fileName) const;
void restoreValues(const PersistentSettingsReader &reader); void restoreValues(const PersistentSettingsReader &reader);
void restoreDependencies(const PersistentSettingsReader &reader); void restoreDependencies(const PersistentSettingsReader &reader);
void restoreStartupProject(const PersistentSettingsReader &reader); void restoreStartupProject(const PersistentSettingsReader &reader);
@@ -658,19 +657,19 @@ Project *SessionManager::projectForFile(const Utils::FileName &fileName)
{ {
const QList<Project *> &projectList = projects(); const QList<Project *> &projectList = projects();
foreach (Project *p, projectList) { foreach (Project *p, projectList) {
if (d->projectContainsFile(p, fileName)) if (projectContainsFile(p, fileName))
return p; return p;
} }
return nullptr; return nullptr;
} }
bool SessionManagerPrivate::projectContainsFile(Project *p, const Utils::FileName &fileName) const bool SessionManager::projectContainsFile(Project *p, const Utils::FileName &fileName)
{ {
if (!m_projectFileCache.contains(p)) if (!d->m_projectFileCache.contains(p))
m_projectFileCache.insert(p, p->files(Project::AllFiles)); d->m_projectFileCache.insert(p, p->files(Project::AllFiles));
return m_projectFileCache.value(p).contains(fileName.toString()); return d->m_projectFileCache.value(p).contains(fileName.toString());
} }
void SessionManager::configureEditor(IEditor *editor, const QString &fileName) void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
@@ -686,7 +685,7 @@ void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
void SessionManager::configureEditors(Project *project) void SessionManager::configureEditors(Project *project)
{ {
foreach (IDocument *document, DocumentModel::openedDocuments()) { foreach (IDocument *document, DocumentModel::openedDocuments()) {
if (d->projectContainsFile(project, document->filePath())) { if (projectContainsFile(project, document->filePath())) {
foreach (IEditor *editor, DocumentModel::editorsForDocument(document)) { foreach (IEditor *editor, DocumentModel::editorsForDocument(document)) {
if (auto textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) { if (auto textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
project->editorConfiguration()->configureEditor(textEditor); project->editorConfiguration()->configureEditor(textEditor);

View File

@@ -115,6 +115,7 @@ public:
static Project *projectForNode(Node *node); static Project *projectForNode(Node *node);
static Node *nodeForFile(const Utils::FileName &fileName); static Node *nodeForFile(const Utils::FileName &fileName);
static Project *projectForFile(const Utils::FileName &fileName); static Project *projectForFile(const Utils::FileName &fileName);
static bool projectContainsFile(Project *p, const Utils::FileName &fileName);
static QStringList projectsForSessionName(const QString &session); static QStringList projectsForSessionName(const QString &session);