diff --git a/TermTk/TTkWidgets/TTkModelView/treewidget.py b/TermTk/TTkWidgets/TTkModelView/treewidget.py index 7f19b9b1..b365dcaa 100644 --- a/TermTk/TTkWidgets/TTkModelView/treewidget.py +++ b/TermTk/TTkWidgets/TTkModelView/treewidget.py @@ -70,7 +70,7 @@ class TTkTreeWidget(TTkAbstractScrollView): self._lineColor = kwargs.get('lineColor', TTkCfg.theme.treeLineColor) self.setMinimumHeight(1) self.setFocusPolicy(TTkK.ClickFocus) - self._rootItem = None + self._rootItem = TTkTreeWidgetItem(expanded=True) self.clear() self.setPadding(1,0,0,0) self.viewChanged.connect(self._viewChangedHandler) @@ -93,6 +93,9 @@ class TTkTreeWidget(TTkAbstractScrollView): return self.size() def clear(self): + # Remove all the widgets + for ri in self._rootItem.children(): + ri.setParent(None) if self._rootItem: self._rootItem.dataChanged.disconnect(self._refreshCache) self._rootItem = TTkTreeWidgetItem(expanded=True) diff --git a/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py b/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py index 5b1aeed7..80535de5 100644 --- a/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py +++ b/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py @@ -115,7 +115,10 @@ class TTkTreeWidgetItem(TTkAbstractItemModel): self._parentWidget = parent if self._hasWidgets: for widget in [w for w in self._widgets if w]: - parent.layout().addWidget(widget) + if parent: + parent.layout().addWidget(widget) + elif pw := widget.parentWidget(): + pw.rootLayout().removeWidget(widget) for c in self._children: c.setParent(parent)