diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2018-09-28 17:55:46 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2018-10-01 16:44:16 +0000 |
commit | a31655cde705996d501a0eb869a706029c2c8c90 (patch) | |
tree | d653fa54ffb5f55d1ade456261ba49dfab49831a /src/plugins/pythoneditor | |
parent | b1c37910f141825f4ffeb948a96a43a196c71c6f (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.cpp | 15 |
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); } |