diff --git a/qt/aqt/editcurrent.py b/qt/aqt/editcurrent.py index 71fc32992..055a3aef5 100644 --- a/qt/aqt/editcurrent.py +++ b/qt/aqt/editcurrent.py @@ -7,18 +7,16 @@ from anki.collection import OpChanges from anki.errors import NotFoundError from aqt import gui_hooks from aqt.qt import * -from aqt.utils import disable_help_button, restoreGeom, saveGeom, tr +from aqt.utils import restoreGeom, saveGeom, tr -class EditCurrent(QDialog): +class EditCurrent(QMainWindow): def __init__(self, mw: aqt.AnkiQt) -> None: - QDialog.__init__(self, None, Qt.WindowType.Window) - mw.garbage_collect_on_dialog_finish(self) + super().__init__(None, Qt.WindowType.Window) self.mw = mw self.form = aqt.forms.editcurrent.Ui_Dialog() self.form.setupUi(self) self.setWindowTitle(tr.editing_edit_current()) - disable_help_button(self) self.setMinimumHeight(400) self.setMinimumWidth(250) self.editor = aqt.editor.Editor( @@ -46,30 +44,29 @@ class EditCurrent(QDialog): note.load() except NotFoundError: # note's been deleted - self.cleanup_and_close() + self.cleanup() + self.close() return self.editor.set_note(note) - def cleanup_and_close(self) -> None: + def cleanup(self) -> None: gui_hooks.operation_did_execute.remove(self.on_operation_did_execute) self.editor.cleanup() saveGeom(self, "editcurrent") aqt.dialogs.markClosed("EditCurrent") - QDialog.reject(self) def reopen(self, mw: aqt.AnkiQt) -> None: if card := self.mw.reviewer.card: self.editor.set_note(card.note()) - def reject(self) -> None: - self.saveAndClose() - - def saveAndClose(self) -> None: - self.editor.call_after_note_saved(self._saveAndClose) + def closeEvent(self, evt: QCloseEvent) -> None: + self.editor.call_after_note_saved(self.cleanup) def _saveAndClose(self) -> None: - self.cleanup_and_close() + self.cleanup() + self.mw.deferred_delete_and_garbage_collect(self) + self.close() def closeWithCallback(self, onsuccess: Callable[[], None]) -> None: def callback() -> None: diff --git a/qt/aqt/forms/editcurrent.ui b/qt/aqt/forms/editcurrent.ui index d65a3da6a..aab566a7a 100644 --- a/qt/aqt/forms/editcurrent.ui +++ b/qt/aqt/forms/editcurrent.ui @@ -1,7 +1,7 @@ Dialog - + 0 @@ -17,53 +17,49 @@ :/icons/anki.png:/icons/anki.png - - - 3 - - - 12 - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Close - - - - + + + + 3 + + + 12 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + 0 + 0 + 750 + 22 + + + - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - buttonBox rejected() Dialog - reject() + close() 316