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.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:
"""
Incremental search of playlist

View File

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

View File

@ -212,8 +212,6 @@ class PlaylistTab(QTableView):
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)
super(PlaylistTab, self).closeEditor(editor, hint)
@ -255,33 +253,6 @@ class PlaylistTab(QTableView):
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):
"""
Enable dragging if rows are selected
@ -460,6 +431,11 @@ class PlaylistTab(QTableView):
"""Unselect all tracks and reset drag mode"""
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)
def _column_resize(self, column_number: int, _old: int, _new: int) -> None:
@ -671,12 +647,9 @@ class PlaylistTab(QTableView):
if not header:
return
# Set width of last column to zero as it's set to stretch
self.setColumnWidth(header.count() - 1, 0)
# Set remaining column widths from settings
# Last column is set to stretch so ignore it here
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"
record = Settings.get_int_settings(session, attr_name)
if record.f_int is not None: