Merge branch 'main' of github.com:billypom/musicpom

This commit is contained in:
billypom on debian 2024-08-03 10:45:13 -04:00
commit 58df3d8c9b
5 changed files with 66 additions and 21 deletions

View File

@ -20,7 +20,8 @@ class AddToPlaylistWindow(QDialog):
listWidget = QListWidget(self) listWidget = QListWidget(self)
for k, v in list_options: for k, v in list_options:
listWidget.addItem(f"{k} | {v}") listWidget.addItem(f"{k} | {v}")
#
# add ui elements to window
label = QLabel("Playlists") label = QLabel("Playlists")
label.setFont(QFont("Sans", weight=QFont.Bold)) label.setFont(QFont("Sans", weight=QFont.Bold))
layout.addWidget(label) layout.addWidget(label)
@ -34,14 +35,5 @@ class AddToPlaylistWindow(QDialog):
self.show() self.show()
def save(self): def save(self):
# Upcate the config fields print(self.listWidget.selectedItems())
for key in self.input_fields:
for category in self.config.sections():
if key in self.config[category]:
self.config[category][key] = self.input_fields[key].text()
# Write the config file
with open("config.ini", "w") as configfile:
self.config.write(configfile)
self.close() self.close()

View File

@ -0,0 +1,19 @@
from PyQt5.QtWidgets import QInputDialog
class CreatePlaylistWindow(QInputDialog):
def __init__(self, list_options: dict):
super(CreatePlaylistWindow, self).__init__()
self.setWindowTitle("Choose")
self.setLabelText("Enter playlist name:")
self.exec()
def done(self, result: int) -> None:
value = self.textValue()
if result:
print(value)
else:
print("NOPE")
# FIXME: dialog box doesn't close on OK or Cancel buttons pressed...
# do i have to manually implement the accept and reject when i override the done() func?
self.close()

View File

@ -5,3 +5,4 @@ from .PreferencesWindow import PreferencesWindow
from .ErrorDialog import ErrorDialog from .ErrorDialog import ErrorDialog
from .LyricsWindow import LyricsWindow from .LyricsWindow import LyricsWindow
from .AddToPlaylistWindow import AddToPlaylistWindow from .AddToPlaylistWindow import AddToPlaylistWindow
from .CreatePlaylistWindow import CreatePlaylistWindow

14
main.py
View File

@ -13,6 +13,7 @@ import DBA
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QFileDialog, QFileDialog,
QInputDialog,
QMainWindow, QMainWindow,
QApplication, QApplication,
QGraphicsScene, QGraphicsScene,
@ -29,6 +30,7 @@ from components import (
AudioVisualizer, AudioVisualizer,
AlbumArtGraphicsView, AlbumArtGraphicsView,
MusicTable, MusicTable,
CreatePlaylistWindow,
) )
@ -97,6 +99,7 @@ class MainWindow(QMainWindow):
self.nextButton.clicked.connect(self.on_next_clicked) self.nextButton.clicked.connect(self.on_next_clicked)
# FILE MENU # FILE MENU
self.actionOpenFiles.triggered.connect(self.open_files) # Open files window self.actionOpenFiles.triggered.connect(self.open_files) # Open files window
self.actionNewPlaylist.triggered.connect(self.create_playlist)
# EDIT MENU # EDIT MENU
self.actionPreferences.triggered.connect( self.actionPreferences.triggered.connect(
self.open_preferences self.open_preferences
@ -314,9 +317,12 @@ class MainWindow(QMainWindow):
self.actionDeleteLibrary.setObjectName("actionDeleteLibrary") self.actionDeleteLibrary.setObjectName("actionDeleteLibrary")
self.actionOpenFiles = QtWidgets.QAction(MainWindow) self.actionOpenFiles = QtWidgets.QAction(MainWindow)
self.actionOpenFiles.setObjectName("actionOpenFiles") self.actionOpenFiles.setObjectName("actionOpenFiles")
self.actionNewPlaylist = QtWidgets.QAction(MainWindow)
self.actionNewPlaylist.setObjectName("actionNewPlaylist")
self.actionDeleteDatabase = QtWidgets.QAction(MainWindow) self.actionDeleteDatabase = QtWidgets.QAction(MainWindow)
self.actionDeleteDatabase.setObjectName("actionDeleteDatabase") self.actionDeleteDatabase.setObjectName("actionDeleteDatabase")
self.menuFile.addAction(self.actionOpenFiles) self.menuFile.addAction(self.actionOpenFiles)
self.menuFile.addAction(self.actionNewPlaylist)
self.menuEdit.addAction(self.actionPreferences) self.menuEdit.addAction(self.actionPreferences)
self.menuQuick_Actions.addAction(self.actionScanLibraries) self.menuQuick_Actions.addAction(self.actionScanLibraries)
self.menuQuick_Actions.addAction(self.actionDeleteLibrary) self.menuQuick_Actions.addAction(self.actionDeleteLibrary)
@ -352,6 +358,7 @@ class MainWindow(QMainWindow):
self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries")) self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries"))
self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library")) self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library"))
self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)")) self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)"))
self.actionNewPlaylist.setText(_translate("MainWindow", "New playlist"))
self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database")) self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database"))
def closeEvent(self, a0: QCloseEvent | None) -> None: def closeEvent(self, a0: QCloseEvent | None) -> None:
@ -560,10 +567,15 @@ class MainWindow(QMainWindow):
open_files_window.setFileMode(QFileDialog.ExistingFiles) open_files_window.setFileMode(QFileDialog.ExistingFiles)
open_files_window.exec_() open_files_window.exec_()
filenames = open_files_window.selectedFiles() filenames = open_files_window.selectedFiles()
print("file names chosen") print("main.py open_files() | file names chosen")
print(filenames) print(filenames)
self.tableView.add_files(filenames) self.tableView.add_files(filenames)
def create_playlist(self) -> None:
"""Creates a database record for a playlist, given a name"""
create_playlist_window = CreatePlaylistWindow(self)
create_playlist_window.exec_()
def open_preferences(self) -> None: def open_preferences(self) -> None:
"""Opens the preferences window""" """Opens the preferences window"""
preferences_window = PreferencesWindow(self.config) preferences_window = PreferencesWindow(self.config)

