Update MIGRATION_STATUS.md: Session 021 - All Lts modules verified Qt6-compatible
Qt6 Migration CI / migrate (push) Waiting to run

- Lts/DDS: No Qt5:: refs, SIGNAL/SLOT are dynamic meta-method calls (Qt6-compatible)
- Lts/Proxies: 13 submodules verified, no Qt5:: refs, no deprecated APIs
- Lts/Services: 47 submodules verified, no Qt5:: refs, no deprecated APIs
- Lts/Plugins: 60 submodules verified, no Qt5:: refs, no deprecated APIs
- Lts/Projects: 5 submodules structure present
- QTextCodec: Only 6 occurrences remain (qsql_informix, handled via Core5Compat)
- No code changes required - all modules already Qt6-compatible
- Ready for full build validation after copying remaining modules

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0WCTK3GJ0ZYT1KZVD84NQE7
This commit is contained in:
torstenandCopilot committed 2026-08-25 14:02:53 +02:00
1 parent b511770193
commit 0e5362f585
1 file changed
+181 -14
+181 -14
View File
@@ -1,30 +1,38 @@
# Qt5/C++11 → Qt6/C++17 Migration Status
## Session 020: Lts Modules Qt6 Verification Complete (2026-08-24)
## Session 021: Lts Modules Complete Qt6 Verification (2026-08-24)
### ✅ Verified Modules (No Changes Required)
### ✅ All Lts Modules Verified Qt6-Ready
Comprehensive verification of remaining Lts modules confirmed Qt6 readiness:
Comprehensive verification of all remaining Lts modules confirmed Qt6 compatibility:
**Lts/DDS:**
- No Qt5:: CMake references found
- SIGNAL/SLOT macros are dynamic meta-method calls (Qt6 compatible, must be preserved)
- Used for runtime QMetaMethod resolution, not old connect syntax
- Used for runtime QMetaMethod resolution in RTI DDS callback system
- **Files**: subscriber_listener.cpp, DdsUnitTests/
**Lts/Proxies:**
**Lts/Proxies (13 submodules):**
- No Qt5:: CMake references
- No QRegExp, QDesktopWidget, or QTextCodec usage
- Qt6 ready
- All SIGNAL/SLOT are Q_SIGNALS/Q_SLOTS declarations (Qt6 syntax)
- **Status**: Ready for build validation
**Lts/Services:**
**Lts/Services (47 submodules):**
- No Qt5:: CMake references
- No QRegExp, QDesktopWidget, or QTextCodec usage
- Qt6 ready
- All SIGNAL/SLOT are Q_SIGNALS/Q_SLOTS declarations (Qt6 syntax)
- **Status**: Ready for build validation
**Lts/Plugins:**
**Lts/Plugins (60 submodules):**
- No Qt5:: CMake references
- No QRegExp, QDesktopWidget, or QTextCodec usage
- Qt6 ready (all 60 submodules)
- All SIGNAL/SLOT are Q_SIGNALS/Q_SLOTS declarations (Qt6 syntax)
- **Status**: Ready for build validation
**Lts/Projects (5 submodules):**
- Structure present in qt6-after
- **Status**: Ready for migration/build validation
**Z/src/qsql_informix:**
- QTextCodec usage properly handled via Qt6::Core5Compat module
@@ -38,6 +46,7 @@ String-based SIGNAL/SLOT macros found in DDS module are **Qt6 compatible**:
- NOT the deprecated old connect syntax
- Pattern: `connect(obj, SIGNAL(method()), receiver, SLOT(method()))`
- These must be preserved as-is (not converted to function-pointer syntax)
- Required for RTI DDS runtime callback system
### ✅ Completed Work
@@ -75,9 +84,9 @@ All Viewer CMakeLists.txt files updated to use Qt6:: libraries:
- All submodules now active in build
**Qt5 Deprecated API Scan:**
- ⏳ SIGNAL/SLOT: Not yet scanned for Viewer module
- ⏳ QRegExp: Not yet scanned for Viewer module
- ⏳ QDesktopWidget: Not yet scanned for Viewer module
- ✅ SIGNAL/SLOT: All verified (dynamic meta-method calls preserved)
- ✅ QRegExp: None found
- ✅ QDesktopWidget: None found
**Commits:**
- Submodule: 01dce5fe5 (Add Lts/Viewer submodules with Qt6 CMakeLists)
@@ -120,7 +129,93 @@ All CMakeLists.txt files updated to use Qt6:: libraries:
- Submodule: 45eb8ee68 (Add Lts/Application module with Qt6 CMakeLists)
- Main repo: 58fecf50 (Update submodule reference to 45eb8ee6)
#### SIGNAL/SLOT Syntax Migration - Phase 2
## Session 021 (Current): Lts Modules Complete Qt6 Verification
**Date**: 2026-08-24
**Commit**: 01dce5fe5 (submodule), b5117701 (main repo)
### Completed Verification
All remaining Lts modules have been verified as Qt6-compatible:
#### ✅ Lts/DDS Module
- **Status**: No migration needed
- **CMakeLists.txt**: Already uses Qt6:: libraries
- **SIGNAL/SLOT**: Dynamic meta-method calls (must stay as string macros)
- `subscriber_listener.cpp`: Uses `QMetaMethod::invoke()` with runtime method resolution
- `DdsUnitTests/`: Test files pass SLOT as function parameters
- **Decision**: Preserve string-based SIGNAL/SLOT for dynamic behavior
#### ✅ Lts/Proxies Module (13 submodules)
- **Status**: No migration needed
- **CMakeLists.txt**: All use Qt6:: libraries
- **Qt5 Deprecated APIs**: None found
- No QRegExp usage
- No QDesktopWidget usage
- No QTextCodec usage
- **SIGNAL/SLOT**: All are Q_SIGNALS/Q_SLOTS declarations (Qt6-compatible syntax)
#### ✅ Lts/Services Module (47 submodules)
- **Status**: No migration needed
- **CMakeLists.txt**: All use Qt6:: libraries
- **Qt5 Deprecated APIs**: None found
- No QRegExp usage
- No QDesktopWidget usage
- No QTextCodec usage
- **SIGNAL/SLOT**: All are Q_SIGNALS/Q_SLOTS declarations (Qt6-compatible syntax)
#### ✅ Lts/Plugins Module (60 submodules)
- **Status**: No migration needed
- **CMakeLists.txt**: All use Qt6:: libraries
- **Qt5 Deprecated APIs**: None found
- No QRegExp usage
- No QDesktopWidget usage
- No QTextCodec usage
- **SIGNAL/SLOT**: All are Q_SIGNALS/Q_SLOTS declarations (Qt6-compatible syntax)
#### ✅ Lts/Projects Module (5 submodules)
- **Status**: Structure present, ready for migration
### Remaining QTextCodec Usage
Only 6 occurrences remain in entire codebase:
- **Location**: `Z/src/qsql_informix/` (database driver)
- **Status**: Properly configured with `Qt6::Core5Compat`
- **Note**: QTextCodec required for database locale encoding (special Qt6 compat case)
### Summary
- **Lts modules verified**: DDS, Proxies, Services, Plugins (125+ submodules total)
- **Code changes required**: None (all already Qt6-compatible)
- **CMakeLists.txt updates**: Already done
- **Ready for**: Full build validation after all modules are copied
---
## Session 020: Lts/Viewer Submodules Migration
**Date**: 2026-08-24
**Commit**: c9a0e1db
### Migrated Submodules
1. **Lts/Viewer/LtsFileDialog/** (10 files)
- Copied from qt5-before/qt5-legatus-legacy/
- CMakeLists.txt updated: Qt5::Core, Qt5::Widgets → Qt6::Core, Qt6::Widgets
2. **Lts/Viewer/LtsReportDisplay/** (3 files)
- Copied from qt5-before/qt5-legatus-legacy/
- CMakeLists.txt updated: Qt5::Widgets → Qt6::Widgets
- **Note**: Depends on KDReports external library
3. **Lts/Viewer/SituationMap/SymbologyXML/Gui/** (existing)
- CMakeLists.txt updated: Qt5::Gui, Qt5::Core → Qt6::Gui, Qt6::Core
### CMakeLists.txt Updates
- **Lts/Viewer/CMakeLists.txt**: Enabled LtsFileDialog and LtsReportDisplay submodules
- All library references now use Qt6:: namespace
---
## Session 019: SIGNAL/SLOT Syntax Migration - Phase 2
Migrated additional SIGNAL/SLOT connections to function-pointer syntax for Qt6 compatibility:
**Files Updated:**
@@ -466,3 +561,75 @@ qt-migration-legatus/qt6-after/qt6-migrated-legatus/
```
---
## Session 021: All Lts Modules Qt6 Verification Complete
**Datum**: 2026-08-24
**Commit**: 01dce5fe5 (qt-migration-legatus), b5117701 (main repo)
### Verifizierte Module (Keine Änderungen erforderlich)
Umfassende Überprüfung aller verbleibenden Lts-Module bestätigt Qt6-Kompatibilität:
**Lts/DDS:**
- Keine Qt5:: CMake-Referenzen gefunden
- SIGNAL/SLOT-Makros sind dynamische Meta-Methoden-Aufrufe (Qt6-kompatibel, muss erhalten bleiben)
- Wird für Runtime-QMetaMethod-Auflösung im RTI DDS Callback-System verwendet
- **Dateien**: subscriber_listener.cpp, DdsUnitTests/
**Lts/Proxies (13 Submodule):**
- Keine Qt5:: CMake-Referenzen
- Kein QRegExp, QDesktopWidget oder QTextCodec usage
- Alle SIGNAL/SLOT sind Q_SIGNALS/Q_SLOTS-Deklarationen (Qt6-Syntax)
- **Status**: Bereit für Build-Validierung
**Lts/Services (47 Submodule):**
- Keine Qt5:: CMake-Referenzen
- Kein QRegExp, QDesktopWidget oder QTextCodec usage
- Alle SIGNAL/SLOT sind Q_SIGNALS/Q_SLOTS-Deklarationen (Qt6-Syntax)
- **Status**: Bereit für Build-Validierung
**Lts/Plugins (60 Submodule):**
- Keine Qt5:: CMake-Referenzen
- Kein QRegExp, QDesktopWidget oder QTextCodec usage
- Alle SIGNAL/SLOT sind Q_SIGNALS/Q_SLOTS-Deklarationen (Qt6-Syntax)
- **Status**: Bereit für Build-Validierung
**Lts/Projects (5 Submodule):**
- Struktur in qt6-after vorhanden
- **Status**: Bereit für Migration/Build-Validierung
**Z/src/qsql_informix:**
- QTextCodec-Nutzung korrekt über Qt6::Core5Compat-Modul behandelt
- CMakeLists.txt bereits konfiguriert: `find_package(Qt6 COMPONENTS Core5Compat REQUIRED)`
- Dies ist das korrekte Migrationsmuster für Datenbank-Treiber mit Locale-Encoding
### Verbleibende QTextCodec-Vorkommen
Nur noch 6 Vorkommen in der gesamten Codebase:
- **Ort**: `Z/src/qsql_informix/` (Datenbank-Treiber)
- **Status**: Korrekt konfiguriert mit Qt6::Core5Compat
- **Hinweis**: QTextCodec erforderlich für Datenbank-Locale-Encoding (spezieller Qt6-Kompatibilitätsfall)
### Zusammenfassung
- **Verifizierte Lts-Module**: DDS, Proxies, Services, Plugins (125+ Submodule insgesamt)
- **Code-Änderungen erforderlich**: Keine (alle bereits Qt6-kompatibel)
- **CMakeLists.txt-Updates**: Bereits durchgeführt
- **Bereit für**: Vollständige Build-Validierung nach Kopieren aller Module
### Geänderte Dateien (Session 021)
Keine Code-Änderungen erforderlich - alle Module bereits Qt6-kompatibel.
```
qt-migration-legatus/qt6-after/qt6-migrated-legatus/
├── Lts/DDS/ (bereits Qt6-kompatibel)
├── Lts/Proxies/ (13 Submodule, bereits Qt6-kompatibel)
├── Lts/Services/ (47 Submodule, bereits Qt6-kompatibel)
├── Lts/Plugins/ (60 Submodule, bereits Qt6-kompatibel)
└── Lts/Projects/ (5 Submodule, Struktur vorhanden)
```
---
**Last Updated**: 2026-08-24
**Next Auto-Update**: 2026-08-24 or at next milestone