Add a restart current file binding to page_splitter.
parent
b49c78706b
commit
78d4a61eb2
|
|
@ -79,11 +79,14 @@ class PDFPreviewer:
|
|||
"← / → : Move line 1cm left/right\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"
|
||||
"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.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.pack(pady=5, side=tk.TOP)
|
||||
|
||||
|
|
@ -103,6 +106,8 @@ class PDFPreviewer:
|
|||
self.master.bind("s", self.confirm_and_next_page)
|
||||
self.master.bind("r", self.discard_page)
|
||||
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
|
||||
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",
|
||||
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):
|
||||
"""Moves the split line to the left."""
|
||||
self.current_line_x = max(0, self.current_line_x - CM_TO_POINTS / 2)
|
||||
|
|
|
|||
Loading…
Reference in New Issue