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:
berrux-dev committed 2026-10-20 09:36:57 +02:00
1 parent 2b957d1edb
commit 598fc2560e
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("{")) ||