Add import path UI and button to open folder in asset import settings.

This commit is contained in:
Chandler Cox
2024-12-31 12:38:29 -06:00
parent 0f847335c3
commit e53eddaba5
7 changed files with 114 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
using System; using System;
using System.Globalization; using System.Globalization;
using System.IO;
using System.Reflection; using System.Reflection;
using System.Xml; using System.Xml;
using FlaxEditor.Content; using FlaxEditor.Content;
@@ -209,9 +210,22 @@ namespace FlaxEditor.Windows.Assets
var importSettingsField = typeof(PropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance); var importSettingsField = typeof(PropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance);
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues); 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); layout.Space(5);
var reimportButton = group.Button("Reimport"); var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport(); reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport();
} }
} }

View File

@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.IO;
using System.Xml; using System.Xml;
using FlaxEditor.Content; using FlaxEditor.Content;
using FlaxEditor.Content.Import; using FlaxEditor.Content.Import;
@@ -99,6 +100,19 @@ namespace FlaxEditor.Windows.Assets
} }
base.Initialize(layout); 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); layout.Space(10);
var reimportButton = layout.Button("Reimport"); var reimportButton = layout.Button("Reimport");

View File

@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.IO;
using System.Xml; using System.Xml;
using FlaxEditor.Content; using FlaxEditor.Content;
using FlaxEditor.Content.Import; using FlaxEditor.Content.Import;
@@ -52,6 +53,19 @@ namespace FlaxEditor.Windows.Assets
} }
base.Initialize(layout); 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); layout.Space(10);
var reimportButton = layout.Button("Reimport"); var reimportButton = layout.Button("Reimport");

View File

@@ -1,6 +1,7 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -758,8 +759,21 @@ namespace FlaxEditor.Windows.Assets
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues); 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); layout.Space(5);
var reimportButton = group.Button("Reimport"); var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport(); reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport();
} }
} }

View File

@@ -1022,9 +1022,22 @@ namespace FlaxEditor.Windows.Assets
var importSettingsField = typeof(ImportPropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance); var importSettingsField = typeof(ImportPropertiesProxy).GetField("ImportSettings", BindingFlags.NonPublic | BindingFlags.Instance);
var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings }; var importSettingsValues = new ValueContainer(new ScriptMemberInfo(importSettingsField)) { proxy.ImportSettings };
group.Object(importSettingsValues); 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); layout.Space(5);
var reimportButton = group.Button("Reimport"); var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport(); reimportButton.Button.Clicked += () => ((ImportPropertiesProxy)Values[0]).Reimport();
} }
} }

View File

@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.IO;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using FlaxEditor.Content; using FlaxEditor.Content;
@@ -110,8 +111,28 @@ namespace FlaxEditor.Windows.Assets
{ {
public override void Initialize(LayoutElementsContainer layout) public override void Initialize(LayoutElementsContainer layout)
{ {
var proxy = (PropertiesProxy)Values[0];
if (proxy._window == null)
{
layout.Label("Loading...", TextAlignment.Center);
return;
}
base.Initialize(layout); 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); layout.Space(10);
var reimportButton = layout.Button("Reimport"); var reimportButton = layout.Button("Reimport");
reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport(); reimportButton.Button.Clicked += () => ((PropertiesProxy)Values[0]).Reimport();

View File

@@ -1,5 +1,6 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.IO;
using System.Xml; using System.Xml;
using FlaxEditor.Content; using FlaxEditor.Content;
using FlaxEditor.Content.Import; using FlaxEditor.Content.Import;
@@ -134,8 +135,28 @@ namespace FlaxEditor.Windows.Assets
{ {
public override void Initialize(LayoutElementsContainer layout) public override void Initialize(LayoutElementsContainer layout)
{ {
var proxy = (ImportPropertiesProxy)Values[0];
if (proxy._window == null)
{
layout.Label("Loading...", TextAlignment.Center);
return;
}
// Import settings // Import settings
base.Initialize(layout); 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 // Reimport
layout.Space(10); layout.Space(10);