summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-08-03 02:04:39 +0200
committerRobin Gareus <robin@gareus.org>2017-08-03 02:04:57 +0200
commit4e1772425d6d7cc966429045e801b60b81cc0a35 (patch)
treeca620a69abebcf60cb640d9cc1dbc571f62748fa
parentbbb5c54c2eeb54cdf63c8bfe299af4b9cfd6ec95 (diff)
prevent duplicate playlist-names when re-naming #7438
-rw-r--r--libs/ardour/diskstream.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/ardour/diskstream.cc b/libs/ardour/diskstream.cc
index 24339ec8cc..882ca10a54 100644
--- a/libs/ardour/diskstream.cc
+++ b/libs/ardour/diskstream.cc
@@ -46,6 +46,7 @@
#include "ardour/profile.h"
#include "ardour/playlist.h"
#include "ardour/session.h"
+#include "ardour/session_playlists.h"
#include "ardour/track.h"
#include "ardour/types_convert.h"
@@ -476,8 +477,12 @@ Diskstream::set_name (const string& str)
{
if (_name != str) {
assert(playlist());
- playlist()->set_name (str);
- SessionObject::set_name(str);
+ std::string name (str);
+ while (_session.playlists->by_name (name)) {
+ name = Playlist::bump_name (name, _session);
+ }
+ playlist()->set_name (name);
+ SessionObject::set_name(name);
}
return true;
}