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(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
|
||||||
|
|||||||
Reference in New Issue
Block a user