diff --git a/app/musicmuster.py b/app/musicmuster.py index 5ca6578..eb006ca 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -21,6 +21,7 @@ import helpers from config import Config from model import Settings from songdb import add_path_to_db +from playlists import Playlist from ui.main_window_ui import Ui_MainWindow @@ -28,6 +29,7 @@ class Window(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) + self.timer = QTimer() self.even_tick = True self.playing = False @@ -46,18 +48,22 @@ class Window(QMainWindow, Ui_MainWindow): height = record.f_int or 981 self.setGeometry(x, y, width, height) - self.playlist.set_column_widths() + # self.playlist.set_column_widths() # Hard code to the first playlist for now # TODO - self.playlist.load_playlist(1) - self.update_headers() - self.enable_play_next_controls() + # self.playlist = Playlist() + # self.playlist.load_playlist(1) + # self.tabPlaylist.addTab(self.playlist, "Default") - self.plLabel = QLabel(f"Playlist: {self.playlist.playlist_name}") - self.statusbar.addPermanentWidget(self.plLabel) + # self.playlist.load_playlist(1) + # self.update_headers() + # self.enable_play_next_controls() - self.timer.start(Config.TIMER_MS) + # self.plLabel = QLabel(f"Playlist: {self.playlist.playlist_name}") + # self.statusbar.addPermanentWidget(self.plLabel) + + # self.timer.start(Config.TIMER_MS) def add_file(self): dlg = QFileDialog() @@ -101,8 +107,8 @@ class Window(QMainWindow, Ui_MainWindow): def connect_signals_slots(self): self.actionAdd_file.triggered.connect(self.add_file) - self.action_Clear_selection.triggered.connect( - self.playlist.clearSelection) + # self.action_Clear_selection.triggered.connect( + # self.playlist.clearSelection) self.actionFade.triggered.connect(self.fade) self.actionNewPlaylist.triggered.connect(self.create_playlist) self.actionPlay_next.triggered.connect(self.play_next) @@ -120,7 +126,7 @@ class Window(QMainWindow, Ui_MainWindow): self.btnPrevious.clicked.connect(self.play_previous) self.btnSetNext.clicked.connect(self.set_next_track) self.btnSkipNext.clicked.connect(self.play_next) - self.btnStop.clicked.connect(self.playlist.stop) + # self.btnStop.clicked.connect(self.playlist.stop) self.spnVolume.valueChanged.connect(self.change_volume) self.timer.timeout.connect(self.tick) @@ -209,6 +215,12 @@ class Window(QMainWindow, Ui_MainWindow): import ipdb ipdb.set_trace() + self.playlist = Playlist(parent=self.tabPlaylist) + self.tabPlaylist.addTab(self.playlist, "Default") + self.playlist.load_playlist(1) + self.playlist2 = Playlist(parent=self.tabPlaylist) + self.tabPlaylist.addTab(self.playlist2, "List 2") + self.playlist2.load_playlist(2) def test_skip_to_end(self): "Skip current track to 1 second before silence" diff --git a/app/playlists.py b/app/playlists.py index f284741..dbe6cb9 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -2,6 +2,7 @@ from PyQt5 import QtCore from PyQt5.QtCore import Qt from PyQt5.Qt import QFont from PyQt5.QtGui import QColor, QDropEvent +from PyQt5 import QtWidgets from PyQt5.QtWidgets import ( QAbstractItemView, QApplication, @@ -44,6 +45,28 @@ class Playlist(QTableWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + self.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) + self.setAlternatingRowColors(True) + self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) + self.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) + self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel) + self.setRowCount(0) + self.setColumnCount(7) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(5, item) + item = QtWidgets.QTableWidgetItem() + self.setHorizontalHeaderItem(6, item) + self.horizontalHeader().setMinimumSectionSize(0) self.setDragEnabled(True) self.setAcceptDrops(True) self.viewport().setAcceptDrops(True) @@ -323,7 +346,7 @@ class Playlist(QTableWidget): p = Playlists.get_playlist_by_id(plid) self.playlist_id = plid self.playlist_name = p.name - self.parent().parent().update_statusbar() + # TODO self.parent().parent().update_statusbar() # We need to retrieve playlist tracks and playlist notes, then # add them in row order. We don't mandate that an item will be @@ -791,7 +814,7 @@ class Playlist(QTableWidget): self._set_row_bold(row) # Headers might need updating - self.parent().parent().update_headers() + # TODO self.parent().parent().update_headers() def _save_playlist(self): """ diff --git a/app/ui/main_window.ui b/app/ui/main_window.ui index 29ee290..0920e65 100644 --- a/app/ui/main_window.ui +++ b/app/ui/main_window.ui @@ -449,66 +449,19 @@ border: 1px solid rgb(85, 87, 83); - - - QAbstractItemView::NoEditTriggers + + + -1 - + + false + + + false + + true - - QAbstractItemView::ExtendedSelection - - - QAbstractItemView::SelectRows - - - QAbstractItemView::ScrollPerPixel - - - 0 - - - 7 - - - 0 - - - - Index - - - - - mss - - - - - Title - - - - - Artist - - - - - Duration - - - - - Start - - - - - Path - - @@ -840,7 +793,7 @@ border: 1px solid rgb(85, 87, 83); - icon-play.pngicon-play.png + ../../../../.designer/backup/icon-play.png../../../../.designer/backup/icon-play.png &Play next @@ -864,7 +817,7 @@ border: 1px solid rgb(85, 87, 83); - icon_search_database.pngicon_search_database.png + ../../../../.designer/backup/icon_search_database.png../../../../.designer/backup/icon_search_database.png Search &database @@ -876,7 +829,7 @@ border: 1px solid rgb(85, 87, 83); - icon_open_file.pngicon_open_file.png + ../../../../.designer/backup/icon_open_file.png../../../../.designer/backup/icon_open_file.png Add &file @@ -888,7 +841,7 @@ border: 1px solid rgb(85, 87, 83); - icon-fade.pngicon-fade.png + ../../../../.designer/backup/icon-fade.png../../../../.designer/backup/icon-fade.png F&ade @@ -959,13 +912,6 @@ border: 1px solid rgb(85, 87, 83); - - - Playlist - QTableWidget -
playlists
-
-