Complete Qt6 migration: full clean build green across groups G1-G12 incl. runtime plugin set
new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
This commit is contained in:
1718 files changed
+126739
-18495
No files matched your search
@@ -87,16 +87,16 @@ bool LogViewTetraTelegramsParser::parse(const QString &filename)
|
||||
const QString content = QString::fromUtf8(f.readAll());
|
||||
f.close();
|
||||
|
||||
const QVector<QStringRef> lines = content.splitRef(QLatin1Char('\n'));
|
||||
QVector<QStringRef> linesTrimmed;
|
||||
const QStringList lines = content.split(QLatin1Char('\n'));
|
||||
QStringList linesTrimmed;
|
||||
linesTrimmed.reserve(lines.size());
|
||||
for (const QStringRef &line : lines)
|
||||
for (const QString &line : lines)
|
||||
linesTrimmed += line.trimmed();
|
||||
|
||||
int i = 0;
|
||||
while (i < linesTrimmed.size())
|
||||
{
|
||||
const QStringRef &line = linesTrimmed.at(i);
|
||||
const QString &line = linesTrimmed.at(i);
|
||||
if (line.startsWith(QLatin1String("struct")))
|
||||
{
|
||||
i = parseStruct(linesTrimmed, i);
|
||||
@@ -136,22 +136,22 @@ void LogViewTetraTelegramsParser::insertPod(const QString &type, int byteLen, bo
|
||||
}
|
||||
|
||||
|
||||
int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringRef> &lines, int iStartPos)
|
||||
int LogViewTetraTelegramsParser::parseStruct(const QStringList &lines, int iStartPos)
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(iStartPos));
|
||||
const QStringList tokens = tokenize(lines.at(iStartPos));
|
||||
if (tokens.size() < 2)
|
||||
return -1;
|
||||
const QStringRef &structType = tokens.at(1);
|
||||
if (structType.endsWith(QLatin1Char(';')))
|
||||
return iStartPos;
|
||||
const QString &structType = tokens.at(1);
|
||||
if (structType.endsWith(QLatin1Char(';')))
|
||||
return iStartPos;
|
||||
|
||||
StructInformation si;
|
||||
si.type = structType.toString();
|
||||
si.type = structType;
|
||||
if (tokens.size() > 2)
|
||||
{
|
||||
if (tokens.at(2) != QLatin1String(":"))
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not parse struct: '" << lines.at(iStartPos).toString() << "', line: " << iStartPos + 1;
|
||||
WARNING_LOG(m_logger) << "Could not parse struct: '" << lines.at(iStartPos) << "', line: " << iStartPos + 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -159,29 +159,29 @@ int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringRef> &lines, i
|
||||
{
|
||||
if (!si.baseStruct.isEmpty())
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not parse struct: '" << lines.at(iStartPos).toString() << "', line: " << iStartPos + 1;
|
||||
WARNING_LOG(m_logger) << "Could not parse struct: '" << lines.at(iStartPos) << "', line: " << iStartPos + 1;
|
||||
return -1;
|
||||
}
|
||||
QStringRef base = tokens.at(i);
|
||||
QString base = tokens.at(i);
|
||||
if (base == QLatin1String("public") ||
|
||||
base == QLatin1String("protected") ||
|
||||
base == QLatin1String("private"))
|
||||
continue;
|
||||
if (base.endsWith(QLatin1Char(',')))
|
||||
base.chop(1);
|
||||
if (base.endsWith(QLatin1Char('>')))
|
||||
if (base.endsWith(QLatin1Char('>')))
|
||||
{
|
||||
si.isVisible = true;
|
||||
continue;
|
||||
}
|
||||
si.baseStruct = tokens.at(i).toString();
|
||||
si.baseStruct = tokens.at(i);
|
||||
}
|
||||
}
|
||||
|
||||
int i = iStartPos + 1;
|
||||
while (i < lines.size())
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(i));
|
||||
const QStringList tokens = tokenize(lines.at(i));
|
||||
if (!validStructTokens(tokens))
|
||||
{
|
||||
++i;
|
||||
@@ -204,17 +204,17 @@ int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringRef> &lines, i
|
||||
const int parserCommentPos = tokens.at(2) == QLatin1String("=") ? 4 : 2;
|
||||
if (tokens.size() > parserCommentPos)
|
||||
{
|
||||
const QStringRef &comment = tokens.at(parserCommentPos);
|
||||
DEBUG_LOG(m_logger) << "comment: " << comment.toString();
|
||||
const QString &comment = tokens.at(parserCommentPos);
|
||||
DEBUG_LOG(m_logger) << "comment: " << comment;
|
||||
if (comment.startsWith(QLatin1String("//@array: ")))
|
||||
{
|
||||
const QStringRef hint = comment.mid(QLatin1String("//@array: ").size());
|
||||
QString structStr = QLatin1String("struct ") + si.type + QLatin1String("::") + tokens.at(0).toString() + QLatin1Char('\n') + hint.toString();
|
||||
const QString hint = comment.mid(QLatin1String("//@array: ").size());
|
||||
QString structStr = QLatin1String("struct ") + si.type + QLatin1String("::") + tokens.at(0) + QLatin1Char('\n') + hint;
|
||||
structStr.replace(QLatin1Char(';'), QLatin1String(";\n"));
|
||||
DEBUG_LOG(m_logger) << "structStr: " << structStr;
|
||||
parseStruct(structStr.splitRef(QLatin1Char('\n')), 0);
|
||||
parseStruct(structStr.split(QLatin1Char('\n')), 0);
|
||||
|
||||
mi.type = si.type + QLatin1String("::") + tokens.at(0).toString();
|
||||
mi.type = si.type + QLatin1String("::") + tokens.at(0);
|
||||
mi.isArray = true;
|
||||
}
|
||||
if (comment == QLatin1String("//@invisible"))
|
||||
@@ -222,13 +222,13 @@ int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringRef> &lines, i
|
||||
}
|
||||
}
|
||||
|
||||
QStringRef name = tokens.at(1);
|
||||
QString name = tokens.at(1);
|
||||
if (name.endsWith(QLatin1Char(';')))
|
||||
name.chop(1);
|
||||
if (mi.type.isEmpty())
|
||||
mi.type += tokens.at(0).toString();
|
||||
mi.type += tokens.at(0);
|
||||
categorizeMember(mi);
|
||||
mi.name = name.toString();
|
||||
mi.name = name;
|
||||
if (mi.isEnum && !mi.type.contains(QLatin1String("::")))
|
||||
{
|
||||
|
||||
@@ -265,29 +265,29 @@ int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringRef> &lines, i
|
||||
return i;
|
||||
}
|
||||
|
||||
int LogViewTetraTelegramsParser::parseEnum(const QVector<QStringRef> &lines, int iStartPos, const QString &ns, StructInformation *si)
|
||||
int LogViewTetraTelegramsParser::parseEnum(const QStringList &lines, int iStartPos, const QString &ns, StructInformation *si)
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(iStartPos));
|
||||
const QStringList tokens = tokenize(lines.at(iStartPos));
|
||||
if (tokens.size() < 2)
|
||||
return -1;
|
||||
QStringRef enumName = tokens.at(1);
|
||||
QString enumName = tokens.at(1);
|
||||
if (enumName == QLatin1String("class"))
|
||||
{
|
||||
if (tokens.size() < 3)
|
||||
return -1;
|
||||
enumName = tokens.at(2);
|
||||
}
|
||||
if (enumName.endsWith(QLatin1Char(';')))
|
||||
return iStartPos;
|
||||
if (enumName.endsWith(QLatin1Char(';')))
|
||||
return iStartPos;
|
||||
|
||||
EnumInformation ei;
|
||||
ei.type = enumName.toString();
|
||||
ei.type = enumName;
|
||||
ei.ns = ns;
|
||||
|
||||
int i = iStartPos + 1;
|
||||
while (i < lines.size())
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(i).split(QStringLiteral("//")).first());
|
||||
const QStringList tokens = tokenize(lines.at(i).split(QStringLiteral("//")).first());
|
||||
if (tokens.isEmpty() ||
|
||||
(tokens.at(0) == QLatin1String("{")))
|
||||
{
|
||||
@@ -308,19 +308,19 @@ int LogViewTetraTelegramsParser::parseEnum(const QVector<QStringRef> &lines, int
|
||||
else
|
||||
mi.type = ns + QStringLiteral("::") + ei.type;
|
||||
mi.isEnum = true;
|
||||
mi.name = tokens.at(1).toString();
|
||||
mi.name = tokens.at(1);
|
||||
si->member.push_back(std::move(mi));
|
||||
break;
|
||||
}
|
||||
WARNING_LOG(m_logger) << "Could not parse enum: '" << lines.at(i).toString() << "', line: " << i + 1;
|
||||
WARNING_LOG(m_logger) << "Could not parse enum: '" << lines.at(i) << "', line: " << i + 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
EnumValue ev;
|
||||
ev.key = tokens.at(0).toString();
|
||||
ev.key = tokens.at(0);
|
||||
if (tokens.size() == 3)
|
||||
{
|
||||
QStringRef value = tokens.at(2);
|
||||
QString value = tokens.at(2);
|
||||
if (value.endsWith(QLatin1Char(',')))
|
||||
value.chop(1);
|
||||
ev.value = value.toInt();
|
||||
@@ -346,28 +346,28 @@ int LogViewTetraTelegramsParser::parseEnum(const QVector<QStringRef> &lines, int
|
||||
return i;
|
||||
}
|
||||
|
||||
int LogViewTetraTelegramsParser::parseConstraint(const QVector<QStringRef> &lines, int iStartPos)
|
||||
int LogViewTetraTelegramsParser::parseConstraint(const QStringList &lines, int iStartPos)
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(iStartPos));
|
||||
const QStringList tokens = tokenize(lines.at(iStartPos));
|
||||
if (tokens.size() != 4)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(iStartPos).toString() << "'";
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(iStartPos) << "'";
|
||||
return -1;
|
||||
}
|
||||
const QStringRef &cs = tokens.at(3);
|
||||
const QString &cs = tokens.at(3);
|
||||
if (!cs.startsWith(QLatin1String("Constraints<")) || !cs.endsWith(QLatin1Char('>')))
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(iStartPos).toString() << "'";
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(iStartPos) << "'";
|
||||
return -1;
|
||||
}
|
||||
QStringRef structName = cs.mid(QLatin1String("Constraints<").size());
|
||||
QString structName = cs.mid(QLatin1String("Constraints<").size());
|
||||
structName.chop(1);
|
||||
DEBUG_LOG(m_logger) << "Constraint: " << structName.toString();
|
||||
DEBUG_LOG(m_logger) << "Constraint: " << structName;
|
||||
|
||||
int i = iStartPos + 1;
|
||||
while (i < lines.size())
|
||||
{
|
||||
const QVector<QStringRef> tokens = tokenize(lines.at(i));
|
||||
const QStringList tokens = tokenize(lines.at(i));
|
||||
if (tokens.isEmpty() ||
|
||||
(tokens.at(0) == QLatin1String("{")))
|
||||
{
|
||||
@@ -381,14 +381,14 @@ int LogViewTetraTelegramsParser::parseConstraint(const QVector<QStringRef> &line
|
||||
++i;
|
||||
continue;
|
||||
}
|
||||
const QVector<QStringRef> parts = tokens.at(6).split(QLatin1String("::"));
|
||||
const QStringList parts = tokens.at(6).split(QLatin1String("::"));
|
||||
if (parts.size() != 2)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(i).toString() << "'";
|
||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(i) << "'";
|
||||
return -1;
|
||||
}
|
||||
|
||||
QStringRef enumKey = parts.at(1);
|
||||
QString enumKey = parts.at(1);
|
||||
if (enumKey.endsWith(QLatin1Char(';')))
|
||||
enumKey.chop(1);
|
||||
bool bFound = false;
|
||||
@@ -396,14 +396,14 @@ int LogViewTetraTelegramsParser::parseConstraint(const QVector<QStringRef> &line
|
||||
{
|
||||
if (v.key == enumKey)
|
||||
{
|
||||
m_visibleTelegrams.insert(v.value, structName.toString());
|
||||
m_visibleTelegrams.insert(v.value, structName);
|
||||
bFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!bFound)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Could not find enum value '" << enumKey.toString() << "' in enum TelegramId";
|
||||
WARNING_LOG(m_logger) << "Could not find enum value '" << enumKey << "' in enum TelegramId";
|
||||
return -1;
|
||||
}
|
||||
++i;
|
||||
@@ -434,7 +434,7 @@ void LogViewTetraTelegramsParser::categorizeMember(MemberInformation &mi) const
|
||||
mi.isBinary = (mi.type == QLatin1String("std::vector<unsigned char>") || mi.type == QLatin1String("QByteArray"));
|
||||
}
|
||||
|
||||
static inline void bracketCount(const QStringRef &str, int &cntLt, int &cntGt)
|
||||
static inline void bracketCount(const QString &str, int &cntLt, int &cntGt)
|
||||
{
|
||||
cntLt = 0;
|
||||
cntGt = 0;
|
||||
@@ -447,21 +447,33 @@ static inline void bracketCount(const QStringRef &str, int &cntLt, int &cntGt)
|
||||
}
|
||||
}
|
||||
|
||||
QVector<QStringRef> LogViewTetraTelegramsParser::tokenize(const QStringRef &line) const
|
||||
QStringList LogViewTetraTelegramsParser::tokenize(const QString &line) const
|
||||
{
|
||||
QVector<QStringRef> ret = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
|
||||
QStringList ret = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
|
||||
// QStringRef is gone in Qt6: remember the offset of each token within
|
||||
// the original line so the merge logic below can rebuild substrings
|
||||
// (the equivalent of QStringRef(token.string(), position, length)).
|
||||
QVector<int> positions;
|
||||
positions.reserve(ret.size());
|
||||
int from = 0;
|
||||
for (const QString &t : ret)
|
||||
{
|
||||
const int pos = line.indexOf(t, from);
|
||||
positions.push_back(pos);
|
||||
from = pos + t.size() + 1;
|
||||
}
|
||||
int i = 0;
|
||||
while (i < ret.size())
|
||||
{
|
||||
const QStringRef &token = ret.at(i);
|
||||
const QString &token = ret.at(i);
|
||||
if (token.startsWith(QLatin1String("//")))
|
||||
{
|
||||
|
||||
|
||||
if (i == ret.size() - 1)
|
||||
break;
|
||||
const QStringRef &lastToken = ret.last();
|
||||
const QStringRef newToken = QStringRef(token.string(), token.position(), lastToken.position() - token.position() + lastToken.size());
|
||||
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
||||
const QString &lastToken = ret.last();
|
||||
const QString newToken = line.mid(positions.at(i), positions.last() - positions.at(i) + lastToken.size());
|
||||
DEBUG_LOG(m_logger) << "New Token: " << newToken;
|
||||
ret.resize(i + 1);
|
||||
ret[i] = newToken;
|
||||
break;
|
||||
@@ -476,9 +488,9 @@ QVector<QStringRef> LogViewTetraTelegramsParser::tokenize(const QStringRef &line
|
||||
++i;
|
||||
continue;
|
||||
}
|
||||
const QStringRef &nextToken = ret.at(i + 1);
|
||||
const QStringRef newToken = QStringRef(token.string(), token.position(), nextToken.position() - token.position() + nextToken.size());
|
||||
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
||||
const QString &nextToken = ret.at(i + 1);
|
||||
const QString newToken = line.mid(positions.at(i), positions.at(i + 1) - positions.at(i) + nextToken.size());
|
||||
DEBUG_LOG(m_logger) << "New Token: " << newToken;
|
||||
ret.removeAt(i + 1);
|
||||
ret[i] = newToken;
|
||||
}
|
||||
@@ -486,7 +498,7 @@ QVector<QStringRef> LogViewTetraTelegramsParser::tokenize(const QStringRef &line
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool LogViewTetraTelegramsParser::validStructTokens(const QVector<QStringRef> &tokens)
|
||||
bool LogViewTetraTelegramsParser::validStructTokens(const QStringList &tokens)
|
||||
{
|
||||
if (tokens.isEmpty() ||
|
||||
(tokens.at(0) == QLatin1String("{")) ||
|
||||
|
||||
Reference in new issue
Block a user