diff options
author | Robin Gareus <robin@gareus.org> | 2017-08-03 02:04:39 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-08-03 02:04:57 +0200 |
commit | 4e1772425d6d7cc966429045e801b60b81cc0a35 (patch) | |
tree | ca620a69abebcf60cb640d9cc1dbc571f62748fa /libs | |
parent | bbb5c54c2eeb54cdf63c8bfe299af4b9cfd6ec95 (diff) |
prevent duplicate playlist-names when re-naming #7438
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/diskstream.cc | 9 |
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; } |