diff --git a/src/engraving/layout/v0/tlayout.cpp b/src/engraving/layout/v0/tlayout.cpp index 9e89982b795d..febc180f9868 100644 --- a/src/engraving/layout/v0/tlayout.cpp +++ b/src/engraving/layout/v0/tlayout.cpp @@ -1513,7 +1513,7 @@ void TLayout::layout(Expression* item, LayoutContext& ctx) } item->setSnappedDynamic(nullptr); - if (!item->snappedDynamic()) { + if (!item->snapToDynamics()) { item->autoplaceSegmentElement(); return; } @@ -2435,8 +2435,8 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx) if (item->hairpin()->isLineType()) { item->m_twoLines = false; layoutTextLineBaseSegment(item, ctx); - item->m_drawCircledTip = false; - item->m_circledTipRadius = 0.0; + item->setDrawCircledTip(false); + item->setCircledTipRadius(0.0); } else { item->m_twoLines = true; @@ -2464,8 +2464,8 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx) double len = sqrt(x * x + y * y); t.rotateRadians(asin(y / len)); - item->m_drawCircledTip = item->hairpin()->hairpinCircledTip(); - item->m_circledTipRadius = item->m_drawCircledTip ? 0.6 * _spatium * .5 : 0.0; + item->setDrawCircledTip(item->hairpin()->hairpinCircledTip()); + item->setCircledTipRadius(item->drawCircledTip() ? 0.6 * _spatium * .5 : 0.0); LineF l1, l2; @@ -2473,16 +2473,18 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx) case HairpinType::CRESC_HAIRPIN: { switch (item->spannerSegmentType()) { case SpannerSegmentType::SINGLE: - case SpannerSegmentType::BEGIN: - l1.setLine(x1 + item->m_circledTipRadius * 2.0, 0.0, len, h1); - l2.setLine(x1 + item->m_circledTipRadius * 2.0, 0.0, len, -h1); - item->m_circledTip.setX(x1 + item->m_circledTipRadius); - item->m_circledTip.setY(0.0); - break; + case SpannerSegmentType::BEGIN: { + l1.setLine(x1 + item->circledTipRadius() * 2.0, 0.0, len, h1); + l2.setLine(x1 + item->circledTipRadius() * 2.0, 0.0, len, -h1); + PointF circledTip; + circledTip.setX(x1 + item->circledTipRadius()); + circledTip.setY(0.0); + item->setCircledTip(circledTip); + } break; case SpannerSegmentType::MIDDLE: case SpannerSegmentType::END: - item->m_drawCircledTip = false; + item->setDrawCircledTip(false); l1.setLine(x1, h2, len, h1); l2.setLine(x1, -h2, len, -h1); break; @@ -2492,15 +2494,17 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx) case HairpinType::DECRESC_HAIRPIN: { switch (item->spannerSegmentType()) { case SpannerSegmentType::SINGLE: - case SpannerSegmentType::END: - l1.setLine(x1, h1, len - item->m_circledTipRadius * 2, 0.0); - l2.setLine(x1, -h1, len - item->m_circledTipRadius * 2, 0.0); - item->m_circledTip.setX(len - item->m_circledTipRadius); - item->m_circledTip.setY(0.0); - break; + case SpannerSegmentType::END: { + l1.setLine(x1, h1, len - item->circledTipRadius() * 2, 0.0); + l2.setLine(x1, -h1, len - item->circledTipRadius() * 2, 0.0); + PointF circledTip; + circledTip.setX(len - item->circledTipRadius()); + circledTip.setY(0.0); + item->setCircledTip(circledTip); + } break; case SpannerSegmentType::BEGIN: case SpannerSegmentType::MIDDLE: - item->m_drawCircledTip = false; + item->setDrawCircledTip(false); l1.setLine(x1, h1, len, +h2); l2.setLine(x1, -h1, len, -h2); break; @@ -2514,8 +2518,8 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx) // Do Coord rotation l1 = t.map(l1); l2 = t.map(l2); - if (item->m_drawCircledTip) { - item->m_circledTip = t.map(item->m_circledTip); + if (item->drawCircledTip()) { + item->setCircledTip(t.map(item->circledTip())); } item->m_points[0] = l1.p1(); diff --git a/src/engraving/libmscore/dynamic.h b/src/engraving/libmscore/dynamic.h index ef628ed26407..03194dcd8139 100644 --- a/src/engraving/libmscore/dynamic.h +++ b/src/engraving/libmscore/dynamic.h @@ -114,6 +114,7 @@ class Dynamic final : public TextBase static const std::vector& dynamicList() { return DYN_LIST; } private: + M_PROPERTY(bool, avoidBarLines, setAvoidBarLines) M_PROPERTY(double, dynamicsSize, setDynamicsSize) M_PROPERTY(bool, centerOnNotehead, setCenterOnNotehead) diff --git a/src/engraving/libmscore/expression.cpp b/src/engraving/libmscore/expression.cpp index 05366d94e7fd..e9faf9dc49b9 100644 --- a/src/engraving/libmscore/expression.cpp +++ b/src/engraving/libmscore/expression.cpp @@ -85,7 +85,7 @@ void Expression::undoChangeProperty(Pid id, const PropertyValue& v, PropertyFlag TextBase::undoChangeProperty(id, v, ps); if (m_snappedDynamic) { if ((id == Pid::OFFSET && m_snappedDynamic->offset() != v.value()) - || (id == Pid::PLACEMENT && m_snappedDynamic->placement() != v.value())) { + || (id == Pid::PLACEMENT && m_snappedDynamic->placement() != v.value())) { m_snappedDynamic->undoChangeProperty(id, v, ps); } } diff --git a/src/engraving/libmscore/figuredbass.cpp b/src/engraving/libmscore/figuredbass.cpp index 6a75249d6e30..93764d03ca3b 100644 --- a/src/engraving/libmscore/figuredbass.cpp +++ b/src/engraving/libmscore/figuredbass.cpp @@ -182,8 +182,8 @@ bool FiguredBassItem::parse(String& str) // prefix, digit, suffix and cont.line cannot be ALL empty // suffix cannot combine with empty digit if ((m_prefix != Modifier::NONE && m_suffix != Modifier::NONE) - || (m_prefix == Modifier::NONE && m_digit == FBIDigitNone && m_suffix == Modifier::NONE && m_contLine == ContLine::NONE) - || ((m_suffix == Modifier::CROSS || m_suffix == Modifier::BACKSLASH || m_suffix == Modifier::SLASH) + || (m_prefix == Modifier::NONE && m_digit == FBIDigitNone && m_suffix == Modifier::NONE && m_contLine == ContLine::NONE) + || ((m_suffix == Modifier::CROSS || m_suffix == Modifier::BACKSLASH || m_suffix == Modifier::SLASH) && m_digit == FBIDigitNone)) { return false; } diff --git a/src/engraving/libmscore/hairpin.h b/src/engraving/libmscore/hairpin.h index 6e5db525f02a..623c7c03c2da 100644 --- a/src/engraving/libmscore/hairpin.h +++ b/src/engraving/libmscore/hairpin.h @@ -56,6 +56,13 @@ class HairpinSegment final : public TextLineBaseSegment Hairpin* hairpin() const { return (Hairpin*)spanner(); } + bool drawCircledTip() const { return m_drawCircledTip; } + void setDrawCircledTip(bool arg) { m_drawCircledTip = arg; } + double circledTipRadius() const { return m_circledTipRadius; } + void setCircledTipRadius(double r) { m_circledTipRadius = r; } + mu::PointF circledTip() const { return m_circledTip; } + void setCircledTip(const mu::PointF& p) { m_circledTip = p; } + EngravingItem* propertyDelegate(Pid) override; Shape shape() const override; @@ -67,8 +74,6 @@ class HairpinSegment final : public TextLineBaseSegment private: - friend class layout::v0::TLayout; - void startEditDrag(EditData&) override; void editDrag(EditData&) override;