Don't prompt user when editing if no changes made
This commit is contained in:
parent
90f8e20843
commit
d73bdb264d
@ -77,7 +77,8 @@ class EscapeDelegate(QStyledItemDelegate):
|
||||
row = index.row()
|
||||
row_height = p.rowHeight(row)
|
||||
p.setRowHeight(row, row_height + Config.MINIMUM_ROW_HEIGHT)
|
||||
return QPlainTextEdit(parent)
|
||||
self.editor = QPlainTextEdit(parent)
|
||||
return self.editor
|
||||
return super().createEditor(parent, option, index)
|
||||
|
||||
def destroyEditor(self, editor: Optional[QWidget], index: QModelIndex) -> None:
|
||||
@ -102,6 +103,10 @@ class EscapeDelegate(QStyledItemDelegate):
|
||||
self.closeEditor.emit(editor)
|
||||
return True
|
||||
elif key_event.key() == Qt.Key.Key_Escape:
|
||||
if self.original_text == self.editor.toPlainText():
|
||||
# No changes made
|
||||
self.closeEditor.emit(editor)
|
||||
return True
|
||||
discard_edits = QMessageBox.question(
|
||||
cast(QWidget, self.parent()), "Abandon edit", "Discard changes?"
|
||||
)
|
||||
@ -117,8 +122,8 @@ class EscapeDelegate(QStyledItemDelegate):
|
||||
else:
|
||||
edit_index = index
|
||||
|
||||
value = self.data_model.data(edit_index, Qt.ItemDataRole.EditRole)
|
||||
editor.setPlainText(value.value())
|
||||
self.original_text = self.data_model.data(edit_index, Qt.ItemDataRole.EditRole)
|
||||
editor.setPlainText(self.original_text.value())
|
||||
|
||||
def setModelData(self, editor, model, index):
|
||||
model = index.model()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user