Fix up remove track from playlist

This commit is contained in:
Keith Edmunds 2022-03-09 21:40:47 +00:00
parent 2b02c1b5b4
commit f0b9ab4256
3 changed files with 34 additions and 3 deletions

View File

@ -357,7 +357,6 @@ class Playlists(Base):
PlaylistTracks.playlist_id == self.id,
PlaylistTracks.row == row
).delete()
session.commit()
class PlaylistTracks(Base):

View File

@ -975,12 +975,13 @@ class PlaylistTab(QTableWidget):
# delete in reverse row order so row numbers don't
# change
playlist = Playlists.get_by_id(session, self.playlist_id)
for row in sorted(rows_to_delete, reverse=True):
if row in note_rows:
note: Notes = self._get_row_notes_object(row, session)
note.delete_note(session)
else:
self.remove_track(session, row)
playlist.remove_track(session, row)
self.removeRow(row)
self.save_playlist(session)

View File

@ -168,7 +168,7 @@ def test_clear_next(qtbot, session):
def test_get_selected_row(qtbot, session):
# Create playlist
playlist = Playlists(session, "my playlist")
playlist = Playlists(session, "test playlist")
playlist_tab = PlaylistTab(None, session, playlist.id)
# Add some tracks
@ -189,3 +189,34 @@ def test_get_selected_row(qtbot, session):
qtbot.mouseClick(
playlist_tab.viewport(), Qt.LeftButton, pos=rect.center()
)
def test_set_next(qtbot, session):
# Create testing playlist
playlist = Playlists(session, "test playlist")
playlist_tab = PlaylistTab(None, session, playlist.id)
# Add some tracks
track1_path = "testdata/isa.mp3"
track1 = Tracks(session, track1_path)
playlist_tab.insert_track(session, track1)
track2_path = "mom.mp3"
track2 = Tracks(session, track2_path)
playlist_tab.insert_track(session, track2)
window = Window()
qtbot.addWidget(playlist_tab)
with qtbot.waitExposed(window):
window.show()
row0_item2 = playlist_tab.item(0, 2)
assert row0_item2 is not None
rect = playlist_tab.visualItemRect(row0_item2)
qtbot.mouseClick(
playlist_tab.viewport(), Qt.LeftButton, pos=rect.center()
)
qtbot.wait(10000)
qtbot.keyPress(playlist_tab.viewport(), "N",
modifier=Qt.ControlModifier)
qtbot.wait(2000)
pass