diff --git a/fsl/__init__.py b/fsl/__init__.py index 3bcf0bb9c8e757dd6535f7392cf9fb240a3d24ea..dcd21e0618658f6923d39db018b18e84b3fe3e48 100644 --- a/fsl/__init__.py +++ b/fsl/__init__.py @@ -95,7 +95,8 @@ log = logging.getLogger() log.addHandler(logHandler) -import fsl.tools as tools +import fsl.tools as tools +import fsl.utils.settings as fslsettings def loadAllFSLTools(): @@ -323,7 +324,16 @@ def fslDirWarning(frame, toolName, fslEnvActive): warnmsg = 'The FSLDIR environment variable is not set - '\ '{} may not behave correctly.'.format(toolName) - if frame is not None: + + # Check fslpy settings before + # prompting the user + fsldir = fslsettings.read('fsldir') + + if fsldir is not None: + os.environ['FSLDIR'] = fsldir + return + + if frame is not None and fsldir is None: import wx from fsl.utils.fsldirdlg import FSLDirDialog @@ -333,7 +343,9 @@ def fslDirWarning(frame, toolName, fslEnvActive): fsldir = dlg.GetFSLDir() log.debug('Setting $FSLDIR to {} (specified ' 'by user)'.format(fsldir)) + os.environ['FSLDIR'] = fsldir + fslsettings.write('fsldir', fsldir) else: log.warn(warnmsg) @@ -397,6 +409,7 @@ def main(args=None): and displays a GUI (if the tool has one), or executes the tool. """ + # Search the environment for FSLDIR fsldir = os.environ.get('FSLDIR', None) fslEnvActive = fsldir is not None diff --git a/fsl/fslview/frame.py b/fsl/fslview/frame.py index 29c55ae34d8d23271290e387c37177de9eabf83f..3e40a4df2a887dc1395a7dd1102c941306d16f83 100644 --- a/fsl/fslview/frame.py +++ b/fsl/fslview/frame.py @@ -53,8 +53,8 @@ import logging import wx import wx.aui as aui -import fsl.data.strings as strings -import fsl.fslview.settings as fslsettings +import fsl.data.strings as strings +import fsl.utils.settings as fslsettings import views import actions diff --git a/fsl/fslview/overlay.py b/fsl/fslview/overlay.py index a7f1fd7bb54ab14fcd5adbc4bc764dae3e63b214..80f87619e72ade22502b750a3bad092f3f941375 100644 --- a/fsl/fslview/overlay.py +++ b/fsl/fslview/overlay.py @@ -22,7 +22,7 @@ import fsl.data.featresults as featresults import fsl.data.featimage as fslfeatimage import fsl.data.strings as strings import fsl.data.model as fslmodel -import fsl.fslview.settings as fslsettings +import fsl.utils.settings as fslsettings log = logging.getLogger(__name__) diff --git a/fsl/fslview/settings.py b/fsl/utils/settings.py similarity index 70% rename from fsl/fslview/settings.py rename to fsl/utils/settings.py index d2d1347dfdd406d703be4df91f1e75b79edafbc4..87b6c9ce6a5bc0cb34d777ce0e2b8245a7492922 100644 --- a/fsl/fslview/settings.py +++ b/fsl/utils/settings.py @@ -14,10 +14,13 @@ def read(name, default=None): try: import wx except: return None - config = wx.Config('fslview') + config = wx.Config('fsleyes') value = config.Read(name) + log.debug('Read {}: {}'.format( + name, '(no value)' if value == '' else value)) + if value == '': return default else: return value @@ -28,8 +31,8 @@ def write(name, value): except: return None value = str(value) - config = wx.Config('fslview') + config = wx.Config('fsleyes') - log.debug('Saving {}: {}'.format(name, value)) + log.debug('Writing {}: {}'.format(name, value)) config.Write(name, value)