From 4769f59e60f7fd5c6f6c3d8b782587bf11564eb8 Mon Sep 17 00:00:00 2001 From: sammik Date: Mon, 30 Oct 2023 15:11:20 +0100 Subject: [PATCH] code review fix --- src/engraving/dom/engravingobject.cpp | 6 ------ src/engraving/dom/measure.cpp | 24 ++++++++++++++++++++++++ src/engraving/dom/measure.h | 3 +++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/engraving/dom/engravingobject.cpp b/src/engraving/dom/engravingobject.cpp index e0e47e93c6..56288eec11 100644 --- a/src/engraving/dom/engravingobject.cpp +++ b/src/engraving/dom/engravingobject.cpp @@ -475,12 +475,6 @@ void EngravingObject::undoChangeProperty(Pid id, const PropertyValue& v, Propert toEngravingItem(this)->manageExclusionFromParts(v.toBool()); } } - } else if (id == Pid::REPEAT_START || id == Pid::REPEAT_END) { - // change also coresponding mmRestMeasure - Measure* m = const_cast(toMeasure(this)->coveringMMRestOrThis()); - if (m != this) { - m->undoChangeProperty(id, v); - } } changeProperties(this, id, v, ps); if (id != Pid::GENERATED) { diff --git a/src/engraving/dom/measure.cpp b/src/engraving/dom/measure.cpp index 8213532103..d72530c4b2 100644 --- a/src/engraving/dom/measure.cpp +++ b/src/engraving/dom/measure.cpp @@ -2712,6 +2712,30 @@ PropertyValue Measure::propertyDefault(Pid propertyId) const return MeasureBase::propertyDefault(propertyId); } +//--------------------------------------------------------- +// undoChangeProperty +//--------------------------------------------------------- + +void Measure::undoChangeProperty(Pid id, const PropertyValue& v) +{ + undoChangeProperty(id, v, propertyFlags(id)); +} + +void Measure::undoChangeProperty(Pid id, const PropertyValue& v, PropertyFlags ps) +{ + if ((getProperty(id) == v) && (propertyFlags(id) == ps)) { + return; + } + if (id == Pid::REPEAT_START || id == Pid::REPEAT_END) { + // change also coresponding mmRestMeasure + Measure* m = const_cast(toMeasure(this)->coveringMMRestOrThis()); + if (m != this) { + m->undoChangeProperty(id, v); + } + } + EngravingObject::undoChangeProperty(id, v, ps); +} + //------------------------------------------------------------------- // mmRestFirst // this is a multi measure rest diff --git a/src/engraving/dom/measure.h b/src/engraving/dom/measure.h index 271859ff07..562805e1de 100644 --- a/src/engraving/dom/measure.h +++ b/src/engraving/dom/measure.h @@ -300,6 +300,9 @@ public: bool setProperty(Pid propertyId, const PropertyValue&) override; PropertyValue propertyDefault(Pid) const override; + void undoChangeProperty(Pid id, const PropertyValue& newValue); + void undoChangeProperty(Pid id, const PropertyValue& newValue, PropertyFlags ps) override; + bool hasMMRest() const { return m_mmRest != 0; } bool isMMRest() const { return m_mmRestCount > 0; } Measure* mmRest() const { return m_mmRest; }