mirror of
https://github.com/LMMS/lmms.git
synced 2026-05-17 11:18:30 -04:00
Rename TCO and BB to clip and pattern in save files (#6309)
... and clarify how PatternTrack cloning works - pattern -> midiclip - automationpattern -> automationclip - *tco -> *clip - bb* -> pattern* - bbtrackcontainer -> patternstore
This commit is contained in:
@@ -45,6 +45,7 @@
|
||||
#include "ProjectVersion.h"
|
||||
#include "SongEditor.h"
|
||||
#include "TextFloat.h"
|
||||
#include "Track.h"
|
||||
#include "PathUtil.h"
|
||||
|
||||
#include "lmmsversion.h"
|
||||
@@ -54,7 +55,7 @@ static void findIds(const QDomElement& elem, QList<jo_id_t>& idList);
|
||||
|
||||
// QMap with the DOM elements that access file resources
|
||||
const DataFile::ResourcesMap DataFile::ELEMENTS_WITH_RESOURCES = {
|
||||
{ "sampletco", {"src"} },
|
||||
{ "sampleclip", {"src"} },
|
||||
{ "audiofileprocessor", {"src"} },
|
||||
};
|
||||
|
||||
@@ -71,7 +72,7 @@ const std::vector<DataFile::UpgradeMethod> DataFile::UPGRADE_METHODS = {
|
||||
&DataFile::upgrade_1_3_0 , &DataFile::upgrade_noHiddenClipNames,
|
||||
&DataFile::upgrade_automationNodes , &DataFile::upgrade_extendedNoteRange,
|
||||
&DataFile::upgrade_defaultTripleOscillatorHQ,
|
||||
&DataFile::upgrade_mixerRename
|
||||
&DataFile::upgrade_mixerRename , &DataFile::upgrade_bbTcoRename,
|
||||
};
|
||||
|
||||
// Vector of all versions that have upgrade routines.
|
||||
@@ -95,7 +96,7 @@ DataFile::typeDescStruct
|
||||
{ DataFile::ClipboardData, "clipboard-data" },
|
||||
{ DataFile::JournalData, "journaldata" },
|
||||
{ DataFile::EffectSettings, "effectsettings" },
|
||||
{ DataFile::MidiClip, "pattern" }
|
||||
{ DataFile::MidiClip, "midiclip" }
|
||||
} ;
|
||||
|
||||
|
||||
@@ -1790,6 +1791,40 @@ void DataFile::upgrade_mixerRename()
|
||||
}
|
||||
|
||||
|
||||
// Rename BB to pattern and TCO to clip
|
||||
void DataFile::upgrade_bbTcoRename()
|
||||
{
|
||||
std::vector<std::pair<const char *, const char *>> names {
|
||||
{"automationpattern", "automationclip"},
|
||||
{"bbtco", "patternclip"},
|
||||
{"pattern", "midiclip"},
|
||||
{"sampletco", "sampleclip"},
|
||||
{"bbtrack", "patterntrack"},
|
||||
{"bbtrackcontainer", "patternstore"},
|
||||
};
|
||||
// Replace names of XML tags
|
||||
for (auto name : names)
|
||||
{
|
||||
QDomNodeList elements = elementsByTagName(name.first);
|
||||
for (int i = 0; !elements.item(i).isNull(); ++i)
|
||||
{
|
||||
elements.item(i).toElement().setTagName(name.second);
|
||||
}
|
||||
}
|
||||
// Replace "Beat/Bassline" with "Pattern" in track names
|
||||
QDomNodeList elements = elementsByTagName("track");
|
||||
for (int i = 0; !elements.item(i).isNull(); ++i)
|
||||
{
|
||||
auto e = elements.item(i).toElement();
|
||||
static_assert(Track::PatternTrack == 1, "Must be type=1 for backwards compatibility");
|
||||
if (e.attribute("type").toInt() == Track::PatternTrack)
|
||||
{
|
||||
e.setAttribute("name", e.attribute("name").replace("Beat/Bassline", "Pattern"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DataFile::upgrade()
|
||||
{
|
||||
// Runs all necessary upgrade methods
|
||||
|
||||
Reference in New Issue
Block a user