diff options
Diffstat (limited to 'silx/gui/hdf5/Hdf5Node.py')
-rw-r--r-- | silx/gui/hdf5/Hdf5Node.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/silx/gui/hdf5/Hdf5Node.py b/silx/gui/hdf5/Hdf5Node.py index 31bb097..0fcb407 100644 --- a/silx/gui/hdf5/Hdf5Node.py +++ b/silx/gui/hdf5/Hdf5Node.py @@ -25,7 +25,9 @@ __authors__ = ["V. Valls"] __license__ = "MIT" -__date__ = "23/09/2016" +__date__ = "16/06/2017" + +import weakref class Hdf5Node(object): @@ -43,7 +45,9 @@ class Hdf5Node(object): everything is lazy loaded. """ self.__child = None - self.__parent = parent + self.__parent = None + if parent is not None: + self.__parent = weakref.ref(parent) if populateAll: self.__child = [] self._populateChild(populateAll=True) @@ -54,7 +58,12 @@ class Hdf5Node(object): :rtype: Hdf5Node """ - return self.__parent + if self.__parent is None: + return None + parent = self.__parent() + if parent is None: + self.__parent = parent + return parent def setParent(self, parent): """Redefine the parent of the node. @@ -63,7 +72,10 @@ class Hdf5Node(object): :param Hdf5Node parent: The new parent """ - self.__parent = parent + if parent is None: + self.__parent = None + else: + self.__parent = weakref.ref(parent) def appendChild(self, child): """Append a child to the node. @@ -208,3 +220,12 @@ class Hdf5Node(object): :rtype: qt.QVariant """ return None + + def dataLink(self, role): + """Data for the link column + + Overwrite it to implement the content of the 'link' column. + + :rtype: qt.QVariant + """ + return None |