From d7c59424038c481a0c1c58b8fbd4e09155a87827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Stadler?= Date: Sat, 5 Nov 2011 23:47:47 +0100 Subject: [PATCH] Store zoom level in state --- debug-viewer/GstDebugViewer/GUI/app.py | 2 ++ debug-viewer/GstDebugViewer/GUI/window.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/debug-viewer/GstDebugViewer/GUI/app.py b/debug-viewer/GstDebugViewer/GUI/app.py index de17305294..da51149fbd 100644 --- a/debug-viewer/GstDebugViewer/GUI/app.py +++ b/debug-viewer/GstDebugViewer/GUI/app.py @@ -38,6 +38,8 @@ class AppStateSection (Common.GUI.StateSection): column_order = Common.GUI.StateItemList ("column-order", ViewColumnManager) columns_visible = Common.GUI.StateItemList ("columns-visible", ViewColumnManager) + zoom_level = Common.GUI.StateInt ("zoom-level") + class AppState (Common.GUI.State): def __init__ (self, *a, **kw): diff --git a/debug-viewer/GstDebugViewer/GUI/window.py b/debug-viewer/GstDebugViewer/GUI/window.py index 832526e271..6372492099 100644 --- a/debug-viewer/GstDebugViewer/GUI/window.py +++ b/debug-viewer/GstDebugViewer/GUI/window.py @@ -290,6 +290,10 @@ class Window (object): def attach (self): self.zoom_level = 0 + zoom_percent = self.app.state_section.zoom_level + if zoom_percent: + self.restore_zoom (float (zoom_percent) / 100.) + self.window_state.attach (window = self.gtk_window, state = self.app.state_section) @@ -593,6 +597,14 @@ class Window (object): self.update_zoom_level (-self.zoom_level) + def restore_zoom (self, scale): + + from math import log + + self.zoom_level = int (round (log (scale) / log (ZOOM_FACTOR))) + + self.column_manager.set_zoom (scale) + def update_zoom_level (self, delta_step): if not delta_step: @@ -603,6 +615,8 @@ class Window (object): self.column_manager.set_zoom (scale) + self.app.state_section.zoom_level = int (round (scale * 100.)) + def add_model_filter (self, filter): self.progress_dialog = ProgressDialog (self, _("Filtering"))