# Qt5 zu Qt6 Migration - Statusbericht **Stand**: 2026-08-29 (Update 2) **Build-Konfiguration**: BUILD_RTI=OFF (DDS Code-Generierung deaktiviert) **Qt-Version**: 6.10.2 **C++ Standard**: C++17 (C++23 geplant, aber RTI 7.7 Inkompatibilität) **Submodule Branch**: feature/qt6-migration-basis-modules @ e75e6c25 --- ## 📊 Gesamtübersicht | Bereich | Status | Build (RTI=OFF) | Notes | |---------|--------|-----------------|-------| | **Lts/Common** | ✅ Vollständig | ✅ Erfolgreich | Basis-Module migriert | | **Lts/DDS** | 🟡 Struktur vorhanden | ⚠️ Stub-Header nötig | DDS-Code-Generator läuft nicht ohne RTI | | **Lts/Viewer** | 🟡 Teilweise | ⚠️ Fehlende Dependencies | LtsFileDialog ✅, LtsDataView ❌ | | **Lts/Plugins** | 🟡 Struktur vorhanden | ❌ Nicht getestet | 60 Untermodule | | **Lts/Services** | 🟡 Struktur vorhanden | ❌ Nicht getestet | 47 Untermodule | | **Lts/Projects** | 🟡 Struktur vorhanden | ❌ Nicht getestet | 5 Untermodule | | **Lts/Proxies** | 🟡 Struktur vorhanden | ❌ Nicht getestet | 13 Untermodule | | **TetraIF** | 🟡 Teilweise | ❌ Nicht getestet | Migration läuft | | **Z-Module** | 🟡 Teilweise | ⚠️ Include-Pfad Probleme | NGLLogger Pfad korrigieren | --- ## 🔍 Detailstatus pro Modul ### ✅ Erfolgreich migriert (BUILD_RTI=OFF) #### Lts/Common - **Status**: ✅ Vollständig migriert - **Build**: ✅ Erfolgreich - **Tests**: 1/1 bestanden - **Module**: - LtsUtils (Core, Settings, GuiConnectDialog) - LtsWidgets - LtsSession - LtsAppDescriptor - LtsPluginManager - LtsCommandLineParser #### Lts/Viewer/LtsFileDialog - **Status**: ✅ Header korrigiert (2026-08-29) - **Build**: ✅ Compiliert erfolgreich bis Linker - **Link**: ⚠️ Fehlende Dependencies (LtsDataView, svcFlmCommon, svcOpmCommon, svcExmCommon) - **Korrekturen (2026-08-29)**: - `flm_db.h` Stub-Header vervollständigt (alle Member-Variablen, Methoden, Initialisierung) - `flm_enums.hpp` Enums aus XML extrahiert (FileStatus, FileCategory, FileType, MainFolder) - `flm_translation.h` aktualisiert (toInt() entfernt, trFolderName() korrigiert) - `flm_ftc.h` minimaler Stub-Header erstellt - Plugin-Interfaces erstellt (flm, opm, exm data plugin interface) - QString/std::string Konvertierungen behoben in: - `lts_dialog_model_folder.cpp` - `lts_file_dialog_widget.cpp` - `lts_dialog_model_file.cpp` - Folder::name() Rückgabetyp: std::string (kompatibel) - FileContent: Alle benötigten Methoden implementiert (fileStatus, name, isTemplate, fileType, fileId, folderId, operatorId, mainFolder, exerciseId, properties, isDeleted, usedBy, lastModified, phaseId, isUsedBy, isHidden) - std::optional für exerciseId/phaseId unterstützt #### InfrastructureManagement - **Status**: ✅ ism_mounting_point.h migriert (2026-08-29) - **Korrekturen**: - Header von Qt5-Quellcode kopiert - Include-Pfade korrigiert (`#include "ismshared_export.h"` relativ) - Redundante Methodendefinitionen in `.cpp` entfernt ### ⚠️ Teilweise migriert / Build-Probleme #### Lts/Viewer/LtsDataView - **Status**: ❌ Nicht migriert (KRITISCH - Blocker) - **Problem**: Header-Datei fehlt (`LtsDataView/lts_data_view.h`) - **Lösung**: Modul muss migriert werden (HOCHPRIORITÄT - Blocker für LtsFileDialog) - **Dependencies**: Wird von LtsFileDialog, LtsSessionData benötigt #### Lts/Services/svcFlmCommon - **Status**: ❌ Nicht migriert (KRITISCH - Blocker) - **Problem**: Library fehlt im Linker - **Lösung**: Modul migrieren oder Stub erstellen (HOCHPRIORITÄT) - **Pfad**: `Lts/Services/FileManagement/svcFlmCommon/` #### Lts/Services/svcOpmCommon - **Status**: ❌ Nicht migriert (KRITISCH - Blocker) - **Problem**: Library fehlt im Linker - **Lösung**: Modul migrieren oder Stub erstellen (HOCHPRIORITÄT) - **Pfad**: `Lts/Services/OperatorManagement/svcOpmCommon/` #### Lts/Services/svcExmCommon - **Status**: ❌ Nicht migriert (KRITISCH - Blocker) - **Problem**: Library fehlt im Linker - **Lösung**: Modul migrieren oder Stub erstellen (HOCHPRIORITÄT) - **Pfad**: `Lts/Services/ExerciseManagement/svcExmCommon/` #### Lts/Services/InfrastructureManagement - **Status**: ⚠️ Include-Pfad Problem - **Problem**: `NGLLogger/Z/src/NGLLogger` Pfad existiert nicht - **Lösung**: CMakeLists.txt Include-Pfade korrigieren #### Lts/Services/ProjectDataManagement - **Status**: ⚠️ Enum-Wert fehlt - **Problem**: `L25_KindGuidingLine::nesA` existiert nicht - **Lösung**: Enum-Definition prüfen und ergänzen #### Z/src/NGLLogger - **Status**: ⚠️ Include-Pfad Problem - **Problem**: CMake generiert falschen Pfad `/repo/build-qt6-validation/Z/src/NGLLogger/Z/src/NGLLogger` - **Lösung**: CMakeLists.txt Include-Pfade korrigieren #### Lts/Tools/Adler/WebSocketSimulator - **Status**: ❌ QtWidgets Include fehlt - **Problem**: `#include ` wird nicht gefunden - **Lösung**: Qt6 Widgets Component explizit finden und verlinken --- ## 🛠️ Offene Aufgaben ### Hochprioritär (Blocker für LtsFileDialog Build) 1. ✅ **FileManagement Stub-Header vervollständigt** (2026-08-29) 2. ❌ **LtsDataView migrieren** - Wird von LtsFileDialog und anderen Modulen benötigt 3. ❌ **svcFlmCommon migrieren** - Service-Library für FileManagement Common 4. ❌ **svcOpmCommon migrieren** - Service-Library für OperatorManagement Common 5. ❌ **svcExmCommon migrieren** - Service-Library für ExerciseManagement Common ### Mittlere Priorität 6. ❌ **NGLLogger Include-Pfad** - CMakeLists.txt korrigieren 7. ❌ **ProjectDataManagement Enums** - Fehlende Enum-Werte ergänzen 8. ❌ **QtWidgets Includes** - Alle Qt6 Widgets Components explizit verlinken 9. ❌ **Lts/Plugins Kernmodule** - Priorisiere essentielle Plugins 10. ❌ **Lts/Services Basis** - InfrastructureManagement, OperatorManagement ### Niedrige Priorität 11. ❌ **Lts/Tools** - Adler WebSocket Simulator und andere Tools 12. ❌ **Vollständige Testabdeckung** - Tests für alle migrierten Module --- ## 📝 Build-Status (BUILD_RTI=OFF) ``` Configure: ✅ Erfolgreich (mit CMake-Warnings) Compile: ⚠️ 4/1187 Targets erfolgreich, dann Fehler (fehlende Dependencies) Link: ❌ Fehlende Libraries (LtsDataView, svcFlmCommon, svcOpmCommon, svcExmCommon) ``` ### Bekannte Warnungen - `QVariant::canConvert(int)` deprecated in Qt6 → zu `canConvert()` migrieren - NGLLogger Include-Pfad ungültig - AdvancedSymbology Viewer-Pfade in CMakeLists.txt entfernt --- ## 🔄 Nächste Schritte (Priorisiert) 1. **LtsDataView migrieren** (Blocker für LtsFileDialog) 2. **svcFlmCommon, svcOpmCommon, svcExmCommon** - Service-Stubs oder vollständige Migration 3. **NGLLogger CMakeLists.txt** korrigieren 4. **ProjectDataManagement Enums** vervollständigen 5. **QtWidgets Components** explizit verlinken in allen CMakeLists.txt --- ## 📌 Wichtige Dateien - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_db.h` - DDS Stub-Header (2026-08-29 aktualisiert) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_enums.hpp` - Zentrale Enums - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_translation.h` - Übersetzungen (2026-08-29 aktualisiert) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_ftc.h` - FTC Stub (2026-08-29 neu) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_data_plugin_interface.h` - Plugin Interface (2026-08-29 neu) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/OperatorManagement/opm_data_plugin_interface.h` - Plugin Interface (2026-08-29 neu) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/ExerciseManagement/exm_data_plugin_interface.h` - Plugin Interface (2026-08-29 neu) - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/InfrastructureManagement/ism_mounting_point.h` - ISM Interface (2026-08-29 migriert) --- **Erstellt**: 2026-08-18 **Letzte Aktualisierung**: 2026-08-29 **Autor**: Migration Team