Commit 14a466de authored by Paul McCarthy's avatar Paul McCarthy 🚵
Browse files

Merge branch 'v0.28' into 'v0.28'

V0.28

See merge request fsl/fsleyes/fsleyes!120
parents ba635a44 7cbe57e5
......@@ -9,6 +9,29 @@ This document contains the ``fsleyes`` release history in reverse
chronological order.
0.28.2 (Sunday 14th April 2019)
-------------------------------
Changed
^^^^^^^
* The update check option does not verify SSL certificates when downloading
the latest version string.
Fixed
^^^^^
* Fixed an issue with the MIP overlay on macOS.
* Workarounds for the inability of PyOpenGL to accept read-only ``numpy``
arrays.
* Minimum required ``fslpy`` version is now 2.1, so that "compressed"
voxelwise EVs (suh as those generated by `PNM
<https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/PNM>`_) are supported.
0.28.1 (Monday April 8th 2019)
------------------------------
......
......@@ -75,7 +75,7 @@ release = version
# quote in the documentation go here.
rst_epilog = """
.. |fsl_version| replace:: 5.0.10
.. |fsl_version| replace:: 6.0.1
.. |fsleyes_homepage| replace:: FSLeyes
.. _fsleyes_homepage: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes
......
``fsleyes.actions.loaddicom``
=============================
.. automodule:: fsleyes.actions.loaddicom
:members:
:undoc-members:
:show-inheritance:
......@@ -21,6 +21,7 @@
fsleyes.actions.importdataseries
fsleyes.actions.loadatlas
fsleyes.actions.loadcolourmap
fsleyes.actions.loaddicom
fsleyes.actions.loadoverlay
fsleyes.actions.loadoverlayfromdir
fsleyes.actions.loadlayout
......
......@@ -37,6 +37,7 @@
fsleyes.controls.plottoolbar
fsleyes.controls.powerspectrumcontrolpanel
fsleyes.controls.powerspectrumtoolbar
fsleyes.controls.scene3dtoolbar
fsleyes.controls.timeseriescontrolpanel
fsleyes.controls.timeseriestoolbar
......
``fsleyes.controls.scene3dtoolbar``
===================================
.. automodule:: fsleyes.controls.scene3dtoolbar
:members:
:undoc-members:
:show-inheritance:
``fsleyes.displaycontext.freesurferopts``
=========================================
.. automodule:: fsleyes.displaycontext.freesurferopts
:members:
:undoc-members:
:show-inheritance:
``fsleyes.displaycontext.mipopts``
==================================
.. automodule:: fsleyes.displaycontext.mipopts
:members:
:undoc-members:
:show-inheritance:
......@@ -8,12 +8,14 @@
fsleyes.displaycontext.colourmapopts
fsleyes.displaycontext.display
fsleyes.displaycontext.displaycontext
fsleyes.displaycontext.freesurferopts
fsleyes.displaycontext.giftiopts
fsleyes.displaycontext.group
fsleyes.displaycontext.labelopts
fsleyes.displaycontext.lightboxopts
fsleyes.displaycontext.maskopts
fsleyes.displaycontext.meshopts
fsleyes.displaycontext.mipopts
fsleyes.displaycontext.orthoopts
fsleyes.displaycontext.sceneopts
fsleyes.displaycontext.scene3dopts
......
``fsleyes.gl.gl21.glmip_funcs``
===============================
.. automodule:: fsleyes.gl.gl21.glmip_funcs
:members:
:undoc-members:
:show-inheritance:
......@@ -7,6 +7,7 @@
fsleyes.gl.gl21.gllabel_funcs
fsleyes.gl.gl21.gllinevector_funcs
fsleyes.gl.gl21.glmesh_funcs
fsleyes.gl.gl21.glmip_funcs
fsleyes.gl.gl21.glrgbvector_funcs
fsleyes.gl.gl21.glsh_funcs
fsleyes.gl.gl21.gltensor_funcs
......
``fsleyes.gl.glmip``
====================
.. automodule:: fsleyes.gl.glmip
:members:
:undoc-members:
:show-inheritance:
......@@ -13,6 +13,7 @@
fsleyes.gl.gllinevector
fsleyes.gl.glmask
fsleyes.gl.glmesh
fsleyes.gl.glmip
fsleyes.gl.globject
fsleyes.gl.glrgbvector
fsleyes.gl.glsh
......
``fsleyes.gl.shaders.filter``
=============================
.. automodule:: fsleyes.gl.shaders.filter
:members:
:undoc-members:
:show-inheritance:
......@@ -4,6 +4,7 @@
.. toctree::
:hidden:
fsleyes.gl.shaders.filter
fsleyes.gl.shaders.arbp
fsleyes.gl.shaders.glsl
......
......@@ -18,6 +18,7 @@ fsl
fsl.data
fsl.data.atlases
fsl.data.constants
fsl.data.dicom
fsl.data.dtifit
fsl.data.featanalysis
fsl.data.featimage
......@@ -29,17 +30,20 @@ fsl.data.imagewrapper
fsl.data.melodicimage
fsl.data.mghimage
fsl.data.mesh
fsl.data.utils
fsl.data.vest
fsl.data.volumelabels
fsl.utils
fsl.utils.async
fsl.utils.cache
fsl.utils.callfsl
fsl.utils.deprecated
fsl.utils.idle
fsl.utils.memoize
fsl.utils.notifier
fsl.utils.path
fsl.utils.platform
fsl.utils.run
fsl.utils.settings
fsl.utils.tempdir
fsl.utils.transform
......@@ -85,6 +89,7 @@ scipy.ndimage.measurements
scipy.spatial
scipy.spatial.distance
wx
wx.adv
wx.glcanvas
wx.html
wx.lib
......
......@@ -152,12 +152,10 @@ bool sample_volume(vec3 texCoord, float maxValue, out float value) {
usemin = false;
}
if (usemin) {
if (value < maxValue) {
return true;
}
if (usemin && (value < maxValue)) {
return true;
}
else if (value > maxValue) {
else if ((!usemin) && (value > maxValue)) {
return true;
}
......
......@@ -168,10 +168,12 @@ def loadOverlays(paths,
:arg onLoad: Optional function to call when all overlays have been
loaded. Must accept two parameters:
- a list of indices, one for each overlay, into the
``paths`` parameter, indicating, for each overlay, the
path from which it was loaded.
- a list of the overlays that were loaded
- a list of indices, one for each overlay, into the
``paths`` parameter, indicating, for each overlay, the
path from which it was loaded.
- a list of the overlays that were loaded
:arg inmem: If ``True``, all :class:`.Image` overlays are
force-loaded into memory. Otherwise, large compressed
......@@ -312,7 +314,6 @@ def loadImage(dtype, path, inmem=False):
image = dtype(path,
loadData=False,
calcRange=False,
indexed=False,
threaded=False)
imgdtype = image.dtype
......@@ -337,20 +338,26 @@ def _loadNonComplexImage(dtype, path, nbytes, inmem):
"""
# If the file is compressed (gzipped),
# index the file if its compressed size
# is greater than the index threshold.
# tell the image to use a separate
# thread for data range calculation.
#
# The "idxthres" is so-named because
# it previously controlled whether
# gzipped images where kept on disk,
# and accessed via indexed_gzip. This
# is now determined automatically for
# us by nibabel.
rangethres = fslsettings.read('fsleyes.overlay.rangethres', 419430400)
idxthres = fslsettings.read('fsleyes.overlay.idxthres', 1073741824)
indexed = nbytes > idxthres
threaded = nbytes > idxthres
image = dtype(path,
loadData=inmem,
calcRange=False,
indexed=indexed,
threaded=indexed)
threaded=threaded)
# If the image is bigger than the
# index threshold, keep it on disk.
if inmem or (not indexed):
if inmem or (not threaded):
log.debug('Loading {} into memory'.format(path))
image.loadData()
else:
......
......@@ -11,7 +11,8 @@ if a new version of FSLeyes is available.
import logging
from six.moves.urllib import request
import urllib.request as request
import ssl
import wx
......@@ -90,7 +91,11 @@ class UpdateCheckAction(base.Action):
log.debug('Checking for FSLeyes updates ({})'.format(
_FSLEYES_VERSION_URL))
f = request.urlopen(_FSLEYES_VERSION_URL)
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
f = request.urlopen(_FSLEYES_VERSION_URL, context=ctx)
latest = f.read().decode('utf-8').strip()
current = version.__version__
upToDate = fslversion.compareVersions(latest,
......@@ -155,6 +160,8 @@ class UrlDialog(wx.Dialog):
ok = wx.Button( self, label='Ok', id=wx.ID_OK)
msg = wx.StaticText(self, label=msg)
self.__ok = ok
if urlMsg is not None:
urlMsg = wx.StaticText(self, label=urlMsg)
if url is not None:
......@@ -186,3 +193,9 @@ class UrlDialog(wx.Dialog):
self.SetSizer(sizer)
self.Layout()
self.Fit()
@property
def ok(self):
"""Return a reference to the OK button. """
return self.__ok
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment