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 = index.row()
|
||||||
row_height = p.rowHeight(row)
|
row_height = p.rowHeight(row)
|
||||||
p.setRowHeight(row, row_height + Config.MINIMUM_ROW_HEIGHT)
|
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)
|
return super().createEditor(parent, option, index)
|
||||||
|
|
||||||
def destroyEditor(self, editor: Optional[QWidget], index: QModelIndex) -> None:
|
def destroyEditor(self, editor: Optional[QWidget], index: QModelIndex) -> None:
|
||||||
@ -102,6 +103,10 @@ class EscapeDelegate(QStyledItemDelegate):
|
|||||||
self.closeEditor.emit(editor)
|
self.closeEditor.emit(editor)
|
||||||
return True
|
return True
|
||||||
elif key_event.key() == Qt.Key.Key_Escape:
|
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(
|
discard_edits = QMessageBox.question(
|
||||||
cast(QWidget, self.parent()), "Abandon edit", "Discard changes?"
|
cast(QWidget, self.parent()), "Abandon edit", "Discard changes?"
|
||||||
)
|
)
|
||||||
@ -117,8 +122,8 @@ class EscapeDelegate(QStyledItemDelegate):
|
|||||||
else:
|
else:
|
||||||
edit_index = index
|
edit_index = index
|
||||||
|
|
||||||
value = self.data_model.data(edit_index, Qt.ItemDataRole.EditRole)
|
self.original_text = self.data_model.data(edit_index, Qt.ItemDataRole.EditRole)
|
||||||
editor.setPlainText(value.value())
|
editor.setPlainText(self.original_text.value())
|
||||||
|
|
||||||
def setModelData(self, editor, model, index):
|
def setModelData(self, editor, model, index):
|
||||||
model = index.model()
|
model = index.model()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user