fix: editor cleanup on Escape/reject + stop main audition on open
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -4297,7 +4297,7 @@ class AudioEditorDialog(QDialog):
|
||||
proc.deleteLater()
|
||||
self._btn_play.setText("▶ Play")
|
||||
|
||||
def closeEvent(self, ev) -> None:
|
||||
def _cleanup(self) -> None:
|
||||
self._stop_play()
|
||||
for _t in list(self._temps):
|
||||
try:
|
||||
@@ -4305,8 +4305,15 @@ class AudioEditorDialog(QDialog):
|
||||
except OSError:
|
||||
pass
|
||||
self._temps.clear()
|
||||
|
||||
def closeEvent(self, ev) -> None:
|
||||
self._cleanup()
|
||||
super().closeEvent(ev)
|
||||
|
||||
def reject(self) -> None:
|
||||
self._cleanup()
|
||||
super().reject()
|
||||
|
||||
def _on_save_as(self):
|
||||
path, _sel = QFileDialog.getSaveFileName(
|
||||
self, "Save edited audio", "",
|
||||
@@ -7076,6 +7083,7 @@ class MainWindow(QMainWindow):
|
||||
if not self._file_path:
|
||||
self._show_status("Load a video first", 3000)
|
||||
return
|
||||
self._stop_audition()
|
||||
import tempfile
|
||||
start = self._cursor
|
||||
dur = self._spn_audio_len.value()
|
||||
@@ -7101,6 +7109,7 @@ class MainWindow(QMainWindow):
|
||||
self._merge_temps.add(tmp) # reuse the close-time temp sweep
|
||||
dlg = AudioEditorDialog(tmp, parent=self)
|
||||
dlg.exec()
|
||||
dlg.deleteLater()
|
||||
|
||||
def _merge_move(self, delta: int) -> None:
|
||||
row = self._merge_list.currentRow()
|
||||
|
||||
@@ -749,3 +749,14 @@ def test_editor_close_cleans_temps(win, tmp_path):
|
||||
dlg.close()
|
||||
assert not t1.exists()
|
||||
assert os.path.exists(str(src)) # _versions[0] (entry temp) is NOT swept by the editor
|
||||
|
||||
|
||||
def test_editor_reject_cleans_temps(win, tmp_path):
|
||||
import main as m
|
||||
src = tmp_path / "v0.wav"; src.write_bytes(b"")
|
||||
t1 = tmp_path / "t1.wav"; t1.write_bytes(b"x")
|
||||
dlg = m.AudioEditorDialog(str(src), parent=win)
|
||||
dlg._temps.add(str(t1))
|
||||
dlg.reject() # Escape path
|
||||
assert not t1.exists() # op temp swept
|
||||
assert os.path.exists(str(src)) # entry temp (_versions[0]) survives
|
||||
|
||||
Reference in New Issue
Block a user