Skip to content

Commit

Permalink
fix #25905: Joined scores in album lose offset information
Browse files Browse the repository at this point in the history
  • Loading branch information
lasconic committed May 30, 2014
1 parent cbb3882 commit 8c7a103
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
3 changes: 3 additions & 0 deletions libmscore/measure.cpp
Expand Up @@ -3825,20 +3825,23 @@ Measure* Measure::cloneMeasure(Score* sc, TieMap* tieMap)
}
}
}
ne->setUserOff(oe->userOff());
s->add(ne);
}
foreach(Element* e, oseg->annotations()) {
if (e->generated() || e->track() != track)
continue;
Element* ne = e->clone();
ne->setTrack(track);
ne->setUserOff(e->userOff());
s->add(ne);
}
}
}
foreach(Element* e, *el()) {
Element* ne = e->clone();
ne->setScore(sc);
ne->setUserOff(e->userOff());
m->add(ne);
}
return m;
Expand Down
19 changes: 12 additions & 7 deletions mscore/album.cpp
Expand Up @@ -131,7 +131,14 @@ void Album::createScore()
if (_scores.isEmpty())
return;
QString filter = QWidget::tr("Compressed MuseScore File (*.mscz);;");
QString fname = QString("%1.mscz").arg(_name);
QSettings settings;
if (mscore->lastSaveDirectory.isEmpty())
mscore->lastSaveDirectory = settings.value("lastSaveDirectory", preferences.myScoresPath).toString();
QString saveDirectory = mscore->lastSaveDirectory;

if (saveDirectory.isEmpty())
saveDirectory = preferences.myScoresPath;
QString fname = QString("%1/%2.mscz").arg(saveDirectory).arg(_name);
QString fn = mscore->getSaveScoreName(
QWidget::tr("MuseScore: Save Album into Score"),
fname,
Expand All @@ -142,18 +149,15 @@ void Album::createScore()

loadScores();

Score* firstScore = 0;
foreach(AlbumItem* item, _scores) {
firstScore = item->score;
if (firstScore)
break;
}
Score* firstScore = _scores[0]->score;
if (!firstScore)
return;
firstScore->doLayout();
Score* score = firstScore->clone();
foreach (AlbumItem* item, _scores) {
if (item->score == 0 || item->score == firstScore)
continue;
item->score->doLayout();
if (!score->appendScore(item->score)) {
qDebug("cannot append score");
delete score;
Expand All @@ -164,6 +168,7 @@ void Album::createScore()
qDebug("Album::createScore: save file");
try {
score->saveCompressedFile(*score->fileInfo(), false);
mscore->lastSaveDirectory = score->fileInfo()->absolutePath();
}
catch (QString s) {
QMessageBox::critical(mscore, QWidget::tr("MuseScore: Save File"), s);
Expand Down
8 changes: 5 additions & 3 deletions mscore/album.ui
Expand Up @@ -2,6 +2,9 @@
<ui version="4.0">
<class>AlbumManager</class>
<widget class="QDialog" name="AlbumManager">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
Expand Down Expand Up @@ -68,8 +71,7 @@
</widget>
</item>
<item row="2" column="0" rowspan="5">
<widget class="QListWidget" name="scoreList">
</widget>
<widget class="QListWidget" name="scoreList"/>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="down">
Expand Down Expand Up @@ -114,7 +116,7 @@
<string>Load an Existing Album</string>
</property>
<property name="text">
<string>Load</string>
<string>Load</string>
</property>
</widget>
</item>
Expand Down

0 comments on commit 8c7a103

Please sign in to comment.