Merge branch 'main' of github.com:billypom/musicpom
This commit is contained in:
commit
58df3d8c9b
@ -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()
|
||||||
|
|||||||
19
components/CreatePlaylistWindow.py
Normal file
19
components/CreatePlaylistWindow.py
Normal 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()
|
||||||
@ -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
14
main.py
@ -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
39
ui.py
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user