Copies intermediate migration results to repo
This commit is contained in:
444 files changed
+122986
No files matched your search
@@ -0,0 +1,81 @@
|
||||
# SituationMap Qt6 Migration Status
|
||||
|
||||
## Summary
|
||||
The SituationMap module has been successfully migrated from Qt5 to Qt6 at the **source code level**. All Qt5 API calls have been updated to Qt6 equivalents.
|
||||
|
||||
## Completed Changes
|
||||
|
||||
### Qt6 API Migrations
|
||||
1. **QStringView::slice() → sliced()** - Fixed in 5 files:
|
||||
- Symbology/sidc_codec.cpp
|
||||
- Symbology/sidc_builder.cpp
|
||||
- Symbology/sidc_builder_base.cpp
|
||||
- Symbology/symbol_properties.cpp
|
||||
- SymbologyImpl/symbol_dictionary_impl.cpp
|
||||
|
||||
2. **QSortFilterProxyModel filter changes** - Fixed in base_symbol_model.cpp:
|
||||
- beginFilterChange()/endFilterChange() → invalidateFilter() (3 occurrences)
|
||||
|
||||
3. **QFuture const-correctness** - Fixed in base_symbol_model.cpp:
|
||||
- Added `mutable` keyword to 3 lambdas capturing QFuture for waitForFinished() calls
|
||||
|
||||
### Directory Structure
|
||||
All 22 subdirectories from Qt5 have been copied to Qt6:
|
||||
- admin_scripts, ArcGISQt5Hack, ElevationMap, EvalApps, FunctionDialog
|
||||
- GeometryModel, GraphicalObjects, LayerAggregation, LocalSrv
|
||||
- MapImpl, MapObjects, MapObjectsImpl, MathUtils, ModuleTests
|
||||
- Portal, README, Resources, Rubberbands, SideBar
|
||||
- Symbology, SymbologyGui, Tests, UnitTests, UnitTestsGeoModel, Utils
|
||||
|
||||
## Build Status
|
||||
|
||||
### Without ArcGIS (BUILD_ARCGIS=OFF)
|
||||
✅ Source code compiles successfully
|
||||
⚠️ Some unrelated modules (e.g., EEMFakeServer) require Qt6WebSockets which is not installed
|
||||
|
||||
### With ArcGIS (BUILD_ARCGIS=ON)
|
||||
❌ **Linker errors** - ArcGIS SDK binary incompatibility
|
||||
|
||||
## Critical Issue: ArcGIS SDK Compatibility
|
||||
|
||||
### Problem
|
||||
The ArcGIS Maps SDK for Qt v300.0.0 library (`libEsriRuntimeQt.a`) was built against **Qt 6.8+**, but the system has **Qt 6.2.4** installed.
|
||||
|
||||
**Evidence:**
|
||||
- ArcGIS SDK template requires: `Qt 6.8.2` minimum (per sdk/ideintegration/ArcGISRuntimeQtTemplate300_0_0/CMakeLists.txt)
|
||||
- System Qt version: `6.2.4`
|
||||
- Linker errors show undefined Qt6 internal symbols:
|
||||
- `QMetaObject::invokeMethodImpl`
|
||||
- `QFutureInterfaceBase::hasException()`
|
||||
- `QMetaType::registerHelper`
|
||||
- `QtPrivate::QMetaTypeInterfaceWrapper`
|
||||
|
||||
### Required Resolution
|
||||
To build with ArcGIS support, one of the following is needed:
|
||||
|
||||
1. **Upgrade Qt to 6.8+** (recommended)
|
||||
- Install Qt 6.8.2 or later
|
||||
- Rebuild entire project against Qt 6.8+
|
||||
|
||||
2. **Obtain Qt 6.2-compatible ArcGIS SDK**
|
||||
- Contact Esri for an ArcGIS SDK build compatible with Qt 6.2.x
|
||||
- Note: ArcGIS SDK v300 may not support Qt 6.2
|
||||
|
||||
3. **Disable ArcGIS temporarily**
|
||||
- Build with `-DBUILD_ARCGIS=OFF`
|
||||
- Complete migration of non-ArcGIS code
|
||||
- Re-enable ArcGIS when compatible SDK is available
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Immediate**: Decide on ArcGIS strategy (upgrade Qt, get compatible SDK, or disable)
|
||||
2. **If disabling ArcGIS**: Complete migration of remaining 27 plugin files with beginFilterChange()/endFilterChange()
|
||||
3. **After ArcGIS resolution**: Run full test suite to validate migration
|
||||
|
||||
## Files Modified in This Session
|
||||
- Lts/Viewer/SituationMap/Symbology/sidc_codec.cpp
|
||||
- Lts/Viewer/SituationMap/Symbology/sidc_builder.cpp
|
||||
- Lts/Viewer/SituationMap/Symbology/sidc_builder_base.cpp
|
||||
- Lts/Viewer/SituationMap/Symbology/symbol_properties.cpp
|
||||
- Lts/Viewer/SituationMap/SymbologyImpl/symbol_dictionary_impl.cpp
|
||||
- Lts/Viewer/SituationMap/SymbologyImpl/base_symbol_model.cpp
|
||||
Reference in new issue
Block a user