Browse Source

feat: added expandAll,collapseAll to TTkTree

pull/312/head
Parodi, Eugenio 🌶 11 months ago
parent
commit
f3d8205dcb
  1. 2
      libs/pyTermTk/TermTk/TTkUiTools/properties/tree.py
  2. 1
      libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/tree.py
  3. 20
      libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/treewidget.py
  4. 10
      libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py

2
libs/pyTermTk/TermTk/TTkUiTools/properties/tree.py

@ -41,5 +41,7 @@ TTkTreeProperties = {
'itemExpanded(TTkTreeWidgetItem)' : {'name' : 'itemExpanded' , 'type': TTkTreeWidgetItem},
'itemCollapsed(TTkTreeWidgetItem)' : {'name' : 'itemCollapsed' , 'type': TTkTreeWidgetItem},
},'slots' : {
'expandAll()' : {'name': 'expandAll', 'type':None},
'collapseAll()' : {'name': 'collapseAll', 'type':None},
}
}

1
libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/tree.py

@ -42,6 +42,7 @@ class TTkTree(TTkAbstractScrollArea):
'setColumnWidth', 'resizeColumnToContents',
'sortColumn', 'sortItems',
'dragDropMode', 'setDragDropMode',
'expandAll', 'collapseAll',
# 'appendItem', 'setAlignment', 'setColumnColors', 'setColumnSize', 'setHeader',
'addTopLevelItem', 'addTopLevelItems', 'takeTopLevelItem', 'topLevelItem', 'indexOfTopLevelItem', 'selectedItems', 'clear'])
)

20
libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/treewidget.py

@ -337,6 +337,26 @@ class TTkTreeWidget(TTkAbstractScrollView):
contentSize = max(row.data[column].termWidth() for row in self._cache)
self.setColumnWidth(column, contentSize)
@pyTTkSlot()
def expandAll(self) -> None:
'''expandAll'''
if not self._rootItem:
return
self._rootItem.dataChanged.disconnect(self._refreshCache)
self._rootItem.expandAll()
self._rootItem.dataChanged.connect(self._refreshCache)
self._refreshCache()
@pyTTkSlot()
def collapseAll(self) -> None:
'''collapseAll'''
if not self._rootItem:
return
self._rootItem.dataChanged.disconnect(self._refreshCache)
self._rootItem.collapseAll()
self._rootItem.dataChanged.connect(self._refreshCache)
self._refreshCache()
def mouseDoubleClickEvent(self, evt:TTkMouseEvent) -> bool:
x,y = evt.x, evt.y
ox, oy = self.getViewOffsets()

10
libs/pyTermTk/TermTk/TTkWidgets/TTkModelView/treewidgetitem.py

@ -305,6 +305,16 @@ class TTkTreeWidgetItem(TTkAbstractItemModel):
return None
return self._widgets[col]
def expandAll(self) -> None:
for child in self._children:
child.setExpanded(True)
child.expandAll()
def collapseAll(self) -> None:
for child in self._children:
child.setExpanded(False)
child.collapseAll()
def sortData(self, col):
return self.data(col)

Loading…
Cancel
Save