Windows compatibility

This commit is contained in:
2026-08-20 12:01:31 +02:00
parent 7c366a9ca4
commit ac4ab782b2
20 changed files with 634 additions and 134 deletions
+17 -16
View File
@@ -1,14 +1,15 @@
import sys
import json
import threading
import re
import queue
import subprocess
import sys
import threading
import tkinter as tk
from tkinter import messagebox
from pathlib import Path
from tkinter import messagebox
from PIL import Image, ImageDraw, ImageFont, ImageTk
from platform_utils import open_path
print("o to open pdf, O original pdf, e to emacs part, p to go back, i to interro, click for coordinates")
# --- Configuration & Globals ---
@@ -336,7 +337,7 @@ class ImageViewer:
a = self.current_json_path.stem.split('_')[0] + ".pdf"
pdf_path = self.current_json_path.with_name(a)
print(f"Opening {pdf_path}")
subprocess.Popen(['xdg-open', str(pdf_path.absolute())])
open_path(pdf_path)
def on_open_interro(self, event):
if self.is_viewing and self.current_json_path:
@@ -347,25 +348,28 @@ class ImageViewer:
if local_accent.exists():
pdf_path = str(local_accent)
elif local_plain.exists():
pdf_path = str(local_plain)
pdf_path = local_plain
else:
# Fallback to the Interro staging directory
pdf_path = f"/home/sebastien/Prépa/Staging/Interro/{self.base_dir.name}.pdf"
messagebox.showerror(
"PDF not found",
f"Neither {local_accent.name} nor {local_plain.name} exists in {self.base_dir}.",
)
return
print(f"Opening {pdf_path}")
subprocess.Popen(['xdg-open', pdf_path])
open_path(pdf_path)
def on_open_ori_pdf(self, event):
if self.is_viewing and self.current_json_path:
new_filename = self.current_json_path.stem.split('_')[0] + ".pdf"
pdf_path = self.base_dir / "Copies Originales" / new_filename
print(f"Opening {pdf_path}")
subprocess.Popen(['xdg-open', str(pdf_path.absolute())])
open_path(pdf_path)
def on_edit(self, event):
if self.is_viewing and self.current_json_path:
print(f"Opening {self.current_json_path}")
subprocess.Popen(['xdg-open', str(self.current_json_path.absolute())])
open_path(self.current_json_path)
def on_click(self, event):
if not self.is_viewing: return
@@ -418,14 +422,11 @@ if __name__ == "__main__":
sys.exit(1)
files_to_process = sorted(cutleft_dir.glob("*.jpg"))
labels_txt = (base_dir / "labels").read_text()
valid_labels_set = set(line.strip() for line in labels_txt.splitlines() if line.strip())
try:
all_labels = read_all_labels(base_dir)
except FileNotFoundError:
all_labels = []
valid_labels_set = set(all_labels)
t = threading.Thread(target=worker_thread, args=(base_dir, files_to_process, all_labels))
t.daemon = True