feat(ParameterEditor): allow Advanced UI override of read-only params#14415
feat(ParameterEditor): allow Advanced UI override of read-only params#14415dakejahl wants to merge 1 commit into
Conversation
Adds a "Force edit read-only param (dangerous!)" checkbox in ParameterEditorDialog visible when the param is read-only and Advanced UI is on. Checking it transitions the dialog from the read-only view (message + value display) into the regular edit mode (input + Save), mirroring the existing "Force save" escape hatch for min/max bounds.
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project check has failed because the head coverage (26.45%) is below the target coverage (30.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #14415 +/- ##
==========================================
+ Coverage 25.47% 26.45% +0.98%
==========================================
Files 769 767 -2
Lines 65912 66285 +373
Branches 30495 30667 +172
==========================================
+ Hits 16788 17533 +745
+ Misses 37285 36309 -976
- Partials 11839 12443 +604
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Build ResultsPlatform Status
All builds passed. Pre-commit
Pre-commit hooks: 4 passed, 45 failed, 7 skipped. Test Resultslinux-coverage: 88 passed, 0 skipped Code CoverageCoverage: 60.4% No baseline available for comparison Artifact Sizes
Updated: 2026-05-20 22:11:14 UTC • Triggered by: Android |
Summary
Adds an Advanced-UI escape hatch in the parameter editor dialog so users can override the read-only lock on parameters, matching the existing "Force save" pattern for min/max validation.
Problem
QGC now respects the
readOnlymetadata flag (used by ArduPilot to lock certain params, added in #14007) by hiding the input field entirely. Unlike min/max bounds — which Advanced-UI users can bypass via "Force save (dangerous!)" — there is no way to override the read-only constraint, even for diagnostic or recovery scenarios where the lock is overly restrictive.Solution
ParameterEditorDialogshows a "Force edit read-only param (dangerous!)" checkbox when bothfact.readOnlyandshowAdvancedUIare true. Checking it transitions the dialog into the normal edit view (input field + Save button) and turns the read-only label into a red warning. UI gating is centralised on a derived_readOnlyDisplay: fact.readOnly && !forceEdit.checkedproperty so the existing read-only branches stay tidy. No C++ changes were needed —Fact::setRawValuedoes not gate on the flag; it was a UI-only constraint.