From 0d4b306fc4e565896b21d88b62eaaf71e086b4b0 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Mon, 19 Dec 2022 18:14:59 +0000 Subject: [PATCH] Don't scroll on drag and drop Fixes #152 --- app/musicmuster.py | 6 ++++-- app/playlists.py | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index f00cb08..a9eb945 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -920,7 +920,8 @@ class Window(QMainWindow, Ui_MainWindow): session.commit() # Update display - self.visible_playlist_tab().populate(session, dst_playlist_id) + self.visible_playlist_tab().populate(session, dst_playlist_id, + scroll_to_top=False) # If source playlist is not destination playlist, fixup row # numbers and update display @@ -935,7 +936,8 @@ class Window(QMainWindow, Ui_MainWindow): source_playlist_tab = self.tabPlaylist.widget(tab) break if source_playlist_tab: - source_playlist_tab.populate(session, src_playlist_id) + source_playlist_tab.populate(session, src_playlist_id, + scroll_to_top=False) # Reset so rows can't be repasted self.selected_plrs = None diff --git a/app/playlists.py b/app/playlists.py index 31570d1..b645ad1 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -771,7 +771,8 @@ class PlaylistTab(QTableWidget): self._clear_current_track_row() self.current_track_start_time = None - def populate(self, session: Session, playlist_id: int) -> None: + def populate(self, session: Session, playlist_id: int, + scroll_to_top: bool = True) -> None: """ Populate from the associated playlist ID """ @@ -788,8 +789,9 @@ class PlaylistTab(QTableWidget): self.insert_row(session, row, repaint=False) # Scroll to top - scroll_to: QTableWidgetItem = self.item(0, 0) - self.scrollToItem(scroll_to, QAbstractItemView.PositionAtTop) + if scroll_to_top: + scroll_to: QTableWidgetItem = self.item(0, 0) + self.scrollToItem(scroll_to, QAbstractItemView.PositionAtTop) # Set widths self._set_column_widths(session)