diff --git a/MIGRATION_STATUS.md b/MIGRATION_STATUS.md index f76b55947..cab9090ac 100644 --- a/MIGRATION_STATUS.md +++ b/MIGRATION_STATUS.md @@ -1,37 +1,109 @@ # Qt6 Migration Status Report -## Aktueller Stand (2026-08-18) +## Aktueller Stand (2026-08-21 15:09 CET) -### ✅ Erfolgreich abgeschlossene Arbeiten +### 🏗️ Build-Fortschritt +- **Gesamt-Targets**: 1854 +- **Aktueller Fortschritt**: 114/1854 (6%) +- **Build-System**: Ninja, Debug, BUILD_RTI=OFF +- **Qt-Version**: Qt 6.10.2 (fest, kein Versions-Mix) +- **C++-Standard**: C++23 +- **Build-Umgebung**: Docker-Container (migration-pipeline:ubuntu26.04-qt6) -1. **Export-Header Problem behoben** - - 87 CMakeLists.txt von `NGL_ADD_LIBRARY` auf `NGL_ADD_LIBRARY2` konvertiert - - 44 Source-Dateien: Export-Header Include-Pfade korrigiert - - Root Cause: NGL_ADD_LIBRARY2 benötigt für GENERATE_EXPORT_HEADER +--- -2. **DDS-Stub-Header generiert** - - 81 DDS-Stub-Header erstellt (`*_dtc.h`, `*_fts.h`, `*_dts.h`, `*_ftc.h`) - - Include-Pfade korrigiert mit PREFIX_TO_MODULE Mapping - - Ermöglicht Build ohne RTI DDS Codegenerierung +## ✅ Erfolgreich abgeschlossene Arbeiten -3. **NGLLogger Migration** - - Logger-Stub erstellt mit Logging-Makros - - m_logger Member-Variablen aus ~100+ Dateien entfernt - - Q_FUNC_INFO Redefinition behoben (auf `__func__` umgestellt) - - Logging-Makros auf variadische Parameter umgestellt +### 1. Build-Infrastructure +- [x] Docker-Build-Infrastructure validiert +- [x] CMake-Cache-Permission-Problem behoben (als root löschen) +- [x] CMake-Konfiguration erfolgreich abgeschlossen +- [x] NGLLogger Export-Macro konfiguriert +- [x] GuezNasat Include-Pfade konfiguriert -4. **InfrastructureManagement DDS-Stubs** - - ism.hpp, ism_enums.hpp Stub-Header erstellt - - IsmShared Kompilierung erfolgreich +### 2. Plugin-System Migration (43 Module) +| Kategorie | Anzahl | Status | +|-----------|--------|--------| +| DataPlugins | 38 | ✅ AUTOMOC ON + Q_INTERFACES() entfernt | +| Plugin-Interfaces | 5 | ✅ AUTOMOC ON | +| **Gesamt** | **43** | ✅ Fertig | -5. **FilterManagement DDS-Stubs** - - flt_fts.h: AesFilter und AesFilterUpdateRequestHandler - - flt_dts.h: Dts und Fts Interface-Classes - - flt_dts.cpp: Stub-Implementation - - flt_ftc.h: Ftc Interface mit ReplyHandler (neu erstellt) +**Wichtigste Erkenntnis**: Q_INTERFACES() ist inkombatibel mit QObject-Vererbung in Qt6 - muss entfernt werden. -6. **Docker Permission Fix** - - Container muss mit `--user root` für Schreibzugriff auf ./build*/ +### 3. LtsTimelineClassic Module +- [x] Export-Macro konfiguriert (generate_export_header) +- [x] AUTOUIC_SEARCH_PATHS für Ui-Verzeichnis hinzugefügt +- [x] BUILD_RTI-Guard entfernt (immer benötigtes Target) +- [x] Target-Abhängigkeit für Tests hinzugefügt +- [x] Include-Pfad in test_abstracttimelinemodel.cpp korrigiert + +### 4. NGLLogger Integration +- [x] Export-Macro Include-Pfad im Haupt-CMakeLists.txt (`${CMAKE_BINARY_DIR}/Z/src/NGLLogger`) +- [x] Source-Pfad zu globalen Include-Pfaden hinzugefügt +- [x] Include-Pfad korrigiert: `` (nicht ``) +- [x] API-Change: `getLogger()` → `getNGLRootLogger()` in 4 Dateien + - Event.cpp + - Event.h + - AbstractTimelineModel.cpp + - TimelineWidget.cpp + - TimelineIndicator.cpp + +### 5. Qt6 API-Changes +| Datei | Change | Status | +|-------|--------|--------| +| TimelineView.cpp | `angle()` → `angleDelta()` | ✅ | +| TimelineView.cpp | `globalPos()` → `globalPosition().toPoint()` | ✅ | +| lts_msec_date_time_edit.cpp | `fromMSecsSinceEpoch()` deprecated (Warnung akzeptiert) | ⚠️ | +| lts_text_editor.cpp | `setFontFamily()` deprecated (Warnung akzeptiert) | ⚠️ | + +### 6. Event-Constructor Migration +**Problem**: Event-Klasse hat nur 14-Argument Constructor, keinen Default-Constructor (wegen Referenz-Member `m_logger`) + +**Betroffene Test-Dateien**: +- [x] test_event.cpp (2 Tests: DurationCalculation, VisibilityToggle) +- [x] test_eventgraphic.cpp (3 Tests) +- [x] test_eventtools.cpp (2 Tests) +- [x] test_eventlist.cpp (3 Tests, 6 Constructor-Aufrufe) + +**Constructor-Signatur**: +```cpp +Event(quint64 uniqueId, quint32 typeId, qint64 startTime, qint64 endTime, + quint32 playerId, quint32 partyId, quint64 equipmentId, + const QString& path, EventPaintFunc paintFunc, + const QColor& paintColor, const QVariant& detailData, + quint64 subEventId, const QPointF& pos, quint64 session) +``` + +### 7. GuezNasat Module +- [x] Include-Pfad: `LtsUtilsCore/data_modification_enum.h` → `LtsUtils/LtsUtilsCore/data_modification_enum.h` +- [x] test_item.cpp: Include für gna_dtc.h hinzugefügt +- [x] **operator<< ambiguous overload Fix**: friend-Deklaration in NasatAircraft und NasatAircraftParticipant +- [x] operator<< aus globalem Scope in Namespace GuezNasat verschoben (ADL-konform) + +### 8. Enum- und Type-Fixes +- [x] avm_enums.hpp: `#include ` für int32_t +- [x] test_asm_enums.cpp: enum class Vergleiche mit static_cast +- [x] test_asm_dtc.cpp: Include für asm_dtc.h hinzugefügt + +### 9. Export-Header Problem behoben (aus vorheriger Session) +- 87 CMakeLists.txt von `NGL_ADD_LIBRARY` auf `NGL_ADD_LIBRARY2` konvertiert +- 44 Source-Dateien: Export-Header Include-Pfade korrigiert +- Root Cause: NGL_ADD_LIBRARY2 benötigt für GENERATE_EXPORT_HEADER + +### 10. DDS-Stub-Header generiert (aus vorheriger Session) +- 81 DDS-Stub-Header erstellt (`*_dtc.h`, `*_fts.h`, `*_dts.h`, `*_ftc.h`) +- Include-Pfade korrigiert mit PREFIX_TO_MODULE Mapping +- Ermöglicht Build ohne RTI DDS Codegenerierung + +### 11. FilterManagement DDS-Stubs (aus vorheriger Session) +- flt_fts.h: AesFilter und AesFilterUpdateRequestHandler +- flt_dts.h: Dts und Fts Interface-Classes +- flt_dts.cpp: Stub-Implementation +- flt_ftc.h: Ftc Interface mit ReplyHandler (neu erstellt) + +### 12. InfrastructureManagement DDS-Stubs (aus vorheriger Session) +- ism.hpp, ism_enums.hpp Stub-Header erstellt +- IsmShared Kompilierung erfolgreich ### ⚠️ Aktuelle Build-Situation