aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/pythoneditor
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2018-09-28 17:55:46 +0300
committerOrgad Shaneh <orgads@gmail.com>2018-10-01 16:44:16 +0000
commita31655cde705996d501a0eb869a706029c2c8c90 (patch)
treed653fa54ffb5f55d1ade456261ba49dfab49831a /src/plugins/pythoneditor
parentb1c37910f141825f4ffeb948a96a43a196c71c6f (diff)
PythonEditor: Avoid file duplication
Every add/remove of a file added another entry of the project file. Change-Id: I800adc3540c3fc8b109864e86ab590af5374e30b Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/pythoneditor')
-rw-r--r--src/plugins/pythoneditor/pythoneditorplugin.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index fe0c0b0430f..1441ba0ee43 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -312,11 +312,13 @@ PythonProject::PythonProject(const FileName &fileName) :
setDisplayName(fileName.toFileInfo().completeBaseName());
}
-static QStringList readLines(const QString &absoluteFileName)
+static QStringList readLines(const Utils::FileName &projectFile)
{
- QStringList lines;
+ const QString projectFileName = projectFile.fileName();
+ QSet<QString> visited = { projectFileName };
+ QStringList lines = { projectFileName };
- QFile file(absoluteFileName);
+ QFile file(projectFile.toString());
if (file.open(QFile::ReadOnly)) {
QTextStream stream(&file);
@@ -324,8 +326,10 @@ static QStringList readLines(const QString &absoluteFileName)
QString line = stream.readLine();
if (line.isNull())
break;
-
+ if (visited.contains(line))
+ continue;
lines.append(line);
+ visited.insert(line);
}
}
@@ -410,8 +414,7 @@ bool PythonProject::renameFile(const QString &filePath, const QString &newFilePa
void PythonProject::parseProject()
{
m_rawListEntries.clear();
- m_rawFileList = readLines(projectFilePath().toString());
- m_rawFileList << projectFilePath().fileName();
+ m_rawFileList = readLines(projectFilePath());
m_files = processEntries(m_rawFileList, &m_rawListEntries);
}