Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

Commit 15bfa95

Browse files
nelsonduarteclaude
andcommitted
fix: ligar botões de zoom e navegação de páginas ao viewer
Botões de zoom +/−/reset e navegação de páginas agora funcionam tanto no modo visualizador como no editor. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c540da1 commit 15bfa95

1 file changed

Lines changed: 15 additions & 13 deletions

File tree

app/window.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ def _wrapped_load(*args, **kwargs):
238238
original_load(*args, **kwargs)
239239
from PySide6.QtCore import QTimer
240240
QTimer.singleShot(100, self._update_page_nav)
241+
if self._current_tool == -1:
242+
self._setup_zoom_bar(True, canvas=self._viewer._canvas)
241243
self._viewer.load = _wrapped_load
242244

243245
def _open_tool_by_name(self, tool_name: str):
@@ -263,24 +265,25 @@ def _try_auto_load(self, index: int):
263265
def _edit_tool_idx(self) -> int:
264266
return next(i for i, (_, __, cls) in enumerate(NAV_ITEMS) if cls is TabEditar)
265267

266-
def _setup_zoom_bar(self, active: bool):
268+
def _setup_zoom_bar(self, active: bool, canvas=None):
267269
self._zoom_widget.setVisible(active)
268-
canvas = getattr(self.stack.widget(self._edit_tool_idx()), '_canvas', None)
270+
# Disconnect previous connections
271+
try:
272+
self._zm_btn.clicked.disconnect()
273+
self._zp_btn.clicked.disconnect()
274+
self._z0_btn.clicked.disconnect()
275+
except Exception:
276+
pass
277+
if canvas is None:
278+
canvas = getattr(self.stack.widget(self._edit_tool_idx()), '_canvas', None)
269279
if canvas is None:
270280
return
271281
if active:
272282
self._zm_btn.clicked.connect(canvas.zoom_out)
273283
self._zp_btn.clicked.connect(canvas.zoom_in)
274284
self._z0_btn.clicked.connect(canvas.zoom_reset)
275285
canvas.zoom_changed.connect(lambda pct: self._lbl_zoom.setText(f"{pct}%"))
276-
else:
277-
try:
278-
self._zm_btn.clicked.disconnect(canvas.zoom_out)
279-
self._zp_btn.clicked.disconnect(canvas.zoom_in)
280-
self._z0_btn.clicked.disconnect(canvas.zoom_reset)
281-
canvas.zoom_changed.disconnect()
282-
except Exception:
283-
pass
286+
self._lbl_zoom.setText(f"{round(canvas._zoom_factor * 100)}%")
284287

285288
def _on_nav_clicked(self, item):
286289
row = self.nav.row(item)
@@ -291,10 +294,9 @@ def _on_nav_clicked(self, item):
291294
self.stack.setVisible(False)
292295
self._viewer.setVisible(True)
293296
self._tool_badge.setText("Modo: Visualizador")
294-
self._setup_zoom_bar(False)
297+
self._setup_zoom_bar(True, canvas=self._viewer._canvas)
295298
else:
296-
if self._current_tool == edit_idx:
297-
self._setup_zoom_bar(False)
299+
self._setup_zoom_bar(False)
298300
self._current_tool = row
299301
self.stack.setCurrentIndex(row)
300302
self.stack.setVisible(True)

0 commit comments

Comments
 (0)