delete database function
This commit is contained in:
parent
26bd852a3f
commit
6ad913e5ee
36
main.py
36
main.py
@ -21,8 +21,7 @@ from PyQt5.QtWidgets import (
|
||||
from PyQt5.QtCore import QUrl, QTimer, Qt
|
||||
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent, QAudioProbe
|
||||
from PyQt5.QtGui import QCloseEvent, QPixmap
|
||||
from utils import scan_for_music
|
||||
from utils import delete_and_create_library_database
|
||||
from utils import scan_for_music, delete_and_create_library_database, initialize_db
|
||||
from components import PreferencesWindow, AudioVisualizer
|
||||
|
||||
# Create ui.py file from Qt Designer
|
||||
@ -98,10 +97,9 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
self.open_preferences
|
||||
) # Open preferences menu
|
||||
# QUICK ACTIONS MENU
|
||||
self.actionScanLibraries.triggered.connect(self.scan_libraries) # Scan library
|
||||
self.actionClearDatabase.triggered.connect(
|
||||
self.clear_database
|
||||
) # Clear database
|
||||
self.actionScanLibraries.triggered.connect(self.scan_libraries)
|
||||
self.actionDeleteLibrary.triggered.connect(self.clear_database)
|
||||
self.actionDeleteDatabase.triggered.connect(self.delete_database)
|
||||
## tableView triggers
|
||||
self.tableView.doubleClicked.connect(
|
||||
self.play_audio_file
|
||||
@ -364,6 +362,32 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
||||
delete_and_create_library_database()
|
||||
self.tableView.fetch_library()
|
||||
|
||||
def delete_database(self) -> None:
|
||||
"""Deletes the entire database"""
|
||||
reply = QMessageBox.question(
|
||||
self,
|
||||
"Confirmation",
|
||||
"Delete database?",
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.Yes,
|
||||
)
|
||||
if reply:
|
||||
initialize_db()
|
||||
self.tableView.fetch_library()
|
||||
|
||||
def reinitialize_database(self) -> None:
|
||||
"""Clears all tables in database and recreates"""
|
||||
reply = QMessageBox.question(
|
||||
self,
|
||||
"Confirmation",
|
||||
"Recreate the database?",
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.Yes,
|
||||
)
|
||||
if reply:
|
||||
initialize_db()
|
||||
self.tableView.fetch_library()
|
||||
|
||||
def process_probe(self, buff) -> None:
|
||||
buff.startTime()
|
||||
self.update_audio_visualization()
|
||||
|
||||
14
ui.py
14
ui.py
@ -154,7 +154,7 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_3.setStretch(3, 1)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 21))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 41))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuFile = QtWidgets.QMenu(self.menubar)
|
||||
self.menuFile.setObjectName("menuFile")
|
||||
@ -172,14 +172,17 @@ class Ui_MainWindow(object):
|
||||
self.actionPreferences.setObjectName("actionPreferences")
|
||||
self.actionScanLibraries = QtWidgets.QAction(MainWindow)
|
||||
self.actionScanLibraries.setObjectName("actionScanLibraries")
|
||||
self.actionClearDatabase = QtWidgets.QAction(MainWindow)
|
||||
self.actionClearDatabase.setObjectName("actionClearDatabase")
|
||||
self.actionDeleteLibrary = QtWidgets.QAction(MainWindow)
|
||||
self.actionDeleteLibrary.setObjectName("actionDeleteLibrary")
|
||||
self.actionOpenFiles = QtWidgets.QAction(MainWindow)
|
||||
self.actionOpenFiles.setObjectName("actionOpenFiles")
|
||||
self.actionDeleteDatabase = QtWidgets.QAction(MainWindow)
|
||||
self.actionDeleteDatabase.setObjectName("actionDeleteDatabase")
|
||||
self.menuFile.addAction(self.actionOpenFiles)
|
||||
self.menuEdit.addAction(self.actionPreferences)
|
||||
self.menuQuick_Actions.addAction(self.actionScanLibraries)
|
||||
self.menuQuick_Actions.addAction(self.actionClearDatabase)
|
||||
self.menuQuick_Actions.addAction(self.actionDeleteLibrary)
|
||||
self.menuQuick_Actions.addAction(self.actionDeleteDatabase)
|
||||
self.menubar.addAction(self.menuFile.menuAction())
|
||||
self.menubar.addAction(self.menuEdit.menuAction())
|
||||
self.menubar.addAction(self.menuView.menuAction())
|
||||
@ -207,7 +210,8 @@ class Ui_MainWindow(object):
|
||||
self.actionPreferences.setText(_translate("MainWindow", "Preferences"))
|
||||
self.actionPreferences.setStatusTip(_translate("MainWindow", "Open preferences"))
|
||||
self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries"))
|
||||
self.actionClearDatabase.setText(_translate("MainWindow", "Clear Database"))
|
||||
self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library"))
|
||||
self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)"))
|
||||
self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database"))
|
||||
from components import AlbumArtGraphicsView, MusicTable
|
||||
from pyqtgraph import PlotWidget
|
||||
|
||||
14
ui.ui
14
ui.ui
@ -274,7 +274,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1152</width>
|
||||
<height>21</height>
|
||||
<height>41</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuFile">
|
||||
@ -299,7 +299,8 @@
|
||||
<string>Quick-Actions</string>
|
||||
</property>
|
||||
<addaction name="actionScanLibraries"/>
|
||||
<addaction name="actionClearDatabase"/>
|
||||
<addaction name="actionDeleteLibrary"/>
|
||||
<addaction name="actionDeleteDatabase"/>
|
||||
</widget>
|
||||
<addaction name="menuFile"/>
|
||||
<addaction name="menuEdit"/>
|
||||
@ -320,9 +321,9 @@
|
||||
<string>Scan libraries</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionClearDatabase">
|
||||
<action name="actionDeleteLibrary">
|
||||
<property name="text">
|
||||
<string>Clear Database</string>
|
||||
<string>Delete Library</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionOpenFiles">
|
||||
@ -330,6 +331,11 @@
|
||||
<string>Open file(s)</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDeleteDatabase">
|
||||
<property name="text">
|
||||
<string>Delete Database</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
from .id3_timestamp_to_datetime import id3_timestamp_to_datetime
|
||||
from .initialize_db import initialize_db
|
||||
from .safe_get import safe_get
|
||||
from .get_album_art import get_album_art
|
||||
from .get_id3_tags import get_id3_tags
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
import DBA
|
||||
|
||||
|
||||
def delete_and_create_library_database():
|
||||
with open('utils/delete_and_create_library.sql', 'r') as file:
|
||||
"""Clears all songs in database"""
|
||||
with open("utils/delete_and_create_library.sql", "r") as file:
|
||||
lines = file.read()
|
||||
for statement in lines.split(';'):
|
||||
print(f'executing [{statement}]')
|
||||
for statement in lines.split(";"):
|
||||
print(f"executing [{statement}]")
|
||||
with DBA.DBAccess() as db:
|
||||
db.execute(statement, ())
|
||||
|
||||
11
utils/initialize_db.py
Normal file
11
utils/initialize_db.py
Normal file
@ -0,0 +1,11 @@
|
||||
import DBA
|
||||
|
||||
|
||||
def initialize_db():
|
||||
"""Recreates everything in the database"""
|
||||
with open("utils/init.sql", "r") as file:
|
||||
lines = file.read()
|
||||
for statement in lines.split(";"):
|
||||
print(f"executing [{statement}]")
|
||||
with DBA.DBAccess() as db:
|
||||
db.execute(statement, ())
|
||||
Loading…
x
Reference in New Issue
Block a user