feat(main.py): add overwrite and new file options for enter and shift+enter keys in video editor

This commit is contained in:
2025-09-08 00:24:18 +02:00
parent 709e637e88
commit 0fb591d0b3

View File

@@ -1831,7 +1831,8 @@ class VideoEditor:
if len(self.video_files) > 1:
print(" N: Next file")
print(" n: Previous file")
print(" Enter: Save image")
print(" Enter: Save image (overwrites if '_edited_' in name)")
print(" Shift+Enter: Save image as _edited_edited")
print(" Q/ESC: Quit")
print()
else:
@@ -1862,7 +1863,8 @@ class VideoEditor:
if len(self.video_files) > 1:
print(" N: Next video")
print(" n: Previous video")
print(" Enter: Render video")
print(" Enter: Render video (overwrites if '_edited_' in name)")
print(" Shift+Enter: Render video as _edited_edited")
print(" X: Cancel render")
print(" Q/ESC: Quit")
print()
@@ -2007,11 +2009,11 @@ class VideoEditor:
if len(self.video_files) > 1:
self.next_video()
elif key == 13: # Enter
output_name = self._get_next_edited_filename(self.video_path)
output_path = str(self.video_path.parent / output_name)
# Only overwrite if file already contains "_edited_" in name
if "_edited_" in self.video_path.stem:
output_path = str(self.video_path)
# If we're overwriting the same file, use a temporary file first
if output_name == self.video_path.name:
# If we're overwriting the same file, use a temporary file first
import tempfile
temp_dir = self.video_path.parent
temp_fd, temp_path = tempfile.mkstemp(suffix=self.video_path.suffix, dir=temp_dir)
@@ -2045,8 +2047,23 @@ class VideoEditor:
if os.path.exists(temp_path):
os.remove(temp_path)
else:
# Normal case - render to new file
success = self.render_video(output_path)
print("Enter key only overwrites files with '_edited_' in the name. Use Shift+Enter to create new files.")
elif key == ord("\r"): # Shift+Enter (carriage return)
# Create _edited_edited file
directory = self.video_path.parent
base_name = self.video_path.stem
extension = self.video_path.suffix
# Create _edited_edited filename
if "_edited_" in base_name:
# If already edited, create _edited_edited
new_name = f"{base_name}_edited{extension}"
else:
# If not edited, create _edited_edited
new_name = f"{base_name}_edited_edited{extension}"
output_path = str(directory / new_name)
success = self.render_video(output_path)
elif key == ord("t"):
# Marker looping only for videos
if not self.is_image_mode: