diff --git a/app/musicmuster.py b/app/musicmuster.py index 0a30f60..c6a8887 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -725,7 +725,6 @@ class Window(QMainWindow, Ui_MainWindow): playlist_tab = PlaylistTab( musicmuster=self, - session=session, playlist_id=playlist.id, signals=self.signals, ) diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 703f6bc..91b73b4 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -143,7 +143,7 @@ class PlaylistModel(QAbstractTableModel): elif role == Qt.ItemDataRole.DecorationRole: pass elif role == Qt.ItemDataRole.EditRole: - pass + return self.edit_role(row, column, prd) elif role == Qt.ItemDataRole.ToolTipRole: pass elif role == Qt.ItemDataRole.StatusTipRole: @@ -209,6 +209,20 @@ class PlaylistModel(QAbstractTableModel): return QVariant() + def edit_role(self, row: int, column: int, prd: PlaylistRowData) -> QVariant: + """ + Return text for editing + """ + + if column == Col.TITLE.value: + return QVariant(prd.title) + if column == Col.ARTIST.value: + return QVariant(prd.artist) + if column == Col.NOTE.value: + return QVariant(prd.note) + + return QVariant() + def flags(self, index: QModelIndex) -> Qt.ItemFlag: """ Standard model flags diff --git a/app/playlists_v3.py b/app/playlists_v3.py index e6cdbaf..b8ab402 100644 --- a/app/playlists_v3.py +++ b/app/playlists_v3.py @@ -94,7 +94,6 @@ class EscapeDelegate(QStyledItemDelegate): def eventFilter(self, editor: QObject, event: QEvent): """By default, QPlainTextEdit doesn't handle enter or return""" - print(">>EscapeDelegate event handler") if event.type() == QEvent.Type.KeyPress: key_event = cast(QKeyEvent, event) print(key_event) @@ -114,6 +113,19 @@ class EscapeDelegate(QStyledItemDelegate): # self.closeEditor.emit(editor) # return True return False + + def setEditorData(self, editor, index): + value = index.model().data(index, Qt.ItemDataRole.EditRole) + editor.setPlainText(value.value()) + + def setModelData(self, editor, model, index): + print("setModelData called") + value = editor.toPlainText() + model.setData(index, value, Qt.ItemDataRole.EditRole) + + def updateEditorGeometry(self, editor, option, index): + editor.setGeometry(option.rect) + # class EscapeDelegate(QStyledItemDelegate): # """ # - increases the height of a row when editing to make editing easier @@ -203,7 +215,6 @@ class PlaylistTab(QTableView): def __init__( self, musicmuster: "Window", - session: scoped_session, playlist_id: int, signals: "MusicMusterSignals", ) -> None: