dirtree: add dirtree-collapse config setting
Adds a setting to the configuration to choose at which level the folders in the dirtree are collapsed by default. In my case, this is useful because my organisation has some rather deep nesting in the folder structure, and a _lot_ of folders, and this way I can keep my dirtree uncluttered while still having all folders there if I need them. Signed-off-by: Sijmen <me@sijman.nl> Acked-by: Koni Marti <koni.marti@gmail.com>
This commit is contained in:
parent
7377b8b05a
commit
db39ca181a
5 changed files with 20 additions and 3 deletions
widgets
|
@ -327,7 +327,7 @@ func (dt *DirectoryTree) buildTree() {
|
|||
copy(dt.treeDirs, dt.dirs)
|
||||
|
||||
root := &types.Thread{Uid: 0}
|
||||
buildTree(root, sTree, 0xFFFFFF)
|
||||
dt.buildTreeNode(root, sTree, 0xFFFFFF, 1)
|
||||
|
||||
threads := make([]*types.Thread, 0)
|
||||
|
||||
|
@ -373,7 +373,7 @@ func (dt *DirectoryTree) buildTree() {
|
|||
}
|
||||
}
|
||||
|
||||
func buildTree(node *types.Thread, stree [][]string, defaultUid uint32) {
|
||||
func (dt *DirectoryTree) buildTreeNode(node *types.Thread, stree [][]string, defaultUid uint32, depth int) {
|
||||
m := make(map[string][][]string)
|
||||
for _, branch := range stree {
|
||||
if len(branch) > 1 {
|
||||
|
@ -398,7 +398,10 @@ func buildTree(node *types.Thread, stree [][]string, defaultUid uint32) {
|
|||
}
|
||||
nextNode := &types.Thread{Uid: uid}
|
||||
node.AddChild(nextNode)
|
||||
buildTree(nextNode, next, defaultUid)
|
||||
if dt.UiConfig().DirListCollapse != 0 {
|
||||
node.Hidden = depth > dt.UiConfig().DirListCollapse
|
||||
}
|
||||
dt.buildTreeNode(nextNode, next, defaultUid, depth+1)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue