From 8192e79d426d0e006a106dc5bff87e8723f2f5ac Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 19 Jun 2022 13:57:39 +0100 Subject: [PATCH] Make search case insensitive --- app/musicmuster.py | 15 +++++++++++++++ app/playlists.py | 20 ++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index abd4f4e..56e5dd4 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -82,6 +82,7 @@ class Window(QMainWindow, Ui_MainWindow): self.txtSearch = QLineEdit() self.statusbar.addWidget(self.txtSearch) self.txtSearch.setHidden(True) + self.hide_played_tracks = False self.visible_playlist_tab: Callable[[], PlaylistTab] = \ self.tabPlaylist.currentWidget @@ -201,6 +202,7 @@ class Window(QMainWindow, Ui_MainWindow): # self.btnAddNote.clicked.connect(self.create_note) # self.btnDatabase.clicked.connect(self.search_database) self.btnDrop3db.clicked.connect(self.drop3db) + self.btnHidePlayed.clicked.connect(self.hide_played) self.btnFade.clicked.connect(self.fade) # self.btnPlay.clicked.connect(self.play_next) # self.btnSetNext.clicked.connect( @@ -415,6 +417,19 @@ class Window(QMainWindow, Ui_MainWindow): 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: """Import track file""" diff --git a/app/playlists.py b/app/playlists.py index 9961332..7a4c557 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -742,6 +742,11 @@ class PlaylistTab(QTableWidget): played: Optional[List[int]] = self._get_played_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_playedtime: Optional[datetime] next_start_time: Optional[datetime] = None @@ -769,8 +774,8 @@ class PlaylistTab(QTableWidget): if row in notes: # Extract note text from database to ignore section timings note_text = self._get_row_notes_object(row, session).note - if self.row_filter: - if self.row_filter not in note_text: + if filter_text: + if filter_text not in note_text.lower(): self.hideRow(row) continue else: @@ -816,12 +821,12 @@ class PlaylistTab(QTableWidget): if section_start_row is not None: section_time += track.duration # Render current track - if self.row_filter: + if filter_text: try: if (track.title - and self.row_filter not in track.title + and filter_text not in track.title.lower() and track.artist - and self.row_filter not in track.artist): + and filter_text not in track.artist.lower()): self.hideRow(row) continue else: @@ -889,7 +894,10 @@ class PlaylistTab(QTableWidget): last_played_str = get_relative_date(last_playedtime) self.item(row, self.COL_LAST_PLAYED).setText( last_played_str) - self._set_row_not_bold(row) + if hide_played: + self.hideRow(row) + else: + self._set_row_not_bold(row) else: # Set start/end times as we haven't played it yet if next_start_time: