WIP V3 wire in QSortFilterProxyModel

This commit is contained in:
Keith Edmunds 2023-11-23 18:28:10 +00:00
parent 25e3be6fae
commit 23a9eff43b
2 changed files with 20 additions and 3 deletions

View File

@ -8,6 +8,7 @@ from typing import List, Optional
from PyQt6.QtCore import (
QAbstractTableModel,
QModelIndex,
QSortFilterProxyModel,
Qt,
QVariant,
)
@ -94,6 +95,23 @@ class StartEndTimes:
end_time: Optional[datetime] = None
class PlaylistProxyModel(QSortFilterProxyModel):
"""
For searching and filtering
"""
def __init__(
self,
playlist_id: int,
*args,
**kwargs,
):
self.playlist_id = playlist_id
super().__init__(*args, **kwargs)
self.setSourceModel(PlaylistModel(playlist_id))
class PlaylistModel(QAbstractTableModel):
"""
The Playlist Model

View File

@ -55,7 +55,7 @@ from models import PlaylistRows, Settings, Tracks, NoteColours
if TYPE_CHECKING:
from musicmuster import Window
from playlistmodel import PlaylistModel
from playlistmodel import PlaylistModel, PlaylistProxyModel
# HEADER_NOTES_COLUMN = 2
@ -203,7 +203,7 @@ class PlaylistTab(QTableView):
# self.edit_cell_type: Optional[int]
# Load playlist rows
self.setModel(PlaylistModel(playlist_id))
self.setModel(PlaylistProxyModel(playlist_id))
self._set_column_widths()
def closeEditor(
@ -536,7 +536,6 @@ class PlaylistTab(QTableView):
)
# Add track to section header (ie, make this a track row)
# TODO
if header_row:
self._add_context_menu("Add a track", lambda: self._add_track())