New file : config.py (for models)

This commit is contained in:
2026-08-07 20:55:49 +02:00
parent 09befe1d55
commit 9d7a4f37b6
7 changed files with 126 additions and 43 deletions
+50 -22
View File
@@ -10,6 +10,9 @@ import shutil
import subprocess
from pypdf import PdfReader, PdfWriter
from config import PAGE_SPLITTER_KB
# --- Constants ---
# Conversion factor: 1 cm to points (1 inch = 2.54 cm, 72 points = 1 inch)
CM_TO_POINTS = (1 / 2.54) * 72
@@ -98,18 +101,21 @@ class PDFPreviewer:
# Set a reasonable initial size for the window
self.master.geometry("800x1000")
def fmt(action):
k = PAGE_SPLITTER_KB.get(action, "")
return k
# Dynamic instructions text
instructions = (
"← / → : Move line 1cm left/right\n"
"'c': Rotate page 180°, 'C' : rotate all pages, ',' : rotate all files\n"
"t s r n m: keep left, next page, keep none, keep right, keep as is\n"
"z: send this page to the end, 'A':pdf arranger 'R':restart file, 'P':back to previous file\n"
f"{fmt('move_left')} / {fmt('move_right')} : Move line 1cm left/right\n"
f"'{fmt('rotate_page')}': Rotate page 180°, '{fmt('rotate_all_pages')}' : rotate all pages, '{fmt('rotate_all_files')}' : rotate all files\n"
f"{fmt('keep_left')} {fmt('next_page')} {fmt('discard_page')} {fmt('keep_right')} {fmt('keep_as_is')}: keep left, next page, keep none, keep right, keep as is\n"
f"{fmt('send_end')}: send page to end, '{fmt('arranger')}': pdf arranger, '{fmt('restart_file')}': restart file, '{fmt('prev_file')}': previous 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)
@@ -118,21 +124,43 @@ class PDFPreviewer:
self.canvas.pack(fill="both", expand=True)
# --- Bindings ---
self.master.bind("<Left>", self.move_line_left)
self.master.bind("<Right>", self.move_line_right)
self.master.bind("<Return>", self.confirm_and_next_page)
self.master.bind("c", self.rotate_page)
self.master.bind("C", self.rotate_all_pages)
self.master.bind(",", self.rotate_all_files)
self.master.bind("t", self.keep_left)
self.master.bind("n", self.keep_right)
self.master.bind("m", self.keep_as_is)
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)
self.master.bind("A", self.start_arranger)
self.master.bind("P", self.go_to_previous_file)
action_map = {
"move_left": self.move_line_left,
"move_right": self.move_line_right,
"confirm_next": self.confirm_and_next_page,
"rotate_page": self.rotate_page,
"rotate_all_pages": self.rotate_all_pages,
"rotate_all_files": self.rotate_all_files,
"keep_left": self.keep_left,
"keep_right": self.keep_right,
"keep_as_is": self.keep_as_is,
"next_page": self.confirm_and_next_page,
"discard_page": self.discard_page,
"send_end": self.send_page_end,
"restart_file": self.restart_current_file,
"arranger": self.start_arranger,
"prev_file": self.go_to_previous_file,
}
for action, key in PAGE_SPLITTER_KB.items():
if action in action_map:
self.master.bind(key, action_map[action])
# self.master.bind("<Left>", self.move_line_left)
# self.master.bind("<Right>", self.move_line_right)
# self.master.bind("<Return>", self.confirm_and_next_page)
# self.master.bind("c", self.rotate_page)
# self.master.bind("C", self.rotate_all_pages)
# self.master.bind(",", self.rotate_all_files)
# self.master.bind("t", self.keep_left)
# self.master.bind("n", self.keep_right)
# self.master.bind("m", self.keep_as_is)
# 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)
# self.master.bind("A", self.start_arranger)
# self.master.bind("P", self.go_to_previous_file)
# Bind the resize event on the canvas