Treeview and indentation


#1

hi,

it would be great if we could have a flag on TreeViewItem to hide the plus-minus and get the extra space to draw the item.

it make sense to avoid double indentation (standard indent + absence of +/-) when all the subItems are leaf nodes.

see for example the difference between Leopard’s Finder left panel and the standard Finder TreeView.


#2

Yes, good idea!


#3

any news about this?


#4

No, too busy!


#5

hi,

I’ve had a similar problem recently with a custom FileTreeView

in the examples below, I’d like to use the folder icons to open/close items

1. in this first example, I used drawTreeViewPlusMinus to draw the folder icon with a custom drawFileBrowserRow which doesn’t use icons:

in this example I have the same kind of double indent effect mentionned previously, because I can’t use the space that would be used by drawTreeViewPlusMinus() for files. The consequence is that folders and files at the same level doesn’t appear as such anymore.

2. I’ve made a second example where I use drawTreeViewPlusMinus for what it’s meant to be. and a simple variation on drawFileBrowserRow

here files and folders that are at the same level are aligned correctly, but now I’d like to get rid of the open/close arrows.

both of these solutions come close to what I want, but in both cases I’m not happy 100%happy with the output, what are my options?

I propose to:

  • move some of the code in paintRecursively into a new virtual method to allow more customisation
  • give access to the full row width during paintItem with hints about indentation and open/close area
  • separate the indent-size from the open/close handle box size.

what do you think?


#6

bump


#7

Keep bumping… I’ll find time for this eventually!