Make search case insensitive

This commit is contained in:
Keith Edmunds 2022-06-19 13:57:39 +01:00
parent 29860268ba
commit 8192e79d42
2 changed files with 29 additions and 6 deletions

View File

@ -82,6 +82,7 @@ class Window(QMainWindow, Ui_MainWindow):
self.txtSearch = QLineEdit() self.txtSearch = QLineEdit()
self.statusbar.addWidget(self.txtSearch) self.statusbar.addWidget(self.txtSearch)
self.txtSearch.setHidden(True) self.txtSearch.setHidden(True)
self.hide_played_tracks = False
self.visible_playlist_tab: Callable[[], PlaylistTab] = \ self.visible_playlist_tab: Callable[[], PlaylistTab] = \
self.tabPlaylist.currentWidget self.tabPlaylist.currentWidget
@ -201,6 +202,7 @@ class Window(QMainWindow, Ui_MainWindow):
# self.btnAddNote.clicked.connect(self.create_note) # self.btnAddNote.clicked.connect(self.create_note)
# self.btnDatabase.clicked.connect(self.search_database) # self.btnDatabase.clicked.connect(self.search_database)
self.btnDrop3db.clicked.connect(self.drop3db) self.btnDrop3db.clicked.connect(self.drop3db)
self.btnHidePlayed.clicked.connect(self.hide_played)
self.btnFade.clicked.connect(self.fade) self.btnFade.clicked.connect(self.fade)
# self.btnPlay.clicked.connect(self.play_next) # self.btnPlay.clicked.connect(self.play_next)
# self.btnSetNext.clicked.connect( # self.btnSetNext.clicked.connect(
@ -415,6 +417,19 @@ class Window(QMainWindow, Ui_MainWindow):
self.stop_playing(fade=True) self.stop_playing(fade=True)
def hide_played(self):
"""Toggle hide played tracks"""
if self.hide_played_tracks:
self.hide_played_tracks = False
self.btnHidePlayed.setText("Hide played")
else:
self.hide_played_tracks = True
self.btnHidePlayed.setText("Show played")
if self.current_track_playlist_tab:
with Session() as session:
self.current_track_playlist_tab.update_display(session)
def import_track(self) -> None: def import_track(self) -> None:
"""Import track file""" """Import track file"""

View File

@ -742,6 +742,11 @@ class PlaylistTab(QTableWidget):
played: Optional[List[int]] = self._get_played_track_rows() played: Optional[List[int]] = self._get_played_track_rows()
unreadable: List[int] = self._get_unreadable_track_rows() unreadable: List[int] = self._get_unreadable_track_rows()
if self.row_filter:
filter_text = self.row_filter.lower()
else:
filter_text = None
hide_played = self.musicmuster.hide_played_tracks
last_played_str: str last_played_str: str
last_playedtime: Optional[datetime] last_playedtime: Optional[datetime]
next_start_time: Optional[datetime] = None next_start_time: Optional[datetime] = None
@ -769,8 +774,8 @@ class PlaylistTab(QTableWidget):
if row in notes: if row in notes:
# Extract note text from database to ignore section timings # Extract note text from database to ignore section timings
note_text = self._get_row_notes_object(row, session).note note_text = self._get_row_notes_object(row, session).note
if self.row_filter: if filter_text:
if self.row_filter not in note_text: if filter_text not in note_text.lower():
self.hideRow(row) self.hideRow(row)
continue continue
else: else:
@ -816,12 +821,12 @@ class PlaylistTab(QTableWidget):
if section_start_row is not None: if section_start_row is not None:
section_time += track.duration section_time += track.duration
# Render current track # Render current track
if self.row_filter: if filter_text:
try: try:
if (track.title if (track.title
and self.row_filter not in track.title and filter_text not in track.title.lower()
and track.artist and track.artist
and self.row_filter not in track.artist): and filter_text not in track.artist.lower()):
self.hideRow(row) self.hideRow(row)
continue continue
else: else:
@ -889,7 +894,10 @@ class PlaylistTab(QTableWidget):
last_played_str = get_relative_date(last_playedtime) last_played_str = get_relative_date(last_playedtime)
self.item(row, self.COL_LAST_PLAYED).setText( self.item(row, self.COL_LAST_PLAYED).setText(
last_played_str) last_played_str)
self._set_row_not_bold(row) if hide_played:
self.hideRow(row)
else:
self._set_row_not_bold(row)
else: else:
# Set start/end times as we haven't played it yet # Set start/end times as we haven't played it yet
if next_start_time: if next_start_time: