diff --git a/Scripts/Editor/NodeEditor.cs b/Scripts/Editor/NodeEditor.cs
index 03a8ee0..edf66d6 100644
--- a/Scripts/Editor/NodeEditor.cs
+++ b/Scripts/Editor/NodeEditor.cs
@@ -129,33 +129,14 @@ namespace XNodeEditor {
public void Rename(string newName) {
if (newName == null || newName.Trim() == "") newName = NodeEditorUtilities.NodeDefaultName(target.GetType());
target.name = newName;
- TriggerRenameNotifications(target);
+ OnRename();
+ AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
}
- ///
- /// Triggers OnRename on all nodes in the graph after a node's name changes,
- /// reimporting asset files for all subsequently renamed nodes.
- ///
- public static void TriggerRenameNotifications(XNode.Node renamedNode) {
- List graphNodes = renamedNode.graph.nodes;
- string[] oldNodeNames = new string[graphNodes.Count];
- // Notify all nodes, allow them to further change names accordingly
- for (int i = 0; i < graphNodes.Count; i++) {
- XNode.Node node = graphNodes[i];
- oldNodeNames[i] = node.name;
- node.OnRename(renamedNode);
- }
-
- // After all user-driven modifications have been resolved, update all assets whose node names have changed
- // (And always reimport the node which got renamed in the first place)
- for (int i = 0; i < graphNodes.Count; i++) {
- if (graphNodes[i] == renamedNode || graphNodes[i].name != oldNodeNames[i]) {
- AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(graphNodes[i]));
- }
- }
- }
+ /// Called after this node's name has changed.
+ public virtual void OnRename() { }
+
-
[AttributeUsage(AttributeTargets.Class)]
public class CustomNodeEditorAttribute : Attribute,
XNodeEditor.Internal.NodeEditorBase.INodeEditorAttrib {
diff --git a/Scripts/Editor/RenamePopup.cs b/Scripts/Editor/RenamePopup.cs
index 72d76fa..f245d4e 100644
--- a/Scripts/Editor/RenamePopup.cs
+++ b/Scripts/Editor/RenamePopup.cs
@@ -49,7 +49,8 @@ namespace XNodeEditor {
if (input == null || input.Trim() == "") {
if (GUILayout.Button("Revert to default") || (e.isKey && e.keyCode == KeyCode.Return)) {
target.name = NodeEditorUtilities.NodeDefaultName(target.GetType());
- NodeEditor.TriggerRenameNotifications((XNode.Node)target);
+ NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename();
+ AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
Close();
target.TriggerOnValidate();
}
@@ -58,7 +59,8 @@ namespace XNodeEditor {
else {
if (GUILayout.Button("Apply") || (e.isKey && e.keyCode == KeyCode.Return)) {
target.name = input;
- NodeEditor.TriggerRenameNotifications((XNode.Node)target);
+ NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename();
+ AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
Close();
target.TriggerOnValidate();
}
diff --git a/Scripts/Node.cs b/Scripts/Node.cs
index 6398c1e..a07679a 100644
--- a/Scripts/Node.cs
+++ b/Scripts/Node.cs
@@ -254,9 +254,6 @@ namespace XNode {
/// Called after a connection is removed from this port
/// Output or Input
public virtual void OnRemoveConnection(NodePort port) { }
-
- /// Called after a node's name has changed.
- public virtual void OnRename(Node node) { }
/// Disconnect everything from this node
public void ClearConnections() {