Improve closing of playist tabs

Fixes #90
This commit is contained in:
Keith Edmunds 2022-02-05 20:00:10 +00:00
parent eb1dc4c07d
commit 441c47bdc2
2 changed files with 17 additions and 13 deletions

View File

@ -222,21 +222,24 @@ class Window(QMainWindow, Ui_MainWindow):
self.music.set_volume(volume)
def close_playlist_tab(self):
with Session() as session:
playlist_db = session.query(Playlists).filter(
Playlists.id == self.visible_playlist_tab().id).one()
playlist_db.close(session)
index = self.tabPlaylist.currentIndex()
self.tabPlaylist.removeTab(index)
self.close_tab(self.tabPlaylist.currentIndex())
def close_tab(self, index):
if self.tabPlaylist.widget(index) == self.current_track_playlist_tab:
self.statusbar.showMessage("Can't close current track playlist",
5000)
elif self.tabPlaylist.widget(index) == self.next_track_playlist_tab:
self.statusbar.showMessage("Can't close next track playlist", 5000)
else:
self.tabPlaylist.removeTab(index)
if hasattr(self.tabPlaylist.widget(index), 'is_playlist'):
if self.tabPlaylist.widget(index) == self.current_track_playlist_tab:
self.statusbar.showMessage("Can't close current track playlist",
5000)
return
if self.tabPlaylist.widget(index) == self.next_track_playlist_tab:
self.statusbar.showMessage("Can't close next track playlist", 5000)
return
# It's OK to close this playlist so remove from open playlist list
with Session() as session:
playlist_db = session.query(Playlists).filter(
Playlists.id == self.visible_playlist_tab().id).one()
playlist_db.close(session)
# Close regardless of tab type
self.tabPlaylist.removeTab(index)
def create_note(self, session, text):
"""

View File

@ -50,6 +50,7 @@ class PlaylistTab(QTableWidget):
self.id = None
self.name = None
self.is_playlist = True
self.master_process = self.parent()
self.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.setAlternatingRowColors(True)