Skip to content

Commit 3752d07

Browse files
cbjeukendrupvpereverzev
authored andcommitted
Fix #317227, fix #317185: Disable centering score when opening score or switching LayoutMode
Centering the score was maybe esthetically a nice idea, but in practice, it turns out to be less ergonomic / efficient. Therefore, it's now disabled. The way in which centering the score on opening was implemented also caused issue #317185.
1 parent 3ede668 commit 3752d07

File tree

3 files changed

+2
-45
lines changed

3 files changed

+2
-45
lines changed

mscore/musescore.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2661,10 +2661,6 @@ void MuseScore::setCurrentScoreView(ScoreView* view)
26612661
}
26622662
cs = cv->score();
26632663
cv->setFocusRect();
2664-
if (!cv->wasShown) {
2665-
cv->wasShown = true;
2666-
cv->pageTop();
2667-
}
26682664
}
26692665
else
26702666
cs = 0;

mscore/scoreview.cpp

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ void ScoreView::setScore(Score* s)
236236
}
237237
else
238238
_score->addViewer(this);
239+
pageTop(); // (re)set position
239240
}
240241

241242
if (shadowNote == 0) {
@@ -3582,46 +3583,7 @@ void ScoreView::screenPrev()
35823583

35833584
void ScoreView::pageTop()
35843585
{
3585-
switch (score()->layoutMode()) {
3586-
case LayoutMode::PAGE:
3587-
{
3588-
qreal dx = thinPadding, dy = thinPadding;
3589-
Page* firstPage = score()->pages().front();
3590-
Page* lastPage = score()->pages().back();
3591-
if (firstPage && lastPage) {
3592-
QPointF offsetPt(xoffset(), yoffset());
3593-
QRectF firstPageRect(firstPage->pos().x() * physicalZoomLevel(),
3594-
firstPage->pos().y() * physicalZoomLevel(),
3595-
firstPage->width() * physicalZoomLevel(),
3596-
firstPage->height() * physicalZoomLevel());
3597-
QRectF lastPageRect(lastPage->pos().x() * physicalZoomLevel(),
3598-
lastPage->pos().y() * physicalZoomLevel(),
3599-
lastPage->width() * physicalZoomLevel(),
3600-
lastPage->height() * physicalZoomLevel());
3601-
QRectF pagesRect = firstPageRect.united(lastPageRect);
3602-
dx = qMax(thinPadding, (width() - pagesRect.width()) / 2);
3603-
dy = qMax(thinPadding, (height() - pagesRect.height()) / 2);
3604-
}
3605-
setOffset(dx, dy);
3606-
break;
3607-
}
3608-
case LayoutMode::LINE:
3609-
setOffset(thinPadding, 0.0);
3610-
break;
3611-
case LayoutMode::SYSTEM:
3612-
{
3613-
qreal dx = thinPadding, dy = thinPadding;
3614-
Page* page = score()->pages().front();
3615-
if (page) {
3616-
dx = qMax(thinPadding, (width() - page->width() * physicalZoomLevel()) / 2);
3617-
}
3618-
setOffset(dx, dy);
3619-
break;
3620-
}
3621-
default:
3622-
setOffset(thinPadding, thinPadding);
3623-
break;
3624-
}
3586+
setOffset(thinPadding, score()->layoutMode() == LayoutMode::LINE ? 0.0 : thinPadding);
36253587
update();
36263588
}
36273589

mscore/scoreview.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,6 @@ class ScoreView : public QWidget, public MuseScoreView {
428428
void setEditElement(Element*);
429429
void updateEditElement();
430430

431-
bool wasShown = false;
432431
bool noteEntryMode() const { return state == ViewState::NOTE_ENTRY; }
433432
bool editMode() const { return state == ViewState::EDIT; }
434433
bool textEditMode() const { return editMode() && editData.element && editData.element->isTextBase(); }

0 commit comments

Comments
 (0)