Skip to content

Commit 7b242c3

Browse files
authored
Fix compute masking on TAB staff settings preview (#27425)
1 parent ce1ff7f commit 7b242c3

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

src/engraving/rendering/iscorerenderer.h

+2
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ class IScoreRenderer : MODULE_EXPORT_INTERFACE
196196
virtual void computeBezier(TieSegment* tieSeg, PointF shoulderOffset = PointF()) = 0;
197197
virtual void computeBezier(SlurSegment* slurSeg, PointF shoulderOffser = PointF()) = 0;
198198

199+
virtual void computeMasks(Score* score) = 0;
200+
199201
private:
200202
// Layout Single Item
201203
virtual void doLayoutItem(EngravingItem* item) = 0;

src/engraving/rendering/score/scorerenderer.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "arpeggiolayout.h"
3636
#include "horizontalspacing.h"
3737
#include "slurtielayout.h"
38+
#include "masklayout.h"
3839

3940
#include "paint.h"
4041

@@ -102,6 +103,14 @@ void ScoreRenderer::computeBezier(SlurSegment* slurSeg, PointF shoulderOffset)
102103
SlurTieLayout::computeBezier(slurSeg, shoulderOffset);
103104
}
104105

106+
void ScoreRenderer::computeMasks(Score* score)
107+
{
108+
LayoutContext ctx(score);
109+
for (Page* page : score->pages()) {
110+
MaskLayout::computeMasks(ctx, page);
111+
}
112+
}
113+
105114
void ScoreRenderer::layoutTextLineBaseSegment(TextLineBaseSegment* item)
106115
{
107116
LayoutContext ctx(item->score());

src/engraving/rendering/score/scorerenderer.h

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ class ScoreRenderer : public IScoreRenderer
5353
void computeBezier(TieSegment* tieSeg, PointF shoulderOffset = PointF()) override;
5454
void computeBezier(SlurSegment* slurSeg, PointF shoulderOffset = PointF()) override;
5555

56+
void computeMasks(Score* score) override;
57+
5658
private:
5759
// Layout Single Item
5860
void doLayoutItem(EngravingItem* item) override;

src/notation/view/widgets/editstafftype.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -618,8 +618,10 @@ void EditStaffType::updatePreview()
618618
preview = standardPreview;
619619
}
620620
if (preview) {
621-
preview->score()->staff(0)->setStaffType(mu::engraving::Fraction(0, 1), staffType);
622-
preview->score()->doLayout();
621+
Score* score = preview->score();
622+
score->staff(0)->setStaffType(mu::engraving::Fraction(0, 1), staffType);
623+
score->doLayout();
624+
score->renderer()->computeMasks(score);
623625
preview->updateAll();
624626
preview->update();
625627
}

0 commit comments

Comments
 (0)