git.lucas.co / hou-control
git clone https://git.lucas.co/hou-control.git

commitb60b11d5b42c760e764ba1a174fdb51108c9dbd5
parent7dc65f3f90
authorLucas Galante <[email protected]>
date2026-04-16 22:55
keycam: rename zoom labels and symbols to explicitly separate Persp and Ortho

 viewer_states/keycam.py | 58 ++++++++++++++++++++-----------------------------
 1 file changed, 24 insertions(+), 34 deletions(-)

diff --git a/viewer_states/keycam.py b/viewer_states/keycam.py
index d99db81..d9f7411 100644
--- a/viewer_states/keycam.py
+++ b/viewer_states/keycam.py
@@ -86,32 +86,22 @@ class State(object):
     def onMenuAction(self, kwargs):
         menu_item = kwargs['menu_item']
         
-        # Define zoom behavior based on projection
-        def zoom_in():
-            self.cam.zoom('in') if self.cam.projection == 'perspective' else self.cam.zoomOrtho('in')
-        def zoom_out():
-            self.cam.zoom('out') if self.cam.projection == 'perspective' else self.cam.zoomOrtho('out')
-        def zoom_shift_in():
-            self.cam.zoomOrtho('in') if self.cam.projection == 'perspective' else self.cam.zoom('in')
-        def zoom_shift_out():
-            self.cam.zoomOrtho('out') if self.cam.projection == 'perspective' else self.cam.zoom('out')
-
         action_map = {
-            'frame':         self.cam.frame,
-            'reset':         self.cam.reset,
-            'rotate_left':   self.cam.rotateLeft,
-            'rotate_right':  self.cam.rotateRight,
-            'rotate_up':     self.cam.rotateUp,
-            'rotate_down':   self.cam.rotateDown,
-            'trans_left':    self.cam.translateLeft,
-            'trans_right':   self.cam.translateRight,
-            'trans_up':      self.cam.translateUp,
-            'trans_down':    self.cam.translateDown,
-            'toggle_proj':   self.cam.toggleProjection,
-            'zoom_in':       zoom_in,
-            'zoom_out':      zoom_out,
-            'zoom_ortho_in': zoom_shift_in,
-            'zoom_ortho_out':zoom_shift_out,
+            'frame':          self.cam.frame,
+            'reset':          self.cam.reset,
+            'rotate_left':    self.cam.rotateLeft,
+            'rotate_right':   self.cam.rotateRight,
+            'rotate_up':      self.cam.rotateUp,
+            'rotate_down':    self.cam.rotateDown,
+            'trans_left':     self.cam.translateLeft,
+            'trans_right':    self.cam.translateRight,
+            'trans_up':       self.cam.translateUp,
+            'trans_down':     self.cam.translateDown,
+            'toggle_proj':    self.cam.toggleProjection,
+            'zoom_persp_in':  lambda: self.cam.zoom('in'),
+            'zoom_persp_out': lambda: self.cam.zoom('out'),
+            'zoom_ortho_in':  lambda: self.cam.zoomOrtho('in'),
+            'zoom_ortho_out': lambda: self.cam.zoomOrtho('out'),
         }
 
         if menu_item in action_map:
@@ -291,11 +281,11 @@ def createViewerStateTemplate():
         'trans_down':    ('Translate Down', ['Shift+j']),
         'frame':         ('Frame',         ['f']),
         'toggle_proj':   ('Toggle Projection', ['o']),
-        'zoom_in':       ('Zoom In',       ['=']),
-        'zoom_out':      ('Zoom Out',      ['-']),
-        'zoom_ortho_in': ('Zoom Ortho In', ['Shift+=']),
-        'zoom_ortho_out':('Zoom Ortho Out',['Shift+-']),
-        'reset':         ('Reset',         ['r']),
+        'zoom_persp_in': ('Zoom In (Persp)',   ['=']),
+        'zoom_persp_out':('Zoom Out (Persp)',  ['-']),
+        'zoom_ortho_in': ('Zoom In (Ortho)',   ['Shift+=']),
+        'zoom_ortho_out':('Zoom Out (Ortho)',  ['Shift+-']),
+        'reset':         ('Reset',             ['r']),
     }
     
     for cmd_id, (label, defaults) in commands.items():
@@ -503,10 +493,10 @@ def createViewerStateTemplate():
     nav_menu.addActionItem('trans_up',      'Translate Up',    hotkey=f'{ctx}.trans_up')
     nav_menu.addActionItem('trans_down',    'Translate Down',  hotkey=f'{ctx}.trans_down')
     nav_menu.addSeparator()
-    nav_menu.addActionItem('zoom_in',       'Zoom In',         hotkey=f'{ctx}.zoom_in')
-    nav_menu.addActionItem('zoom_out',      'Zoom Out',        hotkey=f'{ctx}.zoom_out')
-    nav_menu.addActionItem('zoom_ortho_in', 'Zoom Ortho In',   hotkey=f'{ctx}.zoom_ortho_in')
-    nav_menu.addActionItem('zoom_ortho_out','Zoom Ortho Out',  hotkey=f'{ctx}.zoom_ortho_out')
+    nav_menu.addActionItem('zoom_persp_in',  'Zoom In (Persp)',  hotkey=f'{ctx}.zoom_persp_in')
+    nav_menu.addActionItem('zoom_persp_out', 'Zoom Out (Persp)', hotkey=f'{ctx}.zoom_persp_out')
+    nav_menu.addActionItem('zoom_ortho_in',  'Zoom In (Ortho)',  hotkey=f'{ctx}.zoom_ortho_in')
+    nav_menu.addActionItem('zoom_ortho_out', 'Zoom Out (Ortho)', hotkey=f'{ctx}.zoom_ortho_out')
     
     menu.addMenu(nav_menu)