diff --git a/fsl/fslview/controls/lightboxtoolbar.py b/fsl/fslview/controls/lightboxtoolbar.py index 8508b33b2b2d44e5c8d237888368423062a71634..71a5e36e3793d6ce4a6806cf4528b21bbc830b93 100644 --- a/fsl/fslview/controls/lightboxtoolbar.py +++ b/fsl/fslview/controls/lightboxtoolbar.py @@ -6,15 +6,16 @@ # +import props + import fsl.fslview.toolbar as fsltoolbar +import fsl.fslview.actions as actions class LightBoxToolBar(fsltoolbar.FSLViewToolBar): def __init__(self, parent, overlayList, displayCtx, lb): - import fsl.fslview.layouts as layouts - actionz = {'more' : self.showMoreSettings} fsltoolbar.FSLViewToolBar.__init__( @@ -22,22 +23,13 @@ class LightBoxToolBar(fsltoolbar.FSLViewToolBar): self.lightBoxPanel = lb sceneOpts = lb.getSceneOptions() - - toolSpecs = layouts.layouts[self] - - # TODO this is dodgy - there needs to be a - # way to have this automatically set up. - # - # 1. Add the ability to associate arbitrary - # data with a toolspec (modify props.ViewItem - # to allow a value to be set) - # - # 2. Update layouts.widget and actions.ActionButton - # to set that value to the target class - # - # 3. Here, loop through the toolspecs, check - # the target class, and set the instance - # appropriately + toolSpecs = [ + actions.ActionButton(lb, 'screenshot'), + props .Widget( 'zax'), + props .Widget( 'sliceSpacing', spin=False, showLimits=False), + props .Widget( 'zrange', spin=False, showLimits=False), + props .Widget( 'zoom', spin=False, showLimits=False), + actions.ActionButton(self, 'more')] targets = {'screenshot' : lb, 'zax' : sceneOpts, 'sliceSpacing' : sceneOpts, diff --git a/fsl/fslview/controls/orthotoolbar.py b/fsl/fslview/controls/orthotoolbar.py index 53bad487416ea108ab5c470b8ae83f99cf51f8f7..3a73e833ff501988dff4f71627f0aefb7151e7b7 100644 --- a/fsl/fslview/controls/orthotoolbar.py +++ b/fsl/fslview/controls/orthotoolbar.py @@ -6,7 +6,10 @@ # +import props + import fsl.fslview.toolbar as fsltoolbar +import fsl.fslview.actions as actions class OrthoToolBar(fsltoolbar.FSLViewToolBar): @@ -14,8 +17,6 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar): def __init__(self, parent, overlayList, displayCtx, ortho): - import fsl.fslview.layouts as layouts - actionz = {'more' : self.showMoreSettings} fsltoolbar.FSLViewToolBar.__init__( @@ -24,7 +25,15 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar): orthoOpts = ortho.getSceneOptions() - toolSpecs = layouts.layouts[self] + toolSpecs = [ + actions.ActionButton(ortho, 'screenshot'), + props .Widget( 'zoom', spin=False, showLimits=False), + props .Widget( 'layout'), + props .Widget( 'showXCanvas'), + props .Widget( 'showYCanvas'), + props .Widget( 'showZCanvas'), + actions.ActionButton(self, 'more')] + targets = {'screenshot' : ortho, 'zoom' : orthoOpts, 'layout' : orthoOpts, @@ -39,4 +48,4 @@ class OrthoToolBar(fsltoolbar.FSLViewToolBar): def showMoreSettings(self, *a): import canvassettingspanel self.orthoPanel.togglePanel( - canvassettingspanel.CanvasSettingsPanel, True, self.orthoPanel) + canvassettingspanel.CanvasSettingsPanel, True, self.orthoPanel) diff --git a/fsl/fslview/controls/overlaydisplaytoolbar.py b/fsl/fslview/controls/overlaydisplaytoolbar.py index f7ea52f7ab39ee5039146067c858b0afcfff5dc6..b60ca7018433805814d7aa71907094be99c92f37 100644 --- a/fsl/fslview/controls/overlaydisplaytoolbar.py +++ b/fsl/fslview/controls/overlaydisplaytoolbar.py @@ -33,7 +33,9 @@ _TOOLBAR_PROPS = td.TypeDict({ props.Widget('contrast', spin=False, showLimits=False)], 'VolumeOpts' : [ - props.Widget('cmap')], + props.Widget('cmap'), + props.Widget('displayRange', showLimits=False)], + 'MaskOpts' : [ props.Widget('colour')], @@ -172,7 +174,7 @@ class OverlayDisplayToolBar(fsltoolbar.FSLViewToolBar): more = props.buildGUI( self, self, - view=actions.ActionButton(type(self), 'more')) + view=actions.ActionButton(self, 'more')) tools .append(more) labels.append(None) diff --git a/fsl/fslview/layouts.py b/fsl/fslview/layouts.py index e5ad39750a25ac7ddd8f7955addb47be07093cfa..ae1147eca30f2cf32606d34aaf6b5a09327d4263 100644 --- a/fsl/fslview/layouts.py +++ b/fsl/fslview/layouts.py @@ -17,15 +17,6 @@ import fsl.fslview.actions as actions from fsl.fslview.profiles.orthoviewprofile import OrthoViewProfile from fsl.fslview.profiles.orthoeditprofile import OrthoEditProfile -from fsl.fslview.views import OrthoPanel -from fsl.fslview.views import LightBoxPanel - -from fsl.fslview.controls import OrthoToolBar -from fsl.fslview.controls import LightBoxToolBar - -from fsl.fslview.displaycontext import OrthoOpts -from fsl.fslview.displaycontext import LightBoxOpts - def widget(labelCls, name, *args, **kwargs): @@ -38,15 +29,6 @@ def widget(labelCls, name, *args, **kwargs): ######################################## -OrthoToolBarLayout = [ - actions.ActionButton(OrthoPanel, 'screenshot'), - widget( OrthoOpts, 'zoom', spin=False, showLimits=False), - widget( OrthoOpts, 'layout'), - widget( OrthoOpts, 'showXCanvas'), - widget( OrthoOpts, 'showYCanvas'), - widget( OrthoOpts, 'showZCanvas'), - actions.ActionButton(OrthoToolBar, 'more')] - OrthoProfileToolBarViewLayout = [ actions.ActionButton(OrthoViewProfile, 'resetZoom'), @@ -80,25 +62,8 @@ OrthoProfileToolBarEditLayout = [ enabledWhen=lambda p: p.mode == 'selint')] -####################################### -# LightBoxPanel control panels/toolbars -####################################### - -LightBoxToolBarLayout = [ - actions.ActionButton(LightBoxPanel, 'screenshot'), - widget( LightBoxOpts, 'zax'), - - widget(LightBoxOpts, 'sliceSpacing', spin=False, showLimits=False), - widget(LightBoxOpts, 'zrange', spin=False, showLimits=False), - widget(LightBoxOpts, 'zoom', spin=False, showLimits=False), - actions.ActionButton(LightBoxToolBar, 'more')] - - layouts = td.TypeDict({ - 'OrthoToolBar' : OrthoToolBarLayout, - 'LightBoxToolBar' : LightBoxToolBarLayout, - ('OrthoProfileToolBar', 'view') : OrthoProfileToolBarViewLayout, ('OrthoProfileToolBar', 'edit') : OrthoProfileToolBarEditLayout, }) diff --git a/fsl/fslview/toolbar.py b/fsl/fslview/toolbar.py index 512ec43ec729b6f47e6799d8e275bc32b72e0f8f..b56f4836f04d89e2483bd7fea31e9b6c03dad03d 100644 --- a/fsl/fslview/toolbar.py +++ b/fsl/fslview/toolbar.py @@ -216,7 +216,7 @@ class FSLViewToolBar(fslpanel._FSLViewPanel, wx.PyPanel): tool = props.buildGUI( self, targets[toolSpec.key], toolSpec, showUnlink=False) - if isinstance(toolSpec, actions.ActionButton): + if isinstance(toolSpec, props.Button): label = None else: