aboutsummaryrefslogtreecommitdiff
path: root/composer/Track.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'composer/Track.cpp')
-rw-r--r--composer/Track.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/composer/Track.cpp b/composer/Track.cpp
index ae02ed5..d0ed4de 100644
--- a/composer/Track.cpp
+++ b/composer/Track.cpp
@@ -53,7 +53,23 @@ void Track::renamePattern(const string &oldName, const string &newName)
{
Pattern *pattern = getPattern(oldName);
if(!pattern) return;
- pattern->setName(newName);
patterns[newName] = patterns[oldName];
+ patterns[newName]->setName(newName);
patterns.erase(oldName);
}
+
+void Track::copyPattern(const string &src, const string &dst)
+{
+ Pattern *pattern = getPattern(src);
+ if(!pattern) return;
+ patterns[dst] = new Pattern(*patterns[src]);
+ patterns[dst]->setName(dst);
+}
+
+void Track::removePattern(const string &p)
+{
+ Pattern *pattern = getPattern(p);
+ if(!pattern) return;
+ patterns.erase(p);
+}
+