Opció --no-accents / «Sense accents» a CLI i GUI

This commit is contained in:
2026-05-12 10:34:10 +02:00
parent 3ee2b303fe
commit 01415776b9
2 changed files with 32 additions and 12 deletions
+21 -11
View File
@@ -47,12 +47,13 @@ class FontGenApp(tk.Tk):
self._last_result: font_gen.FontBitmapResult | None = None
self._zoom: int | None = DEFAULT_ZOOM # None = auto-fit; int = escala explícita
self.ttf_var = tk.StringVar()
self.size_var = tk.IntVar(value=8)
self.output_var = tk.StringVar()
self.columns_var = tk.IntVar(value=15)
self.bw_var = tk.StringVar() # "" = auto
self.bh_var = tk.StringVar() # "" = auto
self.ttf_var = tk.StringVar()
self.size_var = tk.IntVar(value=8)
self.output_var = tk.StringVar()
self.columns_var = tk.IntVar(value=15)
self.bw_var = tk.StringVar() # "" = auto
self.bh_var = tk.StringVar() # "" = auto
self.strip_accents_var = tk.BooleanVar(value=False)
self._adv_visible = False
@@ -60,7 +61,8 @@ class FontGenApp(tk.Tk):
self._load_state() # antes de los traces: el set() inicial no debe disparar preview
self._update_zoom_label()
for v in (self.ttf_var, self.size_var, self.columns_var, self.bw_var, self.bh_var):
for v in (self.ttf_var, self.size_var, self.columns_var,
self.bw_var, self.bh_var, self.strip_accents_var):
v.trace_add("write", lambda *_: self._schedule_preview())
# Disparar un preview inicial si _load_state nos dejó un TTF válido.
@@ -86,6 +88,8 @@ class FontGenApp(tk.Tk):
ttk.Spinbox(row, from_=4, to=128, width=5, textvariable=self.size_var).pack(side="left")
ttk.Label(row, text="Salida:").pack(side="left", padx=(16, 4))
ttk.Entry(row, textvariable=self.output_var, width=24).pack(side="left")
ttk.Checkbutton(row, text="Sense accents",
variable=self.strip_accents_var).pack(side="left", padx=(16, 0))
self.adv_btn = ttk.Button(root, text="▸ Opciones avanzadas", command=self._toggle_advanced)
self.adv_btn.pack(anchor="w", pady=(8, 0))
@@ -202,7 +206,10 @@ class FontGenApp(tk.Tk):
bh = _parse_optional_positive_int(self.bh_var.get())
try:
result = font_gen.build_font_bitmap(ttf, size, columns, bw, bh)
result = font_gen.build_font_bitmap(
ttf, size, columns, bw, bh,
strip_accents=self.strip_accents_var.get(),
)
except Exception as e:
self._show_preview_error(f"Error: {e}")
return
@@ -333,6 +340,8 @@ class FontGenApp(tk.Tk):
size = state.get("size")
if isinstance(size, int) and 4 <= size <= 256:
self.size_var.set(size)
if isinstance(state.get("strip_accents"), bool):
self.strip_accents_var.set(state["strip_accents"])
# Zoom: None (auto), o int en [1, MANUAL_MAX_SCALE]
if "zoom" in state:
zoom = state["zoom"]
@@ -347,9 +356,10 @@ class FontGenApp(tk.Tk):
except tk.TclError:
size = 8
state = {
"ttf": self.ttf_var.get().strip(),
"size": size,
"zoom": self._zoom,
"ttf": self.ttf_var.get().strip(),
"size": size,
"zoom": self._zoom,
"strip_accents": self.strip_accents_var.get(),
}
try:
with open(STATE_FILE, "w", encoding="utf-8") as f: