#!/usr/bin/python3 from PyQt6.QtCore import Qt from PyQt6.QtGui import QFont, QIcon, QPalette from PyQt6.QtWidgets import QTreeWidgetItem class TrackItem(QTreeWidgetItem): normal_font = QFont() bold_font = QFont() bold_font.setBold(True) playing_mark = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart) def __init__(self, track, index, parent=None): super().__init__(parent) self.track = track self.index_user_sort = index self.index = index self.playlist = parent.playlist palette = parent.palette() self.highlight_color = palette.color(QPalette.ColorRole.Highlight) self.base_color = palette.color(QPalette.ColorRole.Base) track.items.append(self) track.set_occurrences() self.setFlags( Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsDragEnabled ) self.setText(0, str(self.index + 1)) self.setText(1, track.tags.title) self.setText(2, track.tags.artist) self.setText(3, track.tags.album) self.setText(4, str(self.index_user_sort + 1)) def mark(self): self.setIcon(0, self.playing_mark) self.setFont(1, self.bold_font) self.setFont(2, self.bold_font) self.setFont(3, self.normal_font) def unmark(self): self.setIcon(0, QIcon(None)) self.setFont(1, self.normal_font) self.setFont(2, self.normal_font) self.setFont(3, self.normal_font)