-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Highlight parent and child connections of selected node in Tree #2654
Comments
This is a pretty cool idea – I've never thought about it before. Unfortunately, I'm not sure if Tree implements what is needed. The Tree class is pretty complex as it is already, and adding more functionality that will be used just in the editor may be overkill. I guess we could draw over some lines directly in the editor Scene tree dock code if we don't want to make the Tree class even more complex. That said, this would likely be more hacky. |
I love this idea! In my opinion, the scene tree panel can get pretty confusing in complex scenes. I find myself collapsing parent nodes just to make sure I'm correctly discerning which nodes are its children or siblings. It consumes valuable time. Scene tree panel ui clarity improvement on par with the new Inspector ui improvement could make a world of difference. To not implement something like this feels like an obvious lost opportunity. |
So in your initial mockup image only the currently selected node's child connection lines have changed colors; the color change only happens for selected node. Idea: What about a color change on hover as well? |
I think that would be too distracting, since you do not need to know the child connections every time you hover over something. |
It's probably too much. I think you're right. |
This comment has been minimized.
This comment has been minimized.
Since ui changes like this affect everyone it may be best for them to have toggles in Editor Settings so they can be turned off/on at will. |
I don't like this idea. It's too complicated and not universal. For example, one node can have many signals connected to methods of different scripts (different nodes). That is, even if we highlight the connections of only the currently selected node, the lines can overlap each other (and even give the impression that there is only one line). And even if the lines do not overlap, their presence does not give you the knowledge of which signal which node is connected to. |
I did not mean signals, just highlighting who the parents and who the children. |
I agree - adding more connector lines to indicate signal relationships is a bad idea, for the reasons you described. But this proposal isn't suggesting that. This idea entails merely changing the color of existing connector lines in the tree view based on whether they're a child/parent of the currently selected node. (Again - probably wise if this was an optional setting so those opposed to the actual idea could simply leave it off.) |
I apologize, I didn't read the first post carefully, and I got the wrong impression that we are talking about signal connections. The suggestion to highlight the branch of the currently selected node is harmless enough, and I don't mind it as long as this behavior is configurable. But I'm not sure that it makes sense to highlight the children of the current node and sibling nodes, as on the mock-up, since it can be confusing. |
Nice. Less distinctive color makes a lot of sense. Good nomenclature, too - Speaking of colors, though - each different relationship type could have its own ui theme color slot. |
I'm not sure. When I first saw this proposal I didn't even notice anything on the screenshots in the OP. It took me a couple of seconds of searching for details to realize the lines were highlighted. So I'm not sure they are that much in the face to begin with. That said, color is not our only tool, theoretically. Thickness and shape can also be considered, at the very least. Also I like the idea of parent and children lines being highlighted differently. |
When switching between nodes, this will be noticeable enough. The eyes are good at distinguishing changes over time, even if the difference is not visible in the static picture. |
@dalexeev Fair enough. I want to make a prototype to see how it behaves anyway. Maybe it will give us a better idea how much accent to put onto these lines. |
Okay, after some playing around with it I think that:
Here's an example of this in action. Don't mind that lines look a bit weird, there are small problems with them being semi-transparent which I didn't bother addressing for a proof of concept. 2021-05-02_18-25-20.mp4On a side note, breadcrumbs can be useful to help show the depth of individual selected nodes. Many code editors employ such UI, and also tools dealing with XML/HTML such as browser dev tools. This is what I mean: Something like this can be shown above the tree in the Scene dock. |
Nice! Did you try only thickening the direct parent node of the selected node and then the parents above that with a normal thickness? Think it might look a bit more balanced. |
@boukew99 Sorry, no, but I think it won't look much different than if we don't highlight further parents at all. Check out the PR, I've improved the looks more for the final version. Hope you like it 🙂 |
Okay :), just kinda wanted to experiment with it myself, but don't know how. Excited to try it out! |
Describe the project you are working on
A small drawing app
Describe the problem or limitation you are having in your project
When there is a big nested SceneTree, it can be hard to see what the parent child connections are (especially after scrolling). Right now I solve it by collapsing to get a better overview. Then I can reorganize the SceneTree by drag and dropping nodes under the right parents.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
A simple highlight of the parent child connections can overcome this problem.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If this enhancement will not be used often, can it be worked around with a few lines of script?
It is editor, so no?
Is there a reason why this should be core and not an add-on in the asset library?
IMO it adds more visual clarity to Tree (SceneTree and FileSystem), which is beneficial to all users.
The text was updated successfully, but these errors were encountered: