diff --git a/MIGRATION_STATUS.md b/MIGRATION_STATUS.md index 1e3f422b1..29794b64b 100644 --- a/MIGRATION_STATUS.md +++ b/MIGRATION_STATUS.md @@ -1,10 +1,58 @@ # Qt5/C++11 → Qt6/C++17 Migration Status -## Session 016: BUILD_RTI=OFF Build Fixes Complete (2026-08-22) +## Session 017: QRegExp Migration Complete (2026-08-22) ### ✅ Completed Work -#### BUILD_RTI=OFF Build Issues Resolved +#### QRegExp → QRegularExpression Migration Complete +Migrated all QRegExp usage to QRegularExpression for Qt6 compatibility across the codebase: + +**Files Updated:** +1. **Lts/Viewer/SituationMap/SymbologyImpl/symbol_dictionary_impl.cpp** + - Migrated helper functions to use QRegularExpression::match().hasMatch() + - Updated inline regex validation for baseSymbolCode (8-digit pattern) + - Changed function signatures from QRegExp& to QRegularExpression& + +2. **Lts/Plugins/PlanEditor/mil2525d_to_mil2525c.cpp** + - Fixed m_sidcQuery.exactMatch() → match().hasMatch() + - Member variable already migrated to QRegularExpression type + +3. **Lts/Plugins/PresentationManagement/Gui/Script/ScriptTimelineEditor/pre_script_dialog.cpp** + - Video file pattern matching migrated + - Added QRegularExpression include + +4. **Lts/Proxies/TrainingAreaBase/Plugins/Nmea/nmea_handler_rx.cpp** + - NMEA message parsing with QRegularExpression (4 occurrences) + - Split operations using captured groups + +5. **Lts/Proxies/TrainingAreaBaseOC/handler_aes_data.cpp** + - AES data handler regex patterns migrated (2 occurrences) + - Message validation patterns + +6. **Lts/Services/AudioVideoManagement/stream_name_mapping.\*** + - Stream name validation patterns + - Header and implementation updated + +7. **Lts/Services/NmeaManagement/nmea_handler.cpp** + - NMEA handler regex patterns + +8. **Lts/Viewer/SituationMap/Symbology/sidc_builder_base.cpp, sidc_codec.cpp** + - SIDC code validation patterns + - Previously migrated + +9. **Test Files** + - main.cpp files updated for compilation + +**API Changes Applied:** +- `QRegExp::exactMatch(str)` → `QRegularExpression::match(str).hasMatch()` +- `QRegExp::cap(n)` → `QRegularExpressionMatch::captured(n)` +- Include `` instead of `` + +**Remaining QRegExp Files (External/Third-Party):** +- `specs/external/gdb/qt5printers/typeinfo.py` - GDB debugger script (not compiled code) +- `Z/src/QtSingleApplication/qtlocalpeer.cpp` - Third-party code (already has migration comment) + +#### Previous: BUILD_RTI=OFF Build Fixes Complete Fixed all compilation errors preventing BUILD_RTI=OFF configuration from building successfully: 1. **RTI Header Include Guards** @@ -43,15 +91,29 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin |-----------|--------|---------------|--------------|-------| | Lts/Common | ✅ Complete | ✅ Pass | ✅ Pass | All tests passing | | Lts/DDS | ✅ Complete | ✅ Pass | ⏳ Pending | RTI integration ready | -| Lts/Proxies | 🟡 In Progress | ✅ Pass | ⏳ Pending | TrainingAreaBase fixed | -| Lts/Services | 🟡 In Progress | ✅ Pass | ⏳ Pending | VideoOverlayManagement fixed | -| Lts/Plugins | 🟡 In Progress | ✅ Pass | ⏳ Pending | Style plugins migrated | +| Lts/Proxies | 🟡 In Progress | ✅ Pass | ⏳ Pending | TrainingAreaBase fixed, QRegExp migrated | +| Lts/Services | 🟡 In Progress | ✅ Pass | ⏳ Pending | VideoOverlayManagement fixed, QRegExp migrated | +| Lts/Plugins | 🟡 In Progress | ✅ Pass | ⏳ Pending | Style plugins migrated, QRegExp migrated | +| Lts/Viewer | 🟡 In Progress | ✅ Pass | ⏳ Pending | QRegExp migrated (SymbologyImpl) | | TetraIF | 🟡 In Progress | ⏳ Pending | ⏳ Pending | Migration ongoing | | Z Modules | 🟡 In Progress | ⏳ Pending | ⏳ Pending | Partial migration | +**Qt6 API Migration Status:** +- ✅ QDesktopWidget → QScreen: Complete +- ✅ QRegExp → QRegularExpression: Complete (all application code) +- ⏳ SIGNAL/SLOT syntax migration: Pending +- ⏳ QTextCodec removal: Pending + ### 📝 Commits #### qt-migration-legatus (submodule) +- **Commit f15f342a**: QRegExp → QRegularExpression migration complete + - Migrated all QRegExp usage to QRegularExpression + - Updated symbol_dictionary_impl.cpp, mil2525d_to_mil2525c.cpp + - Updated pre_script_dialog.cpp, nmea_handler_rx.cpp, handler_aes_data.cpp + - Updated stream_name_mapping.*, nmea_handler.cpp, sidc files + - All application code migrated (excluding GDB scripts and third-party code) + - **Commit 793c9f8b**: BUILD_RTI=OFF build fixes - RTI header guards in TrainingAreaBase - Member initialization order fixes in VideoOverlayManagement @@ -60,7 +122,8 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin - RTI stub headers for OFF builds #### qt6-migration-pipeline (main repo) -- **Commit a4597d1d**: Update qt-migration-legatus submodule to 793c9f8b +- **Commit a7da810a**: Update MIGRATION_STATUS.md with QRegExp migration progress +- **Commit 30a0f889**: Update qt-migration-legatus submodule to f15f342a ### 🎯 Next Steps @@ -70,9 +133,9 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin - Fix any RTI-specific issues 2. **Continue Module Migration** - - Migrate remaining Lts/Proxies modules - - Migrate remaining Lts/Services modules - - Complete Lts/Plugins migration + - Migrate remaining Lts/Proxies modules (13 submodules) + - Migrate remaining Lts/Services modules (47 submodules) + - Complete Lts/Plugins migration (60 submodules) 3. **TetraIF Migration** - Complete TetraIF module migration @@ -84,9 +147,14 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin 5. **Full Build Validation** - Complete BUILD_RTI=ON validation - - Run full test suite + - Run full test suite (deferred until final phase) - Policy checks +**Completed Milestones:** +- ✅ BUILD_RTI=OFF build validation (1112 targets) +- ✅ QDesktopWidget → QScreen migration (all files) +- ✅ QRegExp → QRegularExpression migration (all application code) + ### ⚠️ Known Blockers 1. **RTI Connext DDS 7.7.0 C++ Compatibility** @@ -99,10 +167,11 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin - ArcGIS Runtime SDK 100.15 required for some modules - **Status**: Dependencies available in CI environment -3. **QDesktopWidget Deprecation** - - Qt6 removed QDesktopWidget entirely - - **Resolution**: Migrate to QScreen API (in progress) - - **Pattern**: `QApplication::desktop()` → `QGuiApplication::primaryScreen()` +3. **Qt6 API Migration** + - ✅ QDesktopWidget → QScreen: RESOLVED + - ✅ QRegExp → QRegularExpression: RESOLVED (all application code) + - ⏳ SIGNAL/SLOT syntax: Pending (low priority, works with deprecated API) + - ⏳ QTextCodec removal: Pending (low priority, UTF-8 by default in Qt6) ### 📈 Metrics @@ -131,5 +200,5 @@ Fixed all compilation errors preventing BUILD_RTI=OFF configuration from buildin --- -**Last Updated**: 2026-08-22 12:45 CEST -**Next Auto-Update**: 2026-08-22 16:45 CEST or at next milestone +**Last Updated**: 2026-08-22 13:15 CEST +**Next Auto-Update**: 2026-08-22 17:15 CEST or at next milestone