Skip to content

Qt6 / QGIS 4 / CMake migration - #2

Open
tyhan999 wants to merge 7 commits into
NHERI-SimCenter:mainfrom
tyhan999:qt6-qgis4-migration
Open

Qt6 / QGIS 4 / CMake migration#2
tyhan999 wants to merge 7 commits into
NHERI-SimCenter:mainfrom
tyhan999:qt6-qgis4-migration

Conversation

@tyhan999

@tyhan999 tyhan999 commented Jul 8, 2026

Copy link
Copy Markdown

Migrate from Qt 5.15.2 + prebuilt Qt5 QGISPlugin (QMake) to Qt 6.10.2 + the NHERI-SimCenter QGIS 4.1.0.

  • New build system: CMakeLists.txt, OpenSRA.cmake, OpenSRAWorkflow.cmake (selective Workflow module - avoids duplicate LocalApplication/ MainWindowWorkflowApp classes), conanfile.py (Conan v2), msvc_fix.h, cmake/FindQCA.cmake. OpenSRA.pro kept as legacy reference only.
  • Removes dead code: UIWidgets/OpenSRAPostProcessor_old.{cpp,h}, arcgisruntime.pri, the dead PATH_TO_QGIS_PLUGIN include.
  • Qt6 API updates across the tree (QRegExpValidator includes, Qt::endl, setContentsMargins, Qt::SkipEmptyParts, QScreen instead of QDesktopWidget, Qgis::RasterResamplingMethod, OPENSRA_PREFERENCES_H include-guard rename).
  • MIGRATION_NOTES.md: full engineering log (decisions, runtime DLL manifest, known issues). Requires sibling checkouts of R2DTool, SimCenterCommon (each with a small patch - see MIGRATION_NOTES.md) and the built NHERI-SimCenter/QGIS fork.

tyhan999 and others added 7 commits July 8, 2026 09:11
Port from Qt 5.15.2 + prebuilt Qt5 QGISPlugin (QMake) to Qt 6.10.2 + the
NHERI-SimCenter QGIS 4.1.0 fork built from source, via CMake + Conan v2.

- New build system: CMakeLists.txt, OpenSRA.cmake, OpenSRAWorkflow.cmake
  (selective Workflow module - avoids duplicate LocalApplication/
  MainWindowWorkflowApp classes), conanfile.py (Conan v2), msvc_fix.h,
  cmake/FindQCA.cmake. OpenSRA.pro kept as legacy reference only.
- Removes dead code: UIWidgets/OpenSRAPostProcessor_old.{cpp,h},
  arcgisruntime.pri, the dead PATH_TO_QGIS_PLUGIN include.
- Qt6 API updates across the tree (QRegExpValidator includes, Qt::endl,
  setContentsMargins, Qt::SkipEmptyParts, QScreen instead of QDesktopWidget,
  Qgis::RasterResamplingMethod, OPENSRA_PREFERENCES_H include-guard rename).
- MIGRATION_NOTES.md: full engineering log (decisions, runtime DLL manifest,
  known issues). Requires sibling checkouts of R2DTool, SimCenterCommon
  (each with a small patch - see MIGRATION_NOTES.md) and the built
  NHERI-SimCenter/QGIS fork.

Squashed from local migration work on a snapshot-based repo; original
session history retained locally.
The OpenSRA build is QGIS-based and never calls getArcGISKey(); the file carried a historical Esri runtime-lite license key that got committed with the migration squash. Replace it with an empty string (the build guide already documents an empty stub as sufficient).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The below-ground CSV round-trip fix spans two repos; the squashed migration commit didn't name the OpenSRAFrontEnd files (GeneralInformationWidget.cpp NDAData guard; LocalApplication.cpp conda-PATH / exit-127 crossing fix). Record them here, matching the R2DTool commit message's pointer to this file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…OJ data fallbacks), end-of-analysis and save/load hardening, crash guards

See the 2026-07-20 section of MIGRATION_NOTES.md for the full list, including
the companion SimCenterCommon/R2DTool qt6-fixes commits and backend patch docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Values typed into the Aleatory Variability / Epistemic Uncertainty fields
were only captured at the moment "Add to list of methods to run" was
clicked; editing them while the method was already in the run list stored
nothing, and re-selecting the item reloaded the stale stored values over
the user's input. The exported SetupConfig then silently carried
"Preferred" instead of the user's sigmas.

AddToRunListWidget now emits inputsEdited() on user edits (textEdited, so
programmatic setText from item selection cannot echo back), and
SimCenterJsonWidget writes the current field values into the selected
item's stored JSON and refreshes its label. The write-back is skipped when
the input panel is showing a different method than the selected item, so
typing ahead of an "Add" cannot mutate the selection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…label buffer option UCERF-only

Landslide Induced Pipe Strain: "Consider strain preloading" now defaults
to checked. Fault Rupture Induced Pipe Strain: both "Increase buffer on
fault traces" and "Consider strain preloading" now default to checked,
with the buffer line edits enabled to match the checked state. The buffer
checkbox label now reads "Increase buffer on fault traces (UCERF only)?".
Saved configs are unaffected: inputFromJSON still applies the stored
IncreaseBuffer/UseStrainPreload values on load.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… cut off

Tester report: with Wells and Caprocks infrastructure, the Decision
Variable item "Shaking Induced Rupture on Wells" rendered as "Shaking
Induced Rupture on..." — at the 16 px bold sidebar font it wraps to 4
lines (~84 px), which clips at the fixed 120x70 item size. A font-metrics
sweep of every panel label in methods_params_doc (below_ground,
above_ground, wells_caprocks) found one sibling: "Shaking Induced Moment
on Wells" in the Damage Measure panel clipped the same way.

At 150 px wide every current label wraps to at most 3 lines (<= 63 px) and
fits the 70 px item. Applied to all three method panels (DV/DM/EDP) so
their sidebars stay a uniform width when switching. Verified in the
running GUI: DV/DM/EDP screenshots for all three infrastructure types
show every label complete.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant