Disable selected row timing during move_unplayed

This commit is contained in:
Keith Edmunds 2024-01-12 10:36:05 +00:00
parent 84cf22a196
commit 128fe2925f
3 changed files with 20 additions and 8 deletions

View File

@ -643,6 +643,8 @@ class PlaylistRows(Base):
number from starting_row to end of playlist
"""
log.debug(f"(move_rows_down({playlist_id=}, {starting_row=}, {move_by=}")
session.execute(
update(PlaylistRows)
.where(

View File

@ -235,6 +235,7 @@ class Window(QMainWindow, Ui_MainWindow):
self.frame_6.hide()
else:
self.carts_init()
self.disable_selection_timing = False
self.enable_play_next_controls()
self.clock_counter = 0
self.timer10.start(10)
@ -995,7 +996,11 @@ class Window(QMainWindow, Ui_MainWindow):
unplayed_rows = self.active_proxy_model().get_unplayed_rows()
if not unplayed_rows:
return
# We can get a race condition as selected rows change while
# moving so disable selected rows timing for move
self.disable_selection_timing = True
self.move_playlist_rows(unplayed_rows)
self.disable_selection_timing = False
def new_from_template(self) -> None:
"""Create new playlist from template"""
@ -1130,7 +1135,7 @@ class Window(QMainWindow, Ui_MainWindow):
volume = self.music.player.audio_get_volume()
if volume < Config.VOLUME_VLC_DEFAULT:
self.music.set_volume()
log.warn(f"Reset from {volume=}")
log.warning(f"Reset from {volume=}")
break
sleep(0.1)

View File

@ -292,15 +292,20 @@ class PlaylistTab(QTableView):
if len(selected_rows) == 0:
self.musicmuster.lblSumPlaytime.setText("")
else:
selected_duration = self.source_model.get_rows_duration(
self.get_selected_rows()
)
if selected_duration > 0:
self.musicmuster.lblSumPlaytime.setText(
f"Selected duration: {ms_to_mmss(selected_duration)}"
if not self.musicmuster.disable_selection_timing:
selected_duration = self.source_model.get_rows_duration(
self.get_selected_rows()
)
if selected_duration > 0:
self.musicmuster.lblSumPlaytime.setText(
f"Selected duration: {ms_to_mmss(selected_duration)}"
)
else:
self.musicmuster.lblSumPlaytime.setText("")
else:
self.musicmuster.lblSumPlaytime.setText("")
log.info(
f"playlists.py.selectionChanged: {self.musicmuster.disable_selection_timing=}"
)
super().selectionChanged(selected, deselected)