Macro ExpandTreeItem

From FreeCAD Documentation
Revision as of 18:23, 13 July 2018 by Mario52 (talk | contribs) (Created page with "Macro ExpandTreeItem")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

File:Macro ExpandTreeItem Macro ExpandTreeItem

Description
This macro expands selected tree and all sub trees in the tree view.

Macro version: 00.00
Last modified: 2018-07-11
Author: wmayer, UR_
Author
wmayer, UR_
Download
None
Links
Macro Version
00.00
Date last modified
2018-07-11
FreeCAD Version(s)
None
Default shortcut
None
See also
None

Description

Expands selected tree and all sub trees in the tree view.

if selected tree is already expanded this tree and all sub trees are collapsed

if there is no selection all trees are collapse True/False

Use

Copy the macro in your macro directory, create your tool bar and launch.

Script

The icon for the tool bar the .png and the .SVG

# -*- coding: utf-8 -*-
#
# Expands selected tree and all sub trees in the tree view.
# if selected tree is already expanded this tree and all sub trees are collapsed
# if there is no selection all trees are collapse True / False
#
__Title__    = "Macro ExpandTreeItem"
__Author__   = "wmayer, UR_"
__Version__  = "00.00"
__Date__     = "2018-07-11"

import PySide
from PySide import QtGui ,QtCore
from PySide.QtGui import *
from PySide.QtCore import *

def toggleAll(tree, item, collapse):
    if collapse == False:
        tree.expandItem(item)
    elif collapse == True:  
        tree.collapseItem(item)

    for i in range(item.childCount()):
        toggleAll(tree, item.child(i), collapse)

mw = Gui.getMainWindow()
trees = mw.findChildren(QtGui.QTreeWidget)

for tree in trees:
    items = tree.selectedItems()

    try:
        if items == []:
            #tree.selectAll()                          # select all object
            for obj in FreeCAD.ActiveDocument.Objects: # select obj.OutList
                if len(obj.OutList) != 0:
                    Gui.Selection.addSelection(obj)
                    items = tree.selectedItems()
    except Exception:
        None

    for item in items:
            if item.isExpanded() == True:
                toggleAll(tree, item, True)
        #            print ("collapsing")
            else:
                toggleAll(tree, item, False)
        #            print ("expanding")

Link

Objektbaum mit einem Klick komplett aufklappen?

Other languages: