Facility to add notes when inserting tracks
This commit is contained in:
parent
11090b57ad
commit
2d62fb993f
@ -1080,6 +1080,10 @@ class DbDialog(QDialog):
|
||||
self.ui.searchString.textEdited.connect(self.chars_typed)
|
||||
self.ui.track = None
|
||||
|
||||
if get_one_track:
|
||||
self.ui.txtNote.hide()
|
||||
self.ui.lblNote.hide()
|
||||
|
||||
record = Settings.get_int_settings(self.session, "dbdialog_width")
|
||||
width = record.f_int or 800
|
||||
record = Settings.get_int_settings(self.session, "dbdialog_height")
|
||||
@ -1100,11 +1104,14 @@ class DbDialog(QDialog):
|
||||
def add_selected(self) -> None:
|
||||
"""Handle Add button"""
|
||||
|
||||
if not self.ui.matchList.selectedItems():
|
||||
if (not self.ui.matchList.selectedItems() and
|
||||
not self.ui.txtNote.text()):
|
||||
return
|
||||
|
||||
track = None
|
||||
item = self.ui.matchList.currentItem()
|
||||
track = item.data(Qt.UserRole)
|
||||
if item:
|
||||
track = item.data(Qt.UserRole)
|
||||
self.add_track(track)
|
||||
|
||||
def add_selected_and_close(self) -> None:
|
||||
@ -1121,10 +1128,13 @@ class DbDialog(QDialog):
|
||||
self.accept()
|
||||
return
|
||||
|
||||
self.parent().visible_playlist_tab().insert_track(self.session, track)
|
||||
self.parent().visible_playlist_tab().insert_track(
|
||||
self.session, track, note=self.ui.txtNote.text())
|
||||
# Commit session to get correct row numbers if more tracks added
|
||||
self.session.commit()
|
||||
# Select search text to make it easier for next search
|
||||
# Clear note field and select search text to make it easier for
|
||||
# next search
|
||||
self.ui.txtNote.clear()
|
||||
self.select_searchtext()
|
||||
|
||||
def chars_typed(self, s: str) -> None:
|
||||
|
||||
@ -680,8 +680,8 @@ class PlaylistTab(QTableWidget):
|
||||
self.save_playlist(session)
|
||||
self.update_display(session, clear_selection=False)
|
||||
|
||||
def insert_track(self, session: Session, track: Tracks,
|
||||
repaint: bool = True) -> None:
|
||||
def insert_track(self, session: Session, track: Optional[Tracks],
|
||||
note: str = None, repaint: bool = True) -> None:
|
||||
"""
|
||||
Insert track into playlist tab.
|
||||
|
||||
@ -696,7 +696,12 @@ class PlaylistTab(QTableWidget):
|
||||
# can be reset by calling PlaylistRows.fixup_rownumbers() later,
|
||||
# so just fudge a row number for now.
|
||||
row_number = 0
|
||||
plr = PlaylistRows(session, self.playlist_id, track.id, row_number)
|
||||
if track:
|
||||
track_id = track.id
|
||||
else:
|
||||
track_id = None
|
||||
plr = PlaylistRows(session, self.playlist_id,
|
||||
track_id, row_number, note)
|
||||
self.insert_row(session, plr)
|
||||
PlaylistRows.fixup_rownumbers(session, self.playlist_id)
|
||||
if repaint:
|
||||
|
||||
@ -13,8 +13,8 @@
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
@ -28,10 +28,42 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item>
|
||||
<widget class="QListWidget" name="matchList"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="lblNote">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>46</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Note:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>txtNote</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtNote"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioTitle">
|
||||
@ -89,8 +121,14 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item>
|
||||
<widget class="QLabel" name="dbPath">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'ui/dlg_SearchDatabase.ui'
|
||||
# Form implementation generated from reading ui file 'app/ui/dlg_SearchDatabase.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.4
|
||||
# Created by: PyQt5 UI code generator 5.15.6
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
@ -15,8 +15,8 @@ class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(584, 377)
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(Dialog)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.gridLayout = QtWidgets.QGridLayout()
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.label = QtWidgets.QLabel(Dialog)
|
||||
@ -25,10 +25,26 @@ class Ui_Dialog(object):
|
||||
self.searchString = QtWidgets.QLineEdit(Dialog)
|
||||
self.searchString.setObjectName("searchString")
|
||||
self.gridLayout.addWidget(self.searchString, 0, 1, 1, 1)
|
||||
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
|
||||
self.verticalLayout.addLayout(self.gridLayout)
|
||||
self.matchList = QtWidgets.QListWidget(Dialog)
|
||||
self.matchList.setObjectName("matchList")
|
||||
self.gridLayout_2.addWidget(self.matchList, 1, 0, 1, 1)
|
||||
self.verticalLayout.addWidget(self.matchList)
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.lblNote = QtWidgets.QLabel(Dialog)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lblNote.sizePolicy().hasHeightForWidth())
|
||||
self.lblNote.setSizePolicy(sizePolicy)
|
||||
self.lblNote.setMaximumSize(QtCore.QSize(46, 16777215))
|
||||
self.lblNote.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||
self.lblNote.setObjectName("lblNote")
|
||||
self.horizontalLayout_2.addWidget(self.lblNote)
|
||||
self.txtNote = QtWidgets.QLineEdit(Dialog)
|
||||
self.txtNote.setObjectName("txtNote")
|
||||
self.horizontalLayout_2.addWidget(self.txtNote)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_2)
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.radioTitle = QtWidgets.QRadioButton(Dialog)
|
||||
@ -50,11 +66,17 @@ class Ui_Dialog(object):
|
||||
self.btnClose = QtWidgets.QPushButton(Dialog)
|
||||
self.btnClose.setObjectName("btnClose")
|
||||
self.horizontalLayout.addWidget(self.btnClose)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout, 2, 0, 1, 1)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout)
|
||||
self.dbPath = QtWidgets.QLabel(Dialog)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.dbPath.sizePolicy().hasHeightForWidth())
|
||||
self.dbPath.setSizePolicy(sizePolicy)
|
||||
self.dbPath.setText("")
|
||||
self.dbPath.setObjectName("dbPath")
|
||||
self.gridLayout_2.addWidget(self.dbPath, 3, 0, 1, 1)
|
||||
self.verticalLayout.addWidget(self.dbPath)
|
||||
self.lblNote.setBuddy(self.txtNote)
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
||||
@ -63,6 +85,7 @@ class Ui_Dialog(object):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
||||
self.label.setText(_translate("Dialog", "Title:"))
|
||||
self.lblNote.setText(_translate("Dialog", "&Note:"))
|
||||
self.radioTitle.setText(_translate("Dialog", "&Title"))
|
||||
self.radioArtist.setText(_translate("Dialog", "&Artist"))
|
||||
self.btnAdd.setText(_translate("Dialog", "&Add"))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user