Most Understand graphs allow toggling options (like visibility or highlights) per node. These node options are listed in the sidebar.



The graph here is from the GitAhead sample project. To generate it, find dep/libgit2/libgit2/deps/http-parser/http_parser.c, right click, and select "File: http_parser.c "->"Graphical Views"->“Calls & Called By" and make sure "Variant: Internal" is selected from the Variant menu.


Right now, all the options are disabled. Options become enabled based on selected nodes. For instance, selecting http_should_keep_alive enables these options:



Highlight Edges to Focus on Parts of the Graph
Try highlighting edges in of http_should_keep_alive.



Highlighted edges are bolded, and unhighlighted edges become dashed. Nodes that are actively highlighting have a blue outline ( blue fill with white text in light mode ), and nodes that are connected to a highlighted edge have a grey fill. Now that some part of the graph is highlighted, more options are available.


More than one node can be highlighted at a time. For example, try selecting http_parser_execute and highlighting edges out.



Clicking “Clear All Highlights” will remove all highlights, but won't modify selected 'Hide' rules. Now, let's talk about hiding nodes.


Hide Nodes to Remove Distractions
“Hide Nodes with No Highlighted Edges” will remove nodes from the graph that are not connected to any highlighted edges. Unhighlighted edges connecting the remaining nodes will still be visible.



There is also a control “Hide Unhighlighted Edges” that hides any unhighlighted edges.



Individual nodes can be hidden with the “Hide Selected Nodes” button.



Specific nodes that have been hidden with “Hide Selected Nodes” can be restored by clicking the “Show Hidden Nodes” button. Or, the menu next to the “Show Hidden Nodes” button lists all the hidden nodes, and specific nodes can be restored by checking them.



Undo/Redo/Restore Defaults
It’s easy to get lost with all the different options available. The “Restore Defaults” button is part of the top toolbar and will bring the graph back to its initial state.


Undo and Redo are also available. Undo can even undo “restore defaults.”


Expand Nodes to View Children
Some nodes have nodes that can be expanded. A node that can be expanded has 'children'. The default graph style shows any nodes with children as 3D boxes. Showing a node's children turns it into a subcluster. If you would like to follow along, the next graph is another Calls and Callby graph, but this time we'll be using src/ui/AdvancedSearchWidget.cpp



In this graph, we can see that DateEdit is a 3D box and therefor has children. We can double click DateEdit or click Show Children.



Clusters control edge visibility. Edges into DateEdit can be highlighted for visibility.


If you want to see more information about what is going on inside DateEdit, make sure DateEdit is selected and then click "Show Edges Between Children".


Edges external to DateEdit can be aggregated. Aggregated edges are still drawn, but end at the cluster boundary.


While not necessary on graphs of this size, for larger graphs, knowing how to use the graph sidebar can make digesting Understand graphs much easier.