diff --git a/app/playlists.py b/app/playlists.py index 314ff65..b2748d2 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -1,4 +1,5 @@ from PyQt5.QtCore import Qt +from PyQt5.Qt import QFont from PyQt5.QtGui import QColor, QDropEvent from PyQt5.QtWidgets import ( QTableWidget, @@ -424,6 +425,8 @@ class Playlist(QTableWidget): return False def update_playlist_colours(self): + "Set row colours, fonts, etc" + self.clearSelection() current = self.meta_get_current() next = self.meta_get_next() @@ -432,25 +435,52 @@ class Playlist(QTableWidget): for row in range(self.rowCount()): if row == current: self.set_row_colour( - row, QColor(Config.COLOUR_CURRENT_PLAYLIST)) + row, QColor(Config.COLOUR_CURRENT_PLAYLIST) + ) + self.set_row_bold(row) elif row == next: self.set_row_colour( - row, QColor(Config.COLOUR_NEXT_PLAYLIST)) + row, QColor(Config.COLOUR_NEXT_PLAYLIST) + ) + self.set_row_bold(row) elif row in notes: self.set_row_colour( - row, QColor(Config.COLOUR_NOTES_PLAYLIST)) + row, QColor(Config.COLOUR_NOTES_PLAYLIST) + ) + self.set_row_bold(row) else: if row % 2: colour = QColor(Config.COLOUR_ODD_PLAYLIST) else: colour = QColor(Config.COLOUR_EVEN_PLAYLIST) self.set_row_colour(row, colour) + if self.item(row, self.COL_INDEX): + if int(self.item(row, self.COL_INDEX).text()) > 0: + track_id = int(self.item(row, self.COL_INDEX).text()) + if track_id in self.played_tracks: + self.set_row_not_bold(row) + else: + self.set_row_bold(row) + + def set_row_bold(self, row): + bold = QFont() + bold.setBold(True) + for j in range(self.columnCount()): + if self.item(row, j): + self.item(row, j).setFont(bold) def set_row_colour(self, row, colour): for j in range(self.columnCount()): if self.item(row, j): self.item(row, j).setBackground(colour) + def set_row_not_bold(self, row): + normal = QFont() + normal.setBold(False) + for j in range(self.columnCount()): + if self.item(row, j): + self.item(row, j).setFont(normal) + class Window(QWidget): def __init__(self):