This commit is contained in:
michaela.buzalkova
2026-04-22 08:19:46 +02:00
parent 4e0d768825
commit 3aca4f5772
@@ -408,8 +408,43 @@ def interactive_rename(pdf_path: Path, info: dict, verif: dict) -> bool:
print(f" Navržený název: {nazev}") print(f" Navržený název: {nazev}")
print(" Otevírám dialog...") print(" Otevírám dialog...")
# Otevři PDF v prohlížeči (konkrétní proces, abychom zavřeli jen toto okno)
viewer_proc = None
try:
import subprocess
import winreg
import shlex
def _get_pdf_exe() -> list[str] | None:
try:
with winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, r".pdf") as k:
prog_id = winreg.QueryValue(k, "")
with winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, rf"{prog_id}\shell\open\command") as k:
cmd = winreg.QueryValue(k, "")
parts = shlex.split(cmd.replace("\\", "/"))
exe = parts[0].replace("/", "\\")
return [exe, str(pdf_path)]
except Exception:
return None
cmd = _get_pdf_exe()
if cmd:
viewer_proc = subprocess.Popen(cmd)
else:
subprocess.Popen(["start", "", str(pdf_path)], shell=True)
except Exception as e:
print(f" [Prohlížeč] Nepodařilo se otevřít: {e}")
odpoved = _rename_dialog(nazev or "", info_lines) odpoved = _rename_dialog(nazev or "", info_lines)
# Zavři jen tento konkrétní proces prohlížeče a počkej na uvolnění zámku
if viewer_proc is not None:
try:
viewer_proc.terminate()
viewer_proc.wait(timeout=10)
except Exception:
pass
if odpoved is None: if odpoved is None:
print(" Přeskočeno.") print(" Přeskočeno.")
return False return False