diff --git a/components/MusicTable.py b/components/MusicTable.py
index 5147fb3..cbb0d05 100644
--- a/components/MusicTable.py
+++ b/components/MusicTable.py
@@ -1,6 +1,6 @@
from mutagen.easyid3 import EasyID3
import DBA
-from PyQt5.QtGui import QStandardItem, QStandardItemModel, QKeySequence
+from PyQt5.QtGui import QStandardItem, QStandardItemModel, QKeySequence, QDragEnterEvent, QDropEvent
from PyQt5.QtWidgets import QTableView, QShortcut, QMessageBox, QAbstractItemView
from PyQt5.QtCore import QModelIndex, Qt, pyqtSignal, QTimer
from utils import add_files_to_library
@@ -42,6 +42,32 @@ class MusicTable(QTableView):
self.model.layoutChanged.connect(self.restore_scroll_position)
+ def dragEnterEvent(self, event: QDragEnterEvent):
+ if event.mimeData().hasUrls():
+ event.accept()
+ else:
+ event.ignore()
+
+
+ def dragMoveEvent(self, event: QDragEnterEvent):
+ if event.mimeData().hasUrls():
+ event.accept()
+ else:
+ event.ignore()
+
+
+ def dropEvent(self, event: QDropEvent):
+ if event.mimeData().hasUrls():
+ files = []
+ for url in event.mimeData().urls():
+ if url.isLocalFile():
+ files.append(url.path())
+ self.add_files(files)
+ event.accept()
+ else:
+ event.ignore()
+
+
def setup_keyboard_shortcuts(self):
"""Setup shortcuts here"""
shortcut = QShortcut(QKeySequence("Ctrl+Shift+R"), self)
diff --git a/main.py b/main.py
index 100e92d..01d198d 100644
--- a/main.py
+++ b/main.py
@@ -86,23 +86,6 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableView.horizontalHeader().setStretchLastSection(False)
- def eventFilter(self, source, event):
- """Handles events"""
- # tableView (drag & drop)
- if (source is self.tableView.viewport() and
- (event.type() == QEvent.DragEnter or
- event.type() == QEvent.DragMove or
- event.type() == QEvent.Drop) and
- event.mimeData().hasUrls()):
- files = []
- if event.type() == QEvent.Drop:
- for url in event.mimeData().urls():
- if url.isLocalFile():
- files.append(url.path())
- self.tableView.add_files(files)
- event.accept()
- return True
- return super().eventFilter(source, event)
def closeEvent(self, event):
"""Save settings when closing the application"""
@@ -142,7 +125,7 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
self.load_album_art(self.current_song_album_art)
def load_album_art(self, album_art_data):
- """Sets the album art for the currently playing track"""
+ """Displays the album art for the currently playing track in the GraphicsView"""
if self.current_song_album_art:
# Clear the scene
self.album_art_scene.clear()
diff --git a/ui.ui b/ui.ui
index 4330b2a..2c70a72 100644
--- a/ui.ui
+++ b/ui.ui
@@ -271,7 +271,7 @@
0
0
1152
- 24
+ 41