Migrate LTS Tools Group 6 (D&L) to Qt6

Build script changes:
- Add --group6/--no-group6 argument support to new_docker_build.sh
- Add GROUP6_TARGETS array with 11 LTS tools
- Add BUILD_GROUP6 environment variable export
- Add GROUP6 build invocation in run_build_group function

Test infrastructure:
- Create CTest test files for all 11 Group 6 tools
- Add exclusion filters in tests/CMakeLists.txt for conditional builds
- Tests follow gtest pattern: CompilationStub, Qt6ApiCompatibility, BasicFunctionality

Qt6 migration bug fixes:
- DBAdministration: Fix m_id → id member access (3 files)
- DBAdministration: Add missing QFile include in showLogFile.cpp
- DBUpdate: Add CMAKE_AUTOUIC_SEARCH_PATHS for ui/ directory
- DBUpdate: Fix m_id → id, m_description → description (3 files)

Build validation:
- DBAdministration, DBOperatorSettingsRemover, DBUpdate build successfully
- Remaining tools blocked by pre-existing Group 3 (ExerciseManagement) errors
- Policy checks passed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-09-23 15:21:14 +00:00
1 parent fd3e5e8380
commit 9f0076a197
21 files changed
+548 -18

No files matched your search

@@ -21,6 +21,8 @@ SET(SRCS
main.cpp
)
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/ui)
SET(UPDATES
updates/1.00_create_db_version_tables.upd
updates/2.00_create_user_ets_ex_00.upd
@@ -51,13 +51,13 @@ bool ExercisesModel::initModel(const QSqlDatabase &db, const QString &version, c
while (q.next())
{
ExerciseUpdate e;
e.m_id = q.value(0).toInt();
e.id = q.value(0).toInt();
e.name = q.value(1).toString();
e.startTime = q.value(2).toLongLong();
e.endTime = q.value(3).toLongLong();
e.stateId = q.value(4).toInt();
e.schema = QStringLiteral("EX_")+QString::number(e.m_id);
e.schema = QStringLiteral("EX_")+QString::number(e.id);
e.isChecked = false;
QString stmt_db = QStringLiteral("SELECT id, version, description, updated, success FROM ") + e.schema +
@@ -67,7 +67,7 @@ bool ExercisesModel::initModel(const QSqlDatabase &db, const QString &version, c
if (q1.execAndFetch(stmt_db))
{
e.version = q1.value(1).toString();
e.m_description = q1.value(2).toString();
e.description = q1.value(2).toString();
e.updated = q1.value(3).toLongLong();
}
@@ -115,7 +115,7 @@ QVariant ExercisesModel::data(const QModelIndex &index, int role) const
switch (index.column())
{
case Id:
return e.m_id;
return e.id;
case Name:
return QString(e.name);
case StartTime:
@@ -127,7 +127,7 @@ QVariant ExercisesModel::data(const QModelIndex &index, int role) const
case Version:
return e.version;
case Description:
return e.m_description;
return e.description;
case Updated:
return DTG::toStringMSec(e.updated);
case Schema:
@@ -58,7 +58,7 @@ bool GlobalUpdatesModel::initModel(const QSqlDatabase &db, const QString &versio
if (q.execAndFetch(stmt))
{
gu.version = q.value(1).toString();
gu.m_description = q.value(2).toString();
gu.description = q.value(2).toString();
gu.updated = q.value(3).toLongLong();
}
int upperGuVersion = gu.version.split(QLatin1Char('.')).at(0).toInt();
@@ -104,7 +104,7 @@ QVariant GlobalUpdatesModel::data(const QModelIndex &index, int role) const
case Version:
return QString(gu.version);
case Description:
return QString(gu.m_description);
return QString(gu.description);
case Updated:
return DTG::toStringMSec(gu.updated);
}
@@ -40,9 +40,9 @@ bool HistoryModel::initModel(const QSqlDatabase &db, const QString &schema)
{
HistoryUpdate hu;
hu.schema = schema;
hu.m_id = q.value(0).toInt();
hu.id = q.value(0).toInt();
hu.version = q.value(1).toString();
hu.m_description = q.value(2).toString();
hu.description = q.value(2).toString();
hu.updated = q.value(3).toLongLong();
hu.success = q.value(4).toBool();
hu.message = q.value(5).toString();
@@ -66,13 +66,13 @@ QVariant HistoryModel::data(const QModelIndex &index, int role) const
switch (index.column())
{
case Id:
return hu.m_id;
return hu.id;
case Schema:
return QString(hu.schema);
case Version:
return QString(hu.version);
case Description:
return QString(hu.m_description);
return QString(hu.description);
case Updated:
return DTG::toStringMSec(hu.updated);
case Success: