Skip to content

Commit fecdbed

Browse files
committed
align system to margin (ignoring brackets)
Remove unused code path
1 parent e4c600d commit fecdbed

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

src/engraving/libmscore/system.cpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -257,15 +257,13 @@ void System::adjustStavesNumber(int nstaves)
257257
// systemNamesWidth
258258
//---------------------------------------------------------
259259

260-
qreal System::systemNamesWidth(bool getTotalWidth) {
260+
qreal System::systemNamesWidth()
261+
{
261262
qreal instrumentNameOffset = score()->styleP(Sid::instrumentNameOffset);
262263

263264
qreal namesWidth = 0.0;
264265

265266
for (const Part* part : score()->parts()) {
266-
if (!getTotalWidth && firstVisibleSysStaffOfPart(part) < 0) {
267-
continue;
268-
}
269267
for (int staffIdx = firstSysStaffOfPart(part); staffIdx <= lastSysStaffOfPart(part); ++staffIdx) {
270268
SysStaff* staff = this->staff(staffIdx);
271269
if (!staff) {
@@ -287,7 +285,8 @@ qreal System::systemNamesWidth(bool getTotalWidth) {
287285
// layoutBrackets
288286
//---------------------------------------------------------
289287

290-
qreal System::layoutBrackets(const LayoutContext& ctx) {
288+
qreal System::layoutBrackets(const LayoutContext& ctx)
289+
{
291290
int nstaves = _staves.size();
292291
int columns = getBracketsColumnsCount();
293292

@@ -340,7 +339,8 @@ qreal System::layoutBrackets(const LayoutContext& ctx) {
340339
// totalBracketOffset
341340
//---------------------------------------------------------
342341

343-
qreal System::totalBracketOffset(const LayoutContext& ctx) {
342+
qreal System::totalBracketOffset(const LayoutContext& ctx)
343+
{
344344
bool hideEmptyStaves = score()->styleB(Sid::hideEmptyStaves);
345345
score()->setStyleValue(Sid::hideEmptyStaves, false);
346346

@@ -368,7 +368,7 @@ void System::layoutSystem(const LayoutContext& ctx, qreal xo1, const bool isFirs
368368
//---------------------------------------------------
369369
// find x position of staves
370370
//---------------------------------------------------
371-
qreal maxNamesWidth = systemNamesWidth(true);
371+
qreal maxNamesWidth = systemNamesWidth();
372372

373373
if (isFirstSystem && firstSystemIndent) {
374374
maxNamesWidth = qMax(maxNamesWidth, styleP(Sid::firstSystemIndentationValue) * mag());
@@ -377,8 +377,17 @@ void System::layoutSystem(const LayoutContext& ctx, qreal xo1, const bool isFirs
377377
qreal maxBracketsWidth = totalBracketOffset(ctx);
378378
qreal bracketsWidth = layoutBrackets(ctx);
379379
qreal bracketWidthDifference = maxBracketsWidth - bracketsWidth;
380-
_leftMargin = maxNamesWidth + bracketWidthDifference + instrumentNameOffset;
381-
qreal nameOffset = _leftMargin - bracketsWidth - instrumentNameOffset;
380+
qreal nameOffset = 0.0;
381+
if (maxNamesWidth == 0.0) {
382+
if (score()->styleB(Sid::alignSystemToMargin)) {
383+
_leftMargin = bracketWidthDifference;
384+
} else {
385+
_leftMargin = maxBracketsWidth;
386+
}
387+
} else {
388+
_leftMargin = maxNamesWidth + bracketWidthDifference + instrumentNameOffset;
389+
nameOffset = _leftMargin - bracketsWidth - instrumentNameOffset;
390+
}
382391

383392
int nVisible = 0;
384393
for (int staffIdx = 0; staffIdx < nstaves; ++staffIdx) {

src/engraving/libmscore/system.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ class System final : public EngravingItem
126126
void setBracketsXPosition(const qreal xOffset);
127127
Bracket* createBracket(const mu::engraving::LayoutContext& ctx, Ms::BracketItem* bi, int column, int staffIdx, QList<Ms::Bracket*>& bl,
128128
Measure* measure);
129-
130-
qreal systemNamesWidth(bool getTotalWidth);
129+
130+
qreal systemNamesWidth();
131131
qreal layoutBrackets(const mu::engraving::LayoutContext& ctx);
132132
qreal totalBracketOffset(const mu::engraving::LayoutContext& ctx);
133133

src/engraving/style/styledef.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ const std::array<StyleDef::StyleValue, size_t(Sid::STYLES)> StyleDef::styleValue
5858
{ Sid::staffUpperBorder, "staffUpperBorder", Spatium(7.0) },
5959
{ Sid::staffLowerBorder, "staffLowerBorder", Spatium(7.0) },
6060
{ Sid::staffDistance, "staffDistance", Spatium(6.5) },
61-
{ Sid::instrumentNameOffset, "instrumentNameOffset", Spatium(1.0) },
61+
{ Sid::instrumentNameOffset, "instrumentNameOffset", Spatium(1.0) },
6262
{ Sid::akkoladeDistance, "akkoladeDistance", Spatium(6.5) },
6363
{ Sid::minSystemDistance, "minSystemDistance", Spatium(8.5) },
6464
{ Sid::maxSystemDistance, "maxSystemDistance", Spatium(15.0) },
65+
{ Sid::alignSystemToMargin, "alignSystemToMargin", true },
6566

6667
{ Sid::enableVerticalSpread, "enableVerticalSpread", false },
6768
{ Sid::spreadSystem, "spreadSystem", 2.5 },

src/engraving/style/styledef.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ enum class Sid {
7777
akkoladeDistance,
7878
minSystemDistance,
7979
maxSystemDistance,
80+
alignSystemToMargin,
8081

8182
enableVerticalSpread,
8283
spreadSystem,

0 commit comments

Comments
 (0)