39
ui.py
View File

@ -26,20 +26,30 @@ class Ui_MainWindow(object):
self.vlayoutAlbumArt.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) self.vlayoutAlbumArt.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
self.vlayoutAlbumArt.setObjectName("vlayoutAlbumArt") self.vlayoutAlbumArt.setObjectName("vlayoutAlbumArt")
self.albumGraphicsView = AlbumArtGraphicsView(self.centralwidget) self.albumGraphicsView = AlbumArtGraphicsView(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum
)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.albumGraphicsView.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(
self.albumGraphicsView.sizePolicy().hasHeightForWidth()
)
self.albumGraphicsView.setSizePolicy(sizePolicy) self.albumGraphicsView.setSizePolicy(sizePolicy)
self.albumGraphicsView.setMinimumSize(QtCore.QSize(200, 200)) self.albumGraphicsView.setMinimumSize(QtCore.QSize(200, 200))
self.albumGraphicsView.setMaximumSize(QtCore.QSize(16777215, 16777215)) self.albumGraphicsView.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.albumGraphicsView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.albumGraphicsView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.albumGraphicsView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.albumGraphicsView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.albumGraphicsView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.albumGraphicsView.setHorizontalScrollBarPolicy(
self.albumGraphicsView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored) QtCore.Qt.ScrollBarAlwaysOff
)
self.albumGraphicsView.setSizeAdjustPolicy(
QtWidgets.QAbstractScrollArea.AdjustIgnored
)
self.albumGraphicsView.setInteractive(False) self.albumGraphicsView.setInteractive(False)
self.albumGraphicsView.setResizeAnchor(QtWidgets.QGraphicsView.AnchorViewCenter) self.albumGraphicsView.setResizeAnchor(QtWidgets.QGraphicsView.AnchorViewCenter)
self.albumGraphicsView.setViewportUpdateMode(QtWidgets.QGraphicsView.FullViewportUpdate) self.albumGraphicsView.setViewportUpdateMode(
QtWidgets.QGraphicsView.FullViewportUpdate
)
self.albumGraphicsView.setObjectName("albumGraphicsView") self.albumGraphicsView.setObjectName("albumGraphicsView")
self.vlayoutAlbumArt.addWidget(self.albumGraphicsView) self.vlayoutAlbumArt.addWidget(self.albumGraphicsView)
self.hLayoutHead.addLayout(self.vlayoutAlbumArt) self.hLayoutHead.addLayout(self.vlayoutAlbumArt)
@ -98,7 +108,9 @@ class Ui_MainWindow(object):
self.hLayoutMusicTable = QtWidgets.QHBoxLayout() self.hLayoutMusicTable = QtWidgets.QHBoxLayout()
self.hLayoutMusicTable.setObjectName("hLayoutMusicTable") self.hLayoutMusicTable.setObjectName("hLayoutMusicTable")
self.tableView = MusicTable(self.centralwidget) self.tableView = MusicTable(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum
)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1) sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.tableView.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.tableView.sizePolicy().hasHeightForWidth())
@ -106,8 +118,13 @@ class Ui_MainWindow(object):
self.tableView.setMaximumSize(QtCore.QSize(32000, 32000)) self.tableView.setMaximumSize(QtCore.QSize(32000, 32000))
self.tableView.setAcceptDrops(True) self.tableView.setAcceptDrops(True)
self.tableView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.tableView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.tableView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) self.tableView.setSizeAdjustPolicy(
self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.AnyKeyPressed|QtWidgets.QAbstractItemView.EditKeyPressed) QtWidgets.QAbstractScrollArea.AdjustToContents
)
self.tableView.setEditTriggers(
QtWidgets.QAbstractItemView.AnyKeyPressed
| QtWidgets.QAbstractItemView.EditKeyPressed
)
self.tableView.setAlternatingRowColors(True) self.tableView.setAlternatingRowColors(True)
self.tableView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.tableView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
@ -208,10 +225,14 @@ class Ui_MainWindow(object):
self.menuView.setTitle(_translate("MainWindow", "View")) self.menuView.setTitle(_translate("MainWindow", "View"))
self.menuQuick_Actions.setTitle(_translate("MainWindow", "Quick-Actions")) self.menuQuick_Actions.setTitle(_translate("MainWindow", "Quick-Actions"))
self.actionPreferences.setText(_translate("MainWindow", "Preferences")) self.actionPreferences.setText(_translate("MainWindow", "Preferences"))
self.actionPreferences.setStatusTip(_translate("MainWindow", "Open preferences")) self.actionPreferences.setStatusTip(
_translate("MainWindow", "Open preferences")
)
self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries")) self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries"))
self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library")) self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library"))
self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)")) self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)"))
self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database")) self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database"))
from components import AlbumArtGraphicsView, MusicTable from components import AlbumArtGraphicsView, MusicTable
from pyqtgraph import PlotWidget from pyqtgraph import PlotWidget