sestra
This commit is contained in:
@@ -408,8 +408,43 @@ def interactive_rename(pdf_path: Path, info: dict, verif: dict) -> bool:
|
||||
print(f" Navržený název: {nazev}")
|
||||
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)
|
||||
|
||||
# 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:
|
||||
print(" Přeskočeno.")
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user