Store zoom level in state
authorRené Stadler <mail@renestadler.de>
Sat, 5 Nov 2011 22:47:47 +0000 (23:47 +0100)
committerStefan Sauer <ensonic@users.sf.net>
Thu, 11 Sep 2014 18:51:46 +0000 (20:51 +0200)
debug-viewer/GstDebugViewer/GUI/app.py
debug-viewer/GstDebugViewer/GUI/window.py

index de17305..da51149 100644 (file)
@@ -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):
index 832526e..6372492 100644 (file)
@@ -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"))