forked from qt-creator/qt-creator
Python: unify reading project files
Also support remote file paths for old style project files and do not change order of files in the new project file. Change-Id: I49b0781b26ca33b605aef674a04ee676f1848986 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -125,9 +125,9 @@ static QStringList readLines(const FilePath &projectFile)
|
|||||||
QSet<QString> visited = { projectFileName };
|
QSet<QString> visited = { projectFileName };
|
||||||
QStringList lines = { projectFileName };
|
QStringList lines = { projectFileName };
|
||||||
|
|
||||||
QFile file(projectFile.toString());
|
const expected_str<QByteArray> contents = projectFile.fileContents();
|
||||||
if (file.open(QFile::ReadOnly)) {
|
if (contents) {
|
||||||
QTextStream stream(&file);
|
QTextStream stream(contents.value());
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
const QString line = stream.readLine();
|
const QString line = stream.readLine();
|
||||||
@@ -145,17 +145,17 @@ static QStringList readLines(const FilePath &projectFile)
|
|||||||
|
|
||||||
static QStringList readLinesJson(const FilePath &projectFile, QString *errorMessage)
|
static QStringList readLinesJson(const FilePath &projectFile, QString *errorMessage)
|
||||||
{
|
{
|
||||||
QStringList lines = { projectFile.fileName() };
|
const QString projectFileName = projectFile.fileName();
|
||||||
|
QSet<QString> visited = { projectFileName };
|
||||||
|
QStringList lines = { projectFileName };
|
||||||
|
|
||||||
const QJsonObject obj = readObjJson(projectFile, errorMessage);
|
const QJsonObject obj = readObjJson(projectFile, errorMessage);
|
||||||
if (obj.contains("files")) {
|
for (const QJsonValue &file : obj.value("files").toArray()) {
|
||||||
const QJsonValue files = obj.value("files");
|
const QString fileName = file.toString();
|
||||||
const QJsonArray files_array = files.toArray();
|
if (visited.contains(fileName))
|
||||||
QSet<QString> visited;
|
continue;
|
||||||
for (const auto &file : files_array)
|
lines.append(fileName);
|
||||||
visited.insert(file.toString());
|
visited.insert(fileName);
|
||||||
|
|
||||||
lines.append(Utils::toList(visited));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return lines;
|
return lines;
|
||||||
|
|||||||
Reference in New Issue
Block a user