From 267a119854126469db9387335a68d551af2d8e35 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Thu, 20 Aug 2015 14:35:16 +0100
Subject: [PATCH] LabelOpts.lut generated command line value was 'LookupTable
 ...' - fixed, so that the lut key is output.

---
 fsl/fsleyes/displaycontext/labelopts.py | 13 ++++++++-----
 fsl/fsleyes/fsleyes_parseargs.py        |  9 ++++++++-
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/fsl/fsleyes/displaycontext/labelopts.py b/fsl/fsleyes/displaycontext/labelopts.py
index a71cc99d2..be068bc64 100644
--- a/fsl/fsleyes/displaycontext/labelopts.py
+++ b/fsl/fsleyes/displaycontext/labelopts.py
@@ -12,13 +12,9 @@ import volumeopts
 import fsl.fsleyes.colourmaps as fslcm
 
 
-luts  = fslcm.getLookupTables()
-names = [l.name  for l in luts]
-alts  = [[l.key] for l in luts]
-
 class LabelOpts(volumeopts.ImageOpts):
 
-    lut          = props.Choice(luts, labels=names, alternates=alts)
+    lut          = props.Choice()
     outline      = props.Boolean(default=False)
     outlineWidth = props.Real(minval=0, maxval=1, default=0.25, clamped=True)
     showNames    = props.Boolean(default=False)
@@ -26,3 +22,10 @@ class LabelOpts(volumeopts.ImageOpts):
 
     def __init__(self, overlay, *args, **kwargs):
         volumeopts.ImageOpts.__init__(self, overlay, *args, **kwargs)
+
+        luts  = fslcm.getLookupTables()
+        names = [l.name  for l in luts]
+        alts  = [[l.key] for l in luts]
+
+        lutChoice = self.getProp('lut')
+        lutChoice.setChoices(luts, labels=names, alternates=alts)
diff --git a/fsl/fsleyes/fsleyes_parseargs.py b/fsl/fsleyes/fsleyes_parseargs.py
index 13b848f20..f17f0a29e 100644
--- a/fsl/fsleyes/fsleyes_parseargs.py
+++ b/fsl/fsleyes/fsleyes_parseargs.py
@@ -376,7 +376,12 @@ EXTRA = td.TypeDict({
 def _imageTrans(i):
     if i == 'none': return None
     else:           return i.dataSource
-    
+
+
+def _lutTrans(l):
+    if isinstance(l, colourmaps.LookupTable): return l.key
+    else:                                     return l
+
     
 TRANSFORMS = td.TypeDict({
     'SceneOpts.showCursor'  : lambda b: not b,
@@ -391,6 +396,8 @@ TRANSFORMS = td.TypeDict({
     # is only used when generating arguments
     'VectorOpts.modulate'   : _imageTrans,
     'ModelOpts.refImage'    : _imageTrans,
+
+    'LabelOpts.lut'         : _lutTrans,
 })
 
 
-- 
GitLab