From e53eddaba564e4c34aca7074212e5a56f35f43a6 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Tue, 31 Dec 2024 12:38:29 -0600 Subject: [PATCH 1/3] Add import path UI and button to open folder in asset import settings. --- .../Editor/Windows/Assets/AnimationWindow.cs | 16 +++++++++++++- .../Editor/Windows/Assets/AudioClipWindow.cs | 14 +++++++++++++ .../Windows/Assets/CubeTextureWindow.cs | 14 +++++++++++++ Source/Editor/Windows/Assets/ModelWindow.cs | 16 +++++++++++++- .../Windows/Assets/SkinnedModelWindow.cs | 15 ++++++++++++- .../Windows/Assets/SpriteAtlasWindow.cs | 21 +++++++++++++++++++ Source/Editor/Windows/Assets/TextureWindow.cs | 21 +++++++++++++++++++ 7 files changed, 114 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Windows/Assets/AnimationWindow.cs b/Source/Editor/Windows/Assets/AnimationWindow.cs index d0e6a3fe9..3c9f2c886 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; @@ -209,9 +210,22 @@ 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.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)); + } 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..be9e64ee4 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; @@ -99,6 +100,19 @@ 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.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)); + } 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 56585bba8..13d3a9398 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; @@ -52,6 +53,19 @@ 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.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)); + } 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 c3e285973..0d4863cd1 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,21 @@ 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.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)); + } + 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..27f14af5c 100644 --- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs +++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs @@ -1022,9 +1022,22 @@ 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.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)); + } 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..73646b660 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,8 +111,28 @@ 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); + (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.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)); + } + layout.Space(10); var reimportButton = layout.Button("Reimport"); reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport(); diff --git a/Source/Editor/Windows/Assets/TextureWindow.cs b/Source/Editor/Windows/Assets/TextureWindow.cs index 68f138978..c1500adf2 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,8 +135,28 @@ 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); + + (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.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)); + } // Reimport layout.Space(10); From a313db22d25721925934a4f2e3b35aed519697a5 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Tue, 31 Dec 2024 12:52:54 -0600 Subject: [PATCH 2/3] Add tooltip text for path to let user know it is not editable. --- Source/Editor/Windows/Assets/AnimationWindow.cs | 1 + Source/Editor/Windows/Assets/AudioClipWindow.cs | 1 + Source/Editor/Windows/Assets/CubeTextureWindow.cs | 1 + Source/Editor/Windows/Assets/ModelWindow.cs | 1 + Source/Editor/Windows/Assets/SkinnedModelWindow.cs | 1 + Source/Editor/Windows/Assets/SpriteAtlasWindow.cs | 1 + Source/Editor/Windows/Assets/TextureWindow.cs | 1 + 7 files changed, 7 insertions(+) diff --git a/Source/Editor/Windows/Assets/AnimationWindow.cs b/Source/Editor/Windows/Assets/AnimationWindow.cs index 3c9f2c886..b03eae515 100644 --- a/Source/Editor/Windows/Assets/AnimationWindow.cs +++ b/Source/Editor/Windows/Assets/AnimationWindow.cs @@ -217,6 +217,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/AudioClipWindow.cs b/Source/Editor/Windows/Assets/AudioClipWindow.cs index be9e64ee4..e44a4dd4c 100644 --- a/Source/Editor/Windows/Assets/AudioClipWindow.cs +++ b/Source/Editor/Windows/Assets/AudioClipWindow.cs @@ -107,6 +107,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/CubeTextureWindow.cs b/Source/Editor/Windows/Assets/CubeTextureWindow.cs index 13d3a9398..0efcc3fde 100644 --- a/Source/Editor/Windows/Assets/CubeTextureWindow.cs +++ b/Source/Editor/Windows/Assets/CubeTextureWindow.cs @@ -60,6 +60,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/ModelWindow.cs b/Source/Editor/Windows/Assets/ModelWindow.cs index 0d4863cd1..58ee67d67 100644 --- a/Source/Editor/Windows/Assets/ModelWindow.cs +++ b/Source/Editor/Windows/Assets/ModelWindow.cs @@ -765,6 +765,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs index 27f14af5c..e2e1bf4da 100644 --- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs +++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs @@ -1029,6 +1029,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs index 73646b660..b220a6156 100644 --- a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs +++ b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs @@ -126,6 +126,7 @@ namespace FlaxEditor.Windows.Assets 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); diff --git a/Source/Editor/Windows/Assets/TextureWindow.cs b/Source/Editor/Windows/Assets/TextureWindow.cs index c1500adf2..3e1d436b3 100644 --- a/Source/Editor/Windows/Assets/TextureWindow.cs +++ b/Source/Editor/Windows/Assets/TextureWindow.cs @@ -151,6 +151,7 @@ namespace FlaxEditor.Windows.Assets 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); From 99ba59d02a50fe6c093dfde2696aa58073476af0 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 6 Jan 2025 15:58:09 -0600 Subject: [PATCH 3/3] Change to use static method for import path ui. --- Source/Editor/Utilities/Utils.cs | 22 +++++++++++++++++++ .../Editor/Windows/Assets/AnimationWindow.cs | 17 +++----------- .../Editor/Windows/Assets/AudioClipWindow.cs | 17 +++----------- .../Windows/Assets/CubeTextureWindow.cs | 17 +++----------- Source/Editor/Windows/Assets/ModelWindow.cs | 15 ++----------- .../Windows/Assets/SkinnedModelWindow.cs | 17 +++----------- .../Windows/Assets/SpriteAtlasWindow.cs | 17 +++----------- Source/Editor/Windows/Assets/TextureWindow.cs | 17 +++----------- 8 files changed, 42 insertions(+), 97 deletions(-) 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);