forked from qt-creator/qt-creator
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:
committed by
Orgad Shaneh
parent
c7d7cb9d40
commit
f6c6224ebc
@@ -206,7 +206,7 @@ void TestCodeParser::onDocumentUpdated(const QString &fileName)
|
||||
Project *project = SessionManager::startupProject();
|
||||
if (!project)
|
||||
return;
|
||||
if (!project->files(Project::SourceFiles).contains(fileName))
|
||||
if (!SessionManager::projectContainsFile(project, Utils::FileName::fromString(fileName)))
|
||||
return;
|
||||
|
||||
scanForTests(QStringList(fileName));
|
||||
|
@@ -74,7 +74,6 @@ namespace ProjectExplorer {
|
||||
class SessionManagerPrivate
|
||||
{
|
||||
public:
|
||||
bool projectContainsFile(Project *p, const FileName &fileName) const;
|
||||
void restoreValues(const PersistentSettingsReader &reader);
|
||||
void restoreDependencies(const PersistentSettingsReader &reader);
|
||||
void restoreStartupProject(const PersistentSettingsReader &reader);
|
||||
@@ -658,19 +657,19 @@ Project *SessionManager::projectForFile(const Utils::FileName &fileName)
|
||||
{
|
||||
const QList<Project *> &projectList = projects();
|
||||
foreach (Project *p, projectList) {
|
||||
if (d->projectContainsFile(p, fileName))
|
||||
if (projectContainsFile(p, fileName))
|
||||
return p;
|
||||
}
|
||||
|
||||
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))
|
||||
m_projectFileCache.insert(p, p->files(Project::AllFiles));
|
||||
if (!d->m_projectFileCache.contains(p))
|
||||
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)
|
||||
@@ -686,7 +685,7 @@ void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
|
||||
void SessionManager::configureEditors(Project *project)
|
||||
{
|
||||
foreach (IDocument *document, DocumentModel::openedDocuments()) {
|
||||
if (d->projectContainsFile(project, document->filePath())) {
|
||||
if (projectContainsFile(project, document->filePath())) {
|
||||
foreach (IEditor *editor, DocumentModel::editorsForDocument(document)) {
|
||||
if (auto textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
|
||||
project->editorConfiguration()->configureEditor(textEditor);
|
||||
|
@@ -115,6 +115,7 @@ public:
|
||||
static Project *projectForNode(Node *node);
|
||||
static Node *nodeForFile(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);
|
||||
|
||||
|
Reference in New Issue
Block a user