Add a restart current file binding to page_splitter.

master
Sébastien Miquel 2026-01-18 15:07:31 +01:00
parent b49c78706b
commit 78d4a61eb2
1 changed files with 31 additions and 1 deletions

View File

@ -79,11 +79,14 @@ class PDFPreviewer:
"← / → : Move line 1cm left/right\n" "← / → : Move line 1cm left/right\n"
"'c': Rotate page 180°, 'C' : rotate all pages, ',' : rotate all files\n" "'c': Rotate page 180°, 'C' : rotate all pages, ',' : rotate all files\n"
"t s r n: keep left, next page, keep none, keep right\n" "t s r n: keep left, next page, keep none, keep right\n"
"z: send this page to the end\n" "z: send this page to the end, 'R':restart file\n"
) )
self.info_label = tk.Label(master, text=instructions, justify=tk.LEFT) self.info_label = tk.Label(master, text=instructions, justify=tk.LEFT)
self.info_label.pack(pady=5, side=tk.TOP) self.info_label.pack(pady=5, side=tk.TOP)
# self.restart_btn = tk.Button(master, text="Restart File (R)", command=self.restart_current_file)
# self.restart_btn.pack(pady=2, side=tk.TOP)
self.page_label = tk.Label(master, text="", font=("Helvetica", 12)) self.page_label = tk.Label(master, text="", font=("Helvetica", 12))
self.page_label.pack(pady=5, side=tk.TOP) self.page_label.pack(pady=5, side=tk.TOP)
@ -103,6 +106,8 @@ class PDFPreviewer:
self.master.bind("s", self.confirm_and_next_page) self.master.bind("s", self.confirm_and_next_page)
self.master.bind("r", self.discard_page) self.master.bind("r", self.discard_page)
self.master.bind("z", self.send_page_end) self.master.bind("z", self.send_page_end)
self.master.bind("R", self.restart_current_file) # New binding
# Bind the resize event on the canvas # Bind the resize event on the canvas
self.canvas.bind("<Configure>", self.on_resize) self.canvas.bind("<Configure>", self.on_resize)
@ -174,6 +179,31 @@ class PDFPreviewer:
self.canvas.create_image(canvas_width / 2, canvas_height / 2, anchor="center", self.canvas.create_image(canvas_width / 2, canvas_height / 2, anchor="center",
image=self.photo_img) image=self.photo_img)
def restart_current_file(self, event=None):
"""Restarts the processing of the current file."""
# Close the modified in-memory document
if hasattr(self, 'doc'):
self.doc.close()
# Re-open the file from disk to reset changes (like moved pages)
try:
self.doc = fitz.open(self.pdf_path)
except Exception as e:
messagebox.showerror("Error", f"Failed to reopen PDF file: {e}")
self.master.destroy()
return
# Reset state variables for the current file
self.file_rotation = 0
self.current_page_index = 0
self.page_settings = []
self.processing = False
# Reload UI
self._initialize_current_page_settings()
self.load_page()
def move_line_left(self, event=None): def move_line_left(self, event=None):
"""Moves the split line to the left.""" """Moves the split line to the left."""
self.current_line_x = max(0, self.current_line_x - CM_TO_POINTS / 2) self.current_line_x = max(0, self.current_line_x - CM_TO_POINTS / 2)