| 12345678910111213141516171819202122232425262728293031323334 |
- from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem
- from core.repositories import TrackRepository
- class ExplorerTable(QTreeWidget):
- def __init__(self, parent):
- super(QTreeWidget, self).__init__(parent)
- def populate(self):
- track_repo = TrackRepository()
- artist_folders = {}
- album_folders = {}
- tracks = track_repo.get_all()
- for track in tracks:
- if track.artist and track.artist not in artist_folders:
- item = QTreeWidgetItem(self, [track.artist])
- artist_folders[track.artist] = item
- if track.artist and track.album and (track.artist, track.album) not in album_folders:
- item = QTreeWidgetItem(artist_folders[track.artist], [track.album])
- album_folders[(track.artist, track.album)] = item
- if track.artist and track.album:
- parent = album_folders[(track.artist, track.album)]
- elif track.artist:
- parent = artist_folders[track.artist]
- else:
- parent = self
- item = QTreeWidgetItem(parent, [track.title])
|