Skip to content

Commit 00f8ec5

Browse files
miiizenmike-spa
authored andcommitted
Merge pull request musescore#29353 from mike-spa/fixOutOfDataPaddingTableForParts
Fix out of date padding table for parts
1 parent eed3d4c commit 00f8ec5

File tree

4 files changed

+14
-28
lines changed

4 files changed

+14
-28
lines changed

src/engraving/dom/score.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,6 @@ Score::Score(const modularity::ContextPtr& iocCtx)
167167
m_rootItem = new RootItem(this);
168168
m_rootItem->init();
169169

170-
//! NOTE Looks like a bug, `minimumPaddingUnit` is set using the default style's spatium value
171-
//! and does not change if the style or the spatium of this score is changed
172-
m_paddingTable.setMinimumPaddingUnit(0.1 * style().spatium());
173170
createPaddingTable();
174171

175172
m_shadowNote = new ShadowNote(this);

src/engraving/engravingproject.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ Ret EngravingProject::doSetupMasterScore(bool forceMode)
124124
for (Score* s : m_masterScore->scoreList()) {
125125
s->setPlaylistDirty();
126126
s->setLayoutAll();
127+
s->createPaddingTable();
127128
}
128129

129130
m_masterScore->updateChannel();

src/engraving/rendering/paddingtable.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@
2727

2828
using namespace mu::engraving;
2929

30-
void PaddingTable::initPaddingTable()
30+
void PaddingTable::initPaddingTable(double minPadUnit)
3131
{
3232
PaddingTable& table = *this;
3333

34-
double minPadUnit = minimumPaddingUnit();
35-
3634
for (size_t i=0; i < TOT_ELEMENT_TYPES; ++i) {
3735
for (size_t j=0; j < TOT_ELEMENT_TYPES; ++j) {
3836
table[i][j] = minPadUnit;
@@ -42,15 +40,15 @@ void PaddingTable::initPaddingTable()
4240

4341
void PaddingTable::createTable(const MStyle& style)
4442
{
45-
initPaddingTable();
46-
47-
PaddingTable& table = *this;
48-
49-
const double minPadUnit = minimumPaddingUnit();
5043
const double spatium = style.spatium();
44+
const double minPadUnit = 0.1 * spatium;
45+
initPaddingTable(minPadUnit);
46+
5147
const double ledgerPad = 0.25 * spatium;
5248
const double ledgerLength = style.styleMM(Sid::ledgerLineLength);
5349

50+
PaddingTable& table = *this;
51+
5452
// NOTE: we don't set note-note padding to minNoteDistance
5553
// because there are cases when they should be allowed to get closer.
5654
// minNoteDistance is applied during the padding calculations.
@@ -292,16 +290,17 @@ ParenPaddingTablePtr ParenPaddingTable::getPaddingTable(const EngravingItem* par
292290
ASSERT_X("Not a valid parenthesised type")
293291
}
294292

295-
table->setMinimumPaddingUnit(0.1 * parent->style().spatium());
293+
const double spatium = parent->style().spatium();
294+
const double minPadUnit = 0.1 * spatium;
295+
table->initPaddingTable(minPadUnit);
296+
296297
table->createTable(parent->style());
297298

298299
return table;
299300
}
300301

301-
void ParenPaddingTable::initPaddingTable()
302+
void ParenPaddingTable::initPaddingTable(double minPadUnit)
302303
{
303-
const double minPadUnit = minimumPaddingUnit();
304-
305304
for (size_t i = 0; i < TOT_ELEMENT_TYPES; ++i) {
306305
m_parenBefore[i] = minPadUnit;
307306
m_parenAfter[i] = minPadUnit;

src/engraving/rendering/paddingtable.h

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,37 +43,26 @@ struct PaddingVector : std::array<T, TOT_ELEMENT_TYPES>
4343
struct PaddingTable : public PaddingVector<PaddingVector<double> >
4444
{
4545
public:
46-
47-
void setMinimumPaddingUnit(double val) { m_minimumPaddingUnit = val; }
48-
double minimumPaddingUnit() const { return m_minimumPaddingUnit; }
49-
5046
void createTable(const MStyle& style);
5147

5248
private:
53-
void initPaddingTable();
54-
double m_minimumPaddingUnit = 0.0;
49+
void initPaddingTable(double minPadUnit);
5550
};
5651

5752
struct ParenPaddingTable
5853
{
5954
public:
6055
virtual ~ParenPaddingTable() = default;
6156

62-
void setMinimumPaddingUnit(double val) { m_minimumPaddingUnit = val; }
63-
double minimumPaddingUnit() const { return m_minimumPaddingUnit; }
64-
6557
virtual void createTable(const MStyle& style) = 0;
6658
double padding(ElementType type1, ElementType type2);
6759

6860
static ParenPaddingTablePtr getPaddingTable(const EngravingItem* parent);
6961

7062
protected:
71-
void initPaddingTable();
63+
void initPaddingTable(double minPadUnit);
7264
PaddingVector<double> m_parenBefore;
7365
PaddingVector<double> m_parenAfter;
74-
75-
private:
76-
double m_minimumPaddingUnit = 0.0;
7766
};
7867

7968
struct NoteParenPaddingTable : public ParenPaddingTable {

0 commit comments

Comments
 (0)