diff --git a/fsl/__init__.py b/fsl/__init__.py index 790be29422ef1af2b4dcada525dd11ca6022e4da..1beef9641180425dfe6b01868a6351be45a5f506 100644 --- a/fsl/__init__.py +++ b/fsl/__init__.py @@ -263,8 +263,9 @@ def parseArgs(argv, allTools): if namespace.memory: class MemFilter(object): def filter(self, record): - if record.levelno == logging.MEMORY: return 1 - else: return 0 + if record.name in namespace.noisy: return 1 + elif record.levelno == logging.MEMORY: return 1 + else: return 0 log.setLevel(logging.MEMORY) log.handlers[0].addFilter(MemFilter()) diff --git a/fsl/fslview/displaycontext/displaycontext.py b/fsl/fslview/displaycontext/displaycontext.py index 0fab40e11d9fe508bfa8b17f734db56c1be834d5..03e6aac7a004cf5651fb53993ebf8dd6cb86235d 100644 --- a/fsl/fslview/displaycontext/displaycontext.py +++ b/fsl/fslview/displaycontext/displaycontext.py @@ -87,6 +87,14 @@ class DisplayContext(props.SyncableHasProperties): self.__name, self.__overlayListChanged) + + log.memory('{}.init ({})'.format(type(self).__name__, id(self))) + + + def __del__(self): + log.memory('{}.del ({})'.format(type(self).__name__, id(self))) + + def getDisplay(self, overlay, overlayType=None): """Returns the display property object (e.g. a :class:`.Display` diff --git a/fsl/fslview/views/plotpanel.py b/fsl/fslview/views/plotpanel.py index be4defaeedba06a07d89d491f035e7c4127d2cbe..3aed21cde32eb3444daa0920d77c59e063964909 100644 --- a/fsl/fslview/views/plotpanel.py +++ b/fsl/fslview/views/plotpanel.py @@ -48,6 +48,10 @@ class DataSeries(props.HasProperties): self.overlay = overlay + def __copy__(self): + return type(self)(self.overlay) + + def getData(self): raise NotImplementedError('The getData method must be ' 'implemented by subclasses') diff --git a/fsl/fslview/views/timeseriespanel.py b/fsl/fslview/views/timeseriespanel.py index 26c7d18d726855e9dd641dc52bbebd8fc40a4474..946b98a5f7d941badc3ddda8e180caf8968dd4da 100644 --- a/fsl/fslview/views/timeseriespanel.py +++ b/fsl/fslview/views/timeseriespanel.py @@ -41,6 +41,11 @@ class TimeSeries(plotpanel.DataSeries): self.coords = map(int, coords) self.data = overlay.data[coords[0], coords[1], coords[2], :] + + def __copy__(self): + + return type(self)(self.tsPanel, self.overlay, self.coords) + def update(self, coords): """This method is only intended for use on the 'current' time series,