From a8560add6520f6cca01d8ed72fd29f5089d61b4c Mon Sep 17 00:00:00 2001 From: EKNr1 Date: Mon, 27 Jan 2025 18:32:41 +0100 Subject: [PATCH] Added unique names on playlist rename. --- wobuzz/player/playlist.py | 2 ++ wobuzz/ui/playlist_tabs/tab_title.py | 8 ++++++-- wobuzz/ui/playlist_tabs/tab_widget.py | 7 ++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/wobuzz/player/playlist.py b/wobuzz/player/playlist.py index 5bc133c..1e55753 100644 --- a/wobuzz/player/playlist.py +++ b/wobuzz/player/playlist.py @@ -124,6 +124,8 @@ class Playlist: wbz.close() def delete(self): + self.app.utils.unique_names.pop(self.title) # remove from unique names so a new playlist can have the old name + path = f"{self.app.settings.library_path}/playlists/{self.title.replace(" ", "_")}.wbz.m3u" if os.path.exists(path): diff --git a/wobuzz/ui/playlist_tabs/tab_title.py b/wobuzz/ui/playlist_tabs/tab_title.py index fc2dc74..b48ad61 100644 --- a/wobuzz/ui/playlist_tabs/tab_title.py +++ b/wobuzz/ui/playlist_tabs/tab_title.py @@ -8,9 +8,10 @@ from .tab_bar import PlaylistTabBar class TabTitle(QLineEdit): - def __init__(self, label, parent, index: int, playlist_view): + def __init__(self, app, label, parent, index: int, playlist_view): super().__init__(label, parent) + self.app = app self.tab_bar: PlaylistTabBar = parent self.index = index self.playlist_view = playlist_view @@ -36,5 +37,8 @@ class TabTitle(QLineEdit): self.playlist_view.playlist.delete() - self.playlist_view.playlist.title = self.text() + name = self.app.utils.unique_name(self.text()) + self.setText(name) + + self.playlist_view.playlist.title = name diff --git a/wobuzz/ui/playlist_tabs/tab_widget.py b/wobuzz/ui/playlist_tabs/tab_widget.py index 0d82221..9eb286e 100644 --- a/wobuzz/ui/playlist_tabs/tab_widget.py +++ b/wobuzz/ui/playlist_tabs/tab_widget.py @@ -8,10 +8,11 @@ from .tab_title import TabTitle class PlaylistTabs(QTabWidget): def __init__(self, library, parent=None): - self.library = library - super().__init__(parent) + self.library = library + self.app = library.app + self.tab_bar = PlaylistTabBar(self) self.setTabBar(self.tab_bar) self.setDocumentMode(True) @@ -24,7 +25,7 @@ class PlaylistTabs(QTabWidget): index = self.tab_bar.count() - 1 - title = TabTitle(label, self.tab_bar, index, widget) + title = TabTitle(self.app, label, self.tab_bar, index, widget) self.tab_bar.setTabButton(index, QTabBar.ButtonPosition.RightSide, title)