prevent duplicate playlist-names when re-naming #7438
authorRobin Gareus <robin@gareus.org>
Thu, 3 Aug 2017 00:04:39 +0000 (02:04 +0200)
committerRobin Gareus <robin@gareus.org>
Thu, 3 Aug 2017 00:04:57 +0000 (02:04 +0200)
libs/ardour/diskstream.cc

index 24339ec8ccbce163990ca7ddfb21f1d6ddd7d24a..882ca10a54accc9f10b9070319b39e3e8eb17de9 100644 (file)
@@ -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;
 }