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 b03eae515..09127a818 100644 --- a/Source/Editor/Windows/Assets/AnimationWindow.cs +++ b/Source/Editor/Windows/Assets/AnimationWindow.cs @@ -210,20 +210,9 @@ namespace FlaxEditor.Windows.Assets var importSettingsField = typeof(PropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance); var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; group.Object(importSettingsValues); - - (proxy.Window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem); layout.Space(5); var reimportButton = layout.Button("Reimport"); diff --git a/Source/Editor/Windows/Assets/AudioClipWindow.cs b/Source/Editor/Windows/Assets/AudioClipWindow.cs index e44a4dd4c..87638f8e0 100644 --- a/Source/Editor/Windows/Assets/AudioClipWindow.cs +++ b/Source/Editor/Windows/Assets/AudioClipWindow.cs @@ -100,20 +100,9 @@ namespace FlaxEditor.Windows.Assets } base.Initialize(layout); - - (window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, window.Item as BinaryAssetItem); layout.Space(10); var reimportButton = layout.Button("Reimport"); diff --git a/Source/Editor/Windows/Assets/CubeTextureWindow.cs b/Source/Editor/Windows/Assets/CubeTextureWindow.cs index 0efcc3fde..63c697ef2 100644 --- a/Source/Editor/Windows/Assets/CubeTextureWindow.cs +++ b/Source/Editor/Windows/Assets/CubeTextureWindow.cs @@ -53,20 +53,9 @@ namespace FlaxEditor.Windows.Assets } base.Initialize(layout); - - (window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, window.Item as BinaryAssetItem); layout.Space(10); var reimportButton = layout.Button("Reimport"); diff --git a/Source/Editor/Windows/Assets/ModelWindow.cs b/Source/Editor/Windows/Assets/ModelWindow.cs index 58ee67d67..3410db0b1 100644 --- a/Source/Editor/Windows/Assets/ModelWindow.cs +++ b/Source/Editor/Windows/Assets/ModelWindow.cs @@ -759,19 +759,8 @@ namespace FlaxEditor.Windows.Assets var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; group.Object(importSettingsValues); - (proxy.Window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem); layout.Space(5); var reimportButton = layout.Button("Reimport"); diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs index e2e1bf4da..a53e7a44f 100644 --- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs +++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs @@ -1022,20 +1022,9 @@ namespace FlaxEditor.Windows.Assets var importSettingsField = typeof(ImportPropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance); var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; group.Object(importSettingsValues); - - (proxy.Window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, proxy.Window.Item as BinaryAssetItem); layout.Space(5); var reimportButton = layout.Button("Reimport"); diff --git a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs index b220a6156..cbcecf1df 100644 --- a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs +++ b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs @@ -119,20 +119,9 @@ namespace FlaxEditor.Windows.Assets } base.Initialize(layout); - - (proxy._window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // 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 3e1d436b3..43c499f6e 100644 --- a/Source/Editor/Windows/Assets/TextureWindow.cs +++ b/Source/Editor/Windows/Assets/TextureWindow.cs @@ -144,20 +144,9 @@ namespace FlaxEditor.Windows.Assets // Import settings base.Initialize(layout); - - (proxy._window.Item as BinaryAssetItem).GetImportPath(out var path); - if (!string.IsNullOrEmpty(path)) - { - layout.Space(5); - layout.Label("Import Path:"); - var textBox = layout.TextBox().TextBox; - textBox.TooltipText = "Path is not editable here."; - textBox.IsReadOnly = true; - textBox.Text = path; - layout.Space(2); - var button = layout.Button("Open Import Path in Explorer").Button; - button.Clicked += () => FileSystem.ShowFileExplorer(Path.GetDirectoryName(path)); - } + + // Creates the import path UI + Utilities.Utils.CreateImportPathUI(layout, proxy._window.Item as BinaryAssetItem); // Reimport layout.Space(10);