Fix transposition of chord symbols in parts#33771
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds TextBase::textWasEdited(EditData&) and uses it in TextBase::endEdit and PlayCountText::endEdit. Harmony::endEdit now skips when text wasn't changed and applies linked-harmony transpositions via undoable Transpose commands (with command merging). Transpose gained reusable doUndoTransposeHarmony/doUndoTransposeHarmonyDiatonic helpers used by undo flips. Excerpt cloning now invokes transpose logic when copying harmonies between scores with differing concert-pitch settings. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsLinked repositories: Your configuration references 1 linked repositories, but your current plan allows 0. Analyzed ``, skipped Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/engraving/dom/excerpt.cpp`:
- Around line 872-883: Change transposeHarmony so cloned harmonies are skipped
when no transposition is required and compute the transposition interval using
the instrument in effect at the harmony's tick instead of the part default: if
the Harmony is a clone (e.g., harmony->isCloned() or harmony->cloned() flag) and
needsTransposition is false, return immediately; obtain the instrument active at
the harmony tick (e.g., via Staff::instrumentAt(harmony->tick()) or
Part::instrumentAt) and use its transpose() to build the Interval (fall back to
part()->instrument() only if needed); then apply the flip when
!scoreConcertPitch and call Transpose::doUndoTransposeHarmony(harmony,
interval).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d49cd5e2-7537-44e9-985f-dad1e4ef41c5
📒 Files selected for processing (3)
src/engraving/dom/excerpt.cppsrc/engraving/editing/transpose.cppsrc/engraving/editing/transpose.h
Resolves: #33339
Resolves: #30746
Resolves: #32901