All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Initial commit
- Added GraphSettings copying procedure
- Refactored SettingsPRovider code to be more generic
- removed partial classes for our main models (GraphModel & NodeModel) as this caused serialization errors
- re-added editor specific code back to GraphModel and NodeModel and added platform dependent compilation tags (#IF UNITY_EDITOR) where needed
- added CreateAssetMenu attribute to GraphModel so no graph items can be create by right clicking in the project window.
- removed extraction of [Space] and [Header] properties as this is no longer needed since UIElements/UIToolkti now fully supports PropertyDrawers
- fixed missing references/connections when copy & pasting nodes
- fixed selected nodes text appearing even on a new graph
- renamed [Output] to [Port] attribute to avoid misleading naming. -renamed former [Port] attribute to [PortBase]
- added a GroupCommentNode that allows to frame/group a section of nodes that can also be moved together
- made some API changes to give utility nodes even more flexibility
- added ShouldColorizeBackground method to IUtilityNode interface
- added Undo capabilities when changing node dimensions for the GroupCommentNode
- potential fix for wrong window size of the context menu
- created a workaround for node references losing their "live connection" after being added as a reference
- fixed possible null ref in GroupCommentNode
- added ability to pan the view with alt/or options key + left click
- added ability to rename ports via the [Node] or [Port] attribute
- added a more graceful fallback if the template GraphSettings file could not be retrieved
- refactored create dialog in the GraphView to use EditorUtility.SaveFilePanel so the user can decide & customize the location of new graphs
- Added a custom stylesheet option in the GraphSettings so all visuals can be customized using a custom .uss file
- Fixed losing right click & key down events after docking the window
- Added Auto reloading the graph after exiting playmode, so we don't lose our VectorImage contents
- Refactored property and field visibility
- class object fields can now utilize the GraphDisplay property correctly
- added createGroup option to GraphDisplay attribute to prevent creating foldouts if this is not desireable
- Fixed wrong property visibility
- groups for fields are now only created if they have properties inside them that should be drawn
- Added initial NodeEditor functionality. Add CustomNodeEditorAttribute to a class inheriting from NodeEditor and set the nodeType. Works very similar to CustomEditor for mono behaviors.
- Extended NodeEditor functionality, so that derived nodetypes can also receive the same inspector. Set the bool property in CustomNodeEditorAttribute to true to enable this.
- Added ability to show & hide the inspector panel
- Added tooltips for command panel buttons
- Added "nodeName" field for NodeAttribute so you can customize the nodeName to your liking
- Removed Save dialog as it is legacy and not needed
- Added new way to handle the Settings file, that avoids the need to store it in the Assets folder (you can reach the graph settings via ProjectSettings)
- Settings can now also be reverted on a per property basis or alltogether
- Removed helper scripts that are not longer needed
- Removed old way to traverse SerializedProperty (was faulty) and extended CreateGenericUI method
- Added ability for EditableLabelFields to be exited via escape or return
- Fixed settings file not serializing correctly.
- Added workaround for bugged KeyDownEvent by implementing global key events
- Fixed bug in group creation logic that could lead to properties being part of groups because their names were similar
- Fixed error when using undo after a node was deleted
- Removed old keydown recognition system
- fixed a visibility related null ref in GraphModelEditor
- removed faulty isExpanded property from foldouts (they are just claused on default now)
- fixed HasSelectedEdges check that worked with the wrong field
- fixed long foldout label that prevented node dragging
- implemented custom foldout states for groups/foldouts and indepedently from nodeView and inspector. This way a graph will always keep track over every expanded state for each node.
- implemented empty method in graphController to extend for new EdgeDrop action
- Catered for special case where a field is a managedReference to avoid double headers
- fixed case where a group would not be drawn/ appear correctly
- fixed group label being cut off
- added a context menu when dropping an edge into empty space
- Fixed port lists that could become unresponsive
- fixed possible null ref in managed references group handling
- added renaming action as a shortcut and menu action (F2) for a selected node
- refactored key down detection system
- fixed GraphSettings not being created on first run
- fixed selection info not updating properly #1
- fixed issue with change callback handler for property fields in settings file
- Removed unnecessary frame delay when reloading a graph #2
- Removed Unbind call when clearing a graph
- PortListView entries will now update their name, if the referenced node name is changed
- added new edge drop window based on searchwindow instead of GenericMenu
- added CustomContextMenu attribute to customize the default context menu #3
- added CustomEdgeDropMenu attribute to customize the default edge drop menu
- Fixed possible ArgumentException caused by the new ContextMenu architecture
- Added createInputPort to [Node] attribute. This allows to hide the input port for a node. #6
- Added comments to ContextMenu, EdgeDropMenu so it is easier to understand & extend
- Added ShouldColorizeBackground that can be overridden in NodeEditors to prevent the background from being automatically colorized
- Fixed double click on asset not opening graph, when window was already open. #7
- Some refactoring to opening a graph externally
- Graphs can now be created in a scene context and use scene references. To create a graph add the MonoGraphModel component to a gameobject.
- Added ability to rename the GraphWindow #11
- Major refactoring and minor bugfixes
- Added more stable method to retrieve all attributes for a serialized property. #14
- Fixed wrong window size for all SearchWindows #10
- wrapped UnityEditor in #if UNITY_EDITOR preprocessor directives in all graph models
- Added integrated Examples (Samples~). To use: Copy contents from Samples~ folder into you Assets project.
- Added ability to add new window/ graph types to the graph window lookup
- Made it easier to derive custom ScriptableGraph models
- Fixed issue with undoing changes
- Fixed port list connections not regenerating when adding a new item
- Fixed StackOverflow errors for GroupCommentNodes when they are stacked into each other #20
- Fixed wrong positioning of Nodes that are part of a GroupCommentNode #21
- Nodes are now only included in a GroupCommentNode if they are fully contained and not just overlapping #22
- Removed janky workaround for re-initializing a graph after playmode in exchange for a better solution. Fixes: #23
- Fixed GroupCommentNode Headline cutting off text. Fixes: #24
- Fixed Frame action being triggerd while in an editable VisualElement. Fixes: #27
- Added customization of the hierarchical layer for GroupCommentNodes. Fixes: #25
- Fixed removing entire nodes when hitting the delete key while an input field was focussed.
- Fixed GraphDisplayAttribute createGroup behavior
- Added new sample project to easily get the graph window up and running