Remove dynamic tooltip for cut/copy actions that displays all
selected node names:
- This inline textual information is hard to process as a user.
- Avoid binding to and iteration over the selection.
Re-write the computability status of the current node selection
as properties within the node menu component.
Note that this should be further improved to better scale with the size
of the selection, as it requires to traverse the graph for each node.
Avoid having the node context menu always evaluating the current
state of the selected nodes for its own display, by dynamically
creating it on demand with a Loader.
Use callbacks for recomputing/resubmitting actions, instead of
storing state in the UI components.
Switch selection management backend to a QItemSelectionModel,
while keeping the current 'selectedNodes' API for now.
Use DelegateSectionBox for node selection in the graph, and
rewrite the handling of node selection / displacement.
- SelectionBox: generic Selection box component.
- DelegateSelectionBox: specialized SelectionBox to select model delegates
from an instantiator (Repeater, ListView).
Also Introduce a Geom2D helper class to provide missing features for
intersection testing in QML.
Implementing this method allows to use QObjectListModel
in combination with other Qt classes that can act on a model
(eg: QSelectionItemModel, QSortFilterProxyModel...).
Fixed the issue where navigation arrows on the Filtering was allowing to set an index even when the search had null as the result.
Accepted signal on the Seach invokes the function rather than invoking the sigal for the button
SearchBar gets the clear text feature allowing text to be cleared with a single click.
Added accepted signal for the Searchbar with Return and Enter key Press
If unexposed attributes (ie. attributes that are located in the lower
side of a node, and hidden by default) are connected, they are meant
to remain visible even if the lower part of that node is hidden.
This was working fine for any attribute that was not a `ListAttribute`,
as the check was made on whether the attribute's value was a link to
another attribute. For `ListAttributes`, whose value is actually a list
of values, this was not working as nested links were not checked.
Instead of relying on the `isLink` property, we now use `isLinkNested`:
for regular attributes, this is equivalent to using `isLink`, but for
`ListAttributes`, the full list of values will be checked.
The color selector in the Graph Editor provides a quick way to color nodes with predefined palette of colors.
Added Command to allow the Coloring to be undone and redone using QUndoStack