Skip to content

Commit cb35803

Browse files
committed
sln explorer - file name - use ReactiveProperty
1 parent 742a45d commit cb35803

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/SharpIDE.Godot/Features/SolutionExplorer/SolutionExplorerPanel.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -350,23 +350,27 @@ private TreeItem CreateFileTreeItem(Tree tree, TreeItem parent, SharpIdeFile sha
350350
var folderCount = sharpIdeParent.Folders.Count;
351351
newStartingIndex += folderCount;
352352
}
353+
var disposableBuilder = Disposable.CreateBuilder();
354+
353355
var fileItem = tree.CreateItem(parent, newStartingIndex);
354356
fileItem.SetText(0, sharpIdeFile.Name.Value);
355357
fileItem.SetIconsForFileExtension(sharpIdeFile);
356358
if (GitColours.GetColorForGitFileStatus(sharpIdeFile.GitStatus) is { } notnullColor) fileItem.SetCustomColor(0, notnullColor);
357359
else fileItem.ClearCustomColor(0);
358360
fileItem.SharpIdeNode = sharpIdeFile;
359361

360-
Observable.EveryValueChanged(sharpIdeFile, file => file.Name.Value)
361-
.Skip(1).SubscribeOnThreadPool().ObserveOnThreadPool().SubscribeAwait(async (s, ct) =>
362+
sharpIdeFile.Name.Skip(1).SubscribeOnThreadPool().ObserveOnThreadPool()
363+
.SubscribeAwait(async (newName, ct) =>
362364
{
363365
await this.InvokeAsync(() =>
364366
{
365-
fileItem.SetText(0, s);
367+
GD.Print($"Updating file name in solution explorer to '{newName}'");
368+
fileItem.SetText(0, newName);
366369
fileItem.SetIconsForFileExtension(sharpIdeFile);
367370
});
368-
}, configureAwait: false).AddToDeferred(this);
369-
371+
}, configureAwait: false)
372+
.AddTo(ref disposableBuilder);
373+
fileItem.SharpIdeDisposable = disposableBuilder.Build();
370374
return fileItem;
371375
}
372376

0 commit comments

Comments
 (0)