diff --git a/Source/Editor/Utilities/Utils.cs b/Source/Editor/Utilities/Utils.cs
index 8d73abf4d..43d81ee1e 100644
--- a/Source/Editor/Utilities/Utils.cs
+++ b/Source/Editor/Utilities/Utils.cs
@@ -383,6 +383,28 @@ namespace FlaxEditor.Utilities
File.Delete(file);
}
+ ///
+ /// Creates an Import path ui that show the asset import path and adds a button to show the folder in the file system.
+ ///
+ /// The parent layout container.
+ /// The asset item to get the import path of.
+ public static void CreateImportPathUI(CustomEditors.LayoutElementsContainer parentLayout, Content.BinaryAssetItem assetItem)
+ {
+ assetItem.GetImportPath(out var path);
+ if (!string.IsNullOrEmpty(path))
+ {
+ parentLayout.Space(5);
+ parentLayout.Label("Import Path:");
+ var textBox = parentLayout.TextBox().TextBox;
+ textBox.TooltipText = "Path is not editable here.";
+ textBox.IsReadOnly = true;
+ textBox.Text = path;
+ parentLayout.Space(2);
+ var button = parentLayout.Button(Constants.ShowInExplorer).Button;
+ button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path));
+ }
+ }
+
///
/// Copies the directory. Supports subdirectories copy with files override option.
///
diff --git a/Source/Editor/Windows/Assets/AnimationWindow.cs b/Source/Editor/Windows/Assets/AnimationWindow.cs
index d0e6a3fe9..09127a818 100644
--- a/Source/Editor/Windows/Assets/AnimationWindow.cs
+++ b/Source/Editor/Windows/Assets/AnimationWindow.cs
@@ -2,6 +2,7 @@
using System;
using System.Globalization;
+using System.IO;
using System.Reflection;
using System.Xml;
using FlaxEditor.Content;
@@ -210,8 +211,11 @@ namespace FlaxEditor.Windows.Assets
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem);
+
layout.Space(5);
- var reimportButton = group.Button("Reimport");
+ var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport();
}
}
diff --git a/Source/Editor/Windows/Assets/AudioClipWindow.cs b/Source/Editor/Windows/Assets/AudioClipWindow.cs
index 998073858..87638f8e0 100644
--- a/Source/Editor/Windows/Assets/AudioClipWindow.cs
+++ b/Source/Editor/Windows/Assets/AudioClipWindow.cs
@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
+using System.IO;
using System.Xml;
using FlaxEditor.Content;
using FlaxEditor.Content.Import;
@@ -100,6 +101,9 @@ namespace FlaxEditor.Windows.Assets
base.Initialize(layout);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, window.Item as BinaryAssetItem);
+
layout.Space(10);
var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport();
diff --git a/Source/Editor/Windows/Assets/CubeTextureWindow.cs b/Source/Editor/Windows/Assets/CubeTextureWindow.cs
index 56585bba8..63c697ef2 100644
--- a/Source/Editor/Windows/Assets/CubeTextureWindow.cs
+++ b/Source/Editor/Windows/Assets/CubeTextureWindow.cs
@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
+using System.IO;
using System.Xml;
using FlaxEditor.Content;
using FlaxEditor.Content.Import;
@@ -53,6 +54,9 @@ namespace FlaxEditor.Windows.Assets
base.Initialize(layout);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, window.Item as BinaryAssetItem);
+
layout.Space(10);
var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport();
diff --git a/Source/Editor/Windows/Assets/ModelWindow.cs b/Source/Editor/Windows/Assets/ModelWindow.cs
index c3e285973..3410db0b1 100644
--- a/Source/Editor/Windows/Assets/ModelWindow.cs
+++ b/Source/Editor/Windows/Assets/ModelWindow.cs
@@ -1,6 +1,7 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
@@ -758,8 +759,11 @@ namespace FlaxEditor.Windows.Assets
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem);
+
layout.Space(5);
- var reimportButton = group.Button("Reimport");
+ var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport();
}
}
diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
index 671512584..a53e7a44f 100644
--- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
+++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
@@ -1023,8 +1023,11 @@ namespace FlaxEditor.Windows.Assets
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem);
+
layout.Space(5);
- var reimportButton = group.Button("Reimport");
+ var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport();
}
}
diff --git a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs
index 9601555d2..cbcecf1df 100644
--- a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs
+++ b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs
@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
+using System.IO;
using System.Linq;
using System.Xml;
using FlaxEditor.Content;
@@ -110,7 +111,17 @@ namespace FlaxEditor.Windows.Assets
{
public override void Initialize(LayoutElementsContainer layout)
{
+ var proxy = (PropertiesProxy)Values[0];
+ if (proxy._window == null)
+ {
+ layout.Label("Loading...", TextAlignment.Center);
+ return;
+ }
+
base.Initialize(layout);
+
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, proxy._window.Item as BinaryAssetItem);
layout.Space(10);
var reimportButton = layout.Button("Reimport");
diff --git a/Source/Editor/Windows/Assets/TextureWindow.cs b/Source/Editor/Windows/Assets/TextureWindow.cs
index 68f138978..43c499f6e 100644
--- a/Source/Editor/Windows/Assets/TextureWindow.cs
+++ b/Source/Editor/Windows/Assets/TextureWindow.cs
@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
+using System.IO;
using System.Xml;
using FlaxEditor.Content;
using FlaxEditor.Content.Import;
@@ -134,9 +135,19 @@ namespace FlaxEditor.Windows.Assets
{
public override void Initialize(LayoutElementsContainer layout)
{
+ var proxy = (ImportPropertiesProxy)Values[0];
+ if (proxy._window == null)
+ {
+ layout.Label("Loading...", TextAlignment.Center);
+ return;
+ }
+
// Import settings
base.Initialize(layout);
+ // Creates the import path UI
+ Utilities.Utils.CreateImportPathUI(layout, proxy._window.Item as BinaryAssetItem);
+
// Reimport
layout.Space(10);
var reimportButton = layout.Button("Reimport");