Compare commits

...

3 Commits

Author SHA1 Message Date
Keith Edmunds
243bc765f9 Clean up editing
No need to disable (and re-enable) play controls.

Fixes #191
2023-12-01 22:44:28 +00:00
Keith Edmunds
1b92b79cf0 Stop inadvertent editing of cell after cancelling search 2023-12-01 18:45:30 +00:00
Keith Edmunds
03f19dfb9c Improve loading time for long playlists
Fixes #199
2023-12-01 17:08:13 +00:00
3 changed files with 12 additions and 46 deletions

View File

@ -1222,12 +1222,6 @@ class Window(QMainWindow, Ui_MainWindow):
self.txtSearch.setText("") self.txtSearch.setText("")
self.txtSearch.setHidden(True) self.txtSearch.setHidden(True)
def search_playlist_return(self) -> None:
"""Initiate search when return pressed"""
self.active_tab().set_search(self.txtSearch.text())
self.enable_play_next_controls()
def search_playlist_text_changed(self) -> None: def search_playlist_text_changed(self) -> None:
""" """
Incremental search of playlist Incremental search of playlist

View File

@ -220,12 +220,11 @@ class PlaylistModel(QAbstractTableModel):
else: else:
return QBrush(QColor(Config.COLOUR_BITRATE_OK)) return QBrush(QColor(Config.COLOUR_BITRATE_OK))
if column == Col.NOTE.value: if column == Col.NOTE.value:
with Session() as session: if prd.note:
note_colour = NoteColours.get_colour(session, prd.note) with Session() as session:
if note_colour: note_colour = NoteColours.get_colour(session, prd.note)
return QBrush(QColor(note_colour)) if note_colour:
else: return QBrush(QColor(note_colour))
return QBrush()
return QBrush() return QBrush()

View File

@ -212,8 +212,6 @@ class PlaylistTab(QTableView):
Override closeEditor to enable play controls and update display. Override closeEditor to enable play controls and update display.
""" """
self.musicmuster.enable_play_next_controls()
self.musicmuster.actionSetNext.setEnabled(True)
self.musicmuster.action_Clear_selection.setEnabled(True) self.musicmuster.action_Clear_selection.setEnabled(True)
super(PlaylistTab, self).closeEditor(editor, hint) super(PlaylistTab, self).closeEditor(editor, hint)
@ -255,33 +253,6 @@ class PlaylistTab(QTableView):
event.accept() event.accept()
@overload
def edit(self, index: QModelIndex) -> None:
...
@overload
def edit(
self,
index: QModelIndex,
trigger: QAbstractItemView.EditTrigger,
event: Optional[QEvent]
) -> bool:
...
def edit(self, index, trigger, event):
"""
Override QAbstractItemView.edit to catch when editing starts
Editing only ever starts with a double click on a cell
"""
# 'result' will only be true on double-click
result = super().edit(index, trigger, event)
if result:
self.musicmuster.disable_play_next_controls()
return result
def mouseReleaseEvent(self, event): def mouseReleaseEvent(self, event):
""" """
Enable dragging if rows are selected Enable dragging if rows are selected
@ -460,6 +431,11 @@ class PlaylistTab(QTableView):
"""Unselect all tracks and reset drag mode""" """Unselect all tracks and reset drag mode"""
self.clearSelection() self.clearSelection()
# We want to remove the focus from any widget otherwise keyboard
# activity may edit a cell.
fw = self.musicmuster.focusWidget()
if fw:
fw.clearFocus()
self.setDragEnabled(False) self.setDragEnabled(False)
def _column_resize(self, column_number: int, _old: int, _new: int) -> None: def _column_resize(self, column_number: int, _old: int, _new: int) -> None:
@ -671,12 +647,9 @@ class PlaylistTab(QTableView):
if not header: if not header:
return return
# Set width of last column to zero as it's set to stretch # Last column is set to stretch so ignore it here
self.setColumnWidth(header.count() - 1, 0)
# Set remaining column widths from settings
with Session() as session: with Session() as session:
for column_number in range(header.count() - 1): for column_number in range(header.count() - 2):
attr_name = f"playlist_col_{column_number}_width" attr_name = f"playlist_col_{column_number}_width"
record = Settings.get_int_settings(session, attr_name) record = Settings.get_int_settings(session, attr_name)
if record.f_int is not None: if record.f_int is not None: