From a75eb9f77cc1ecdce80cf08feb864d554e4fd4eb Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Tue, 21 Oct 2014 22:05:25 +0100
Subject: [PATCH] Removed invert options from ortho panel. Renamed
 'toggleLabels' to 'refreshLabels'. Added little hack to support orthographic
 display - invert horizontal axis on X canvas when in grid layout.

---
 fsl/fslview/views/orthopanel.py | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/fsl/fslview/views/orthopanel.py b/fsl/fslview/views/orthopanel.py
index 9f2b21b11..d753f3fa0 100644
--- a/fsl/fslview/views/orthopanel.py
+++ b/fsl/fslview/views/orthopanel.py
@@ -39,14 +39,6 @@ class OrthoPanel(canvaspanel.CanvasPanel):
     showZCanvas = props.Boolean(default=True)
     """Toggles display of the Z canvas."""
 
-
-    invertX_X   = props.Boolean(default=False)
-    invertX_Y   = props.Boolean(default=False)
-    invertY_X   = props.Boolean(default=False)
-    invertY_Y   = props.Boolean(default=False)
-    invertZ_X   = props.Boolean(default=False)
-    invertZ_Y   = props.Boolean(default=False)
-
     showLabels = props.Boolean(default=True)
     """If ``True``, labels showing anatomical orientation are displayed on
     each of the canvases.
@@ -80,9 +72,6 @@ class OrthoPanel(canvaspanel.CanvasPanel):
                       'showYCanvas',
                       'showZCanvas',
                       'showColourBar',
-                      props.HGroup(('invertX_X', 'invertX_Y')),
-                      props.HGroup(('invertY_X', 'invertY_Y')),
-                      props.HGroup(('invertZ_X', 'invertZ_Y')),
                       props.Widget('colourBarLocation',
                                    visibleWhen=lambda i: i.showColourBar),
                       props.Widget('colourBarLabelSide',
@@ -239,18 +228,11 @@ class OrthoPanel(canvaspanel.CanvasPanel):
         self.bindProps('yzoom',      self._ycanvas, 'zoom')
         self.bindProps('zzoom',      self._zcanvas, 'zoom')
 
-        self.bindProps('invertX_X', self._xcanvas, 'invertX')
-        self.bindProps('invertX_Y', self._xcanvas, 'invertY')
-        self.bindProps('invertY_X', self._ycanvas, 'invertX')
-        self.bindProps('invertY_Y', self._ycanvas, 'invertY')
-        self.bindProps('invertZ_X', self._zcanvas, 'invertX')
-        self.bindProps('invertZ_Y', self._zcanvas, 'invertY') 
-
         # Callbacks for ortho panel layout options
         self.addListener('layout',            self._name, self._layoutChanged)
         self.addListener('showColourBar',     self._name, self._layoutChanged)
         self.addListener('colourBarLocation', self._name, self._layoutChanged)
-        self.addListener('showLabels',        self._name, self._toggleLabels)
+        self.addListener('showLabels',        self._name, self._refreshLabels)
 
         # Callbacks for image list/selected image changes
         self._imageList.addListener( 'images',
@@ -262,7 +244,7 @@ class OrthoPanel(canvaspanel.CanvasPanel):
 
         self._imageListChanged()
         self._layoutChanged()
-        self._toggleLabels()
+        self._refreshLabels()
 
         # Callbacks for mouse events on the three xcanvases
         self._xcanvas.Bind(wx.EVT_LEFT_DOWN, self._onMouseEvent)
@@ -319,7 +301,9 @@ class OrthoPanel(canvaspanel.CanvasPanel):
             # Update anatomy labels when the image
             # transformation matrix changes
             if i == self._displayCtx.selectedImage:
-                img.addListener('transform', self._name, self._toggleLabels)
+                img.addListener('transform', self._name, self._refreshLabels)
+
+        self._refreshLabels()
 
 
     def _onDestroy(self, ev):
@@ -357,7 +341,7 @@ class OrthoPanel(canvaspanel.CanvasPanel):
         self._layoutChanged()
 
 
-    def _toggleLabels(self, *a):
+    def _refreshLabels(self, *a):
         """Shows/hides labels depicting anatomical orientation on each canvas.
         """
 
@@ -559,6 +543,7 @@ class OrthoPanel(canvaspanel.CanvasPanel):
         # TODO This assumes RAS orientation - we could
         # automaticaly generate the canvas order from 
         # anatomical orientation labels
+        self._xcanvas.invertX = layout == 'grid'
         if layout == 'grid':
             canvases = [self._yCanvasPanel,
                         self._xCanvasPanel,
-- 
GitLab