# Qt5 zu Qt6 Migration - Statusbericht **Stand**: 2026-08-18 **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) --- ## 📊 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 - **Build**: ✅ Compiliert erfolgreich - **Link**: ⚠️ Fehlende Dependencies (LtsDataView, svcFlmCommon, svcOpmCommon, svcExmCommon) - **Korrekturen**: - `flm_db.h` Stub-Header erstellt (DDS-generierten Code ersetzt) - `flm_enums.hpp` Enums aus XML extrahiert - `flm_translation.h` aktualisiert - QString/std::string Konvertierungen behoben - Folder::name() Rückgabetyp zu std::string geändert ### ⚠️ Teilweise migriert / Build-Probleme #### Lts/Viewer/LtsDataView - **Status**: ❌ Nicht migriert - **Problem**: Header-Datei fehlt (`LtsDataView/lts_data_view.h`) - **Lösung**: Modul muss migriert werden #### 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 1. **LtsDataView migrieren** - Wird von LtsFileDialog und anderen Modulen benötigt 2. **svcFlmCommon, svcOpmCommon, svcExmCommon** - Service-Libraries migrieren oder Stubs erstellen 3. **NGLLogger Include-Pfad** - CMakeLists.txt korrigieren 4. **ProjectDataManagement Enums** - Fehlende Enum-Werte ergänzen 5. **QtWidgets Includes** - Alle Qt6 Widgets Components explizit verlinken ### Mittlere Priorität 6. **Lts/Plugins Kernmodule** - Priorisiere essentielle Plugins 7. **Lts/Services Basis** - InfrastructureManagement, OperatorManagement 8. **TetraIF vervollständigen** - Restlichen Code migrieren ### Niedrige Priorität 9. **Lts/Tools** - Adler WebSocket Simulator und andere Tools 10. **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 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 1. **LtsDataView migrieren** (Blocker für LtsFileDialog) 2. **Service-Stubs erstellen** für FlmCommon, OpmCommon, ExmCommon (BUILD_RTI=OFF) 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 - `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 - `qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/InfrastructureManagement/ism_mounting_point.h` - ISM Interface --- **Erstellt**: 2026-08-18 **Letzte Aktualisierung**: 2026-08-18 **Autor**: Migration Team