Can add to playlist from db
This commit is contained in:
parent
a6b089a5ae
commit
87bd9577fd
28
app.py
28
app.py
@ -12,7 +12,7 @@ from tinytag import TinyTag
|
|||||||
from main_window_ui import Ui_MainWindow
|
from main_window_ui import Ui_MainWindow
|
||||||
from dlg_search_database_ui import Ui_Dialog
|
from dlg_search_database_ui import Ui_Dialog
|
||||||
|
|
||||||
from songdb import Tracks
|
from model import Tracks
|
||||||
|
|
||||||
|
|
||||||
class RepeatedTimer:
|
class RepeatedTimer:
|
||||||
@ -163,14 +163,6 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
def connectSignalsSlots(self):
|
def connectSignalsSlots(self):
|
||||||
self.fileButton.clicked.connect(self.selectFile)
|
self.fileButton.clicked.connect(self.selectFile)
|
||||||
self.databaseButton.clicked.connect(self.selectDatabase)
|
self.databaseButton.clicked.connect(self.selectDatabase)
|
||||||
# import ipdb; ipdb.set_trace()
|
|
||||||
# self.playlist.columnResized.connect(self.playlistresize)
|
|
||||||
# self.playlist.horizontalHeader().sectionResized.connect(self.kae)
|
|
||||||
# import ipdb; ipdb.set_trace()
|
|
||||||
# self.playlist.viewport().installEventFilter(self)
|
|
||||||
# self.playlist.horizontalHeader().sectionClicked.connect(self.kae2)
|
|
||||||
# x = self.playlist.horizontalHeader()
|
|
||||||
# import ipdb; ipdb.set_trace()
|
|
||||||
|
|
||||||
def selectDatabase(self):
|
def selectDatabase(self):
|
||||||
dlg = DbDialog(self)
|
dlg = DbDialog(self)
|
||||||
@ -189,17 +181,23 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.add_to_playlist(track)
|
self.add_to_playlist(track)
|
||||||
|
|
||||||
def add_to_playlist(self, track):
|
def add_to_playlist(self, track):
|
||||||
|
"""
|
||||||
|
Add track to playlist
|
||||||
|
|
||||||
|
track is an instance of Track
|
||||||
|
"""
|
||||||
|
|
||||||
pl = self.playlist
|
pl = self.playlist
|
||||||
row = pl.rowCount()
|
row = pl.rowCount()
|
||||||
pl.insertRow(row)
|
pl.insertRow(row)
|
||||||
item = QTableWidgetItem(track.title)
|
item = QTableWidgetItem(track.title)
|
||||||
pl.setItem(row, 1, item)
|
|
||||||
item = QTableWidgetItem(track.artist)
|
|
||||||
pl.setItem(row, 2, item)
|
pl.setItem(row, 2, item)
|
||||||
item = QTableWidgetItem(self.ms_to_mmss(track.length))
|
item = QTableWidgetItem(track.artist)
|
||||||
pl.setItem(row, 3, item)
|
pl.setItem(row, 3, item)
|
||||||
|
item = QTableWidgetItem(self.ms_to_mmss(track.length))
|
||||||
|
pl.setItem(row, 4, item)
|
||||||
item = QTableWidgetItem(track.path)
|
item = QTableWidgetItem(track.path)
|
||||||
pl.setItem(row, 6, item)
|
pl.setItem(row, 7, item)
|
||||||
|
|
||||||
|
|
||||||
class DbDialog(QDialog):
|
class DbDialog(QDialog):
|
||||||
@ -222,7 +220,9 @@ class DbDialog(QDialog):
|
|||||||
self.ui.listWidget.addItem(t)
|
self.ui.listWidget.addItem(t)
|
||||||
|
|
||||||
def listdclick(self, entry):
|
def listdclick(self, entry):
|
||||||
print(f"clicked entry id={entry.data(Qt.UserRole)}")
|
track_id = entry.data(Qt.UserRole)
|
||||||
|
track = Tracks.track_from_id(track_id)
|
||||||
|
self.parent().add_to_playlist(track)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
5
model.py
5
model.py
@ -68,3 +68,8 @@ class Tracks(Base):
|
|||||||
return session.query(Tracks).filter(
|
return session.query(Tracks).filter(
|
||||||
Tracks.title.ilike(f"%{text}%")
|
Tracks.title.ilike(f"%{text}%")
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def track_from_id(id):
|
||||||
|
return session.query(Tracks).filter(
|
||||||
|
Tracks.id == id).one()
|
||||||
|
|||||||
@ -208,7 +208,7 @@ border: 1px solid rgb(85, 87, 83);</string>
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="selectionMode">
|
<property name="selectionMode">
|
||||||
<enum>QAbstractItemView::ContiguousSelection</enum>
|
<enum>QAbstractItemView::SingleSelection</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="selectionBehavior">
|
<property name="selectionBehavior">
|
||||||
<enum>QAbstractItemView::SelectRows</enum>
|
<enum>QAbstractItemView::SelectRows</enum>
|
||||||
@ -294,7 +294,6 @@ border: 1px solid rgb(85, 87, 83);</string>
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
<zorder>layoutWidget</zorder>
|
|
||||||
<zorder>playlist</zorder>
|
<zorder>playlist</zorder>
|
||||||
<zorder>current_time</zorder>
|
<zorder>current_time</zorder>
|
||||||
<zorder>fileButton</zorder>
|
<zorder>fileButton</zorder>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user