Merge branch 'Tryibion-assetpicker-scroll'
This commit is contained in:
@@ -475,22 +475,31 @@ namespace FlaxEditor.GUI
|
||||
if (_type != ScriptType.Null)
|
||||
{
|
||||
// Show asset picker popup
|
||||
AssetSearchPopup.Show(this, Button1Rect.BottomLeft, IsValid, item =>
|
||||
var popup = AssetSearchPopup.Show(this, Button1Rect.BottomLeft, IsValid, item =>
|
||||
{
|
||||
SelectedItem = item;
|
||||
RootWindow.Focus();
|
||||
Focus();
|
||||
});
|
||||
if (_selected != null)
|
||||
{
|
||||
var selectedAssetName = Path.GetFileNameWithoutExtension(_selected.Path);
|
||||
popup.ScrollToAndHighlightItemByName(selectedAssetName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show content item picker popup
|
||||
ContentSearchPopup.Show(this, Button1Rect.BottomLeft, IsValid, item =>
|
||||
var popup = ContentSearchPopup.Show(this, Button1Rect.BottomLeft, IsValid, item =>
|
||||
{
|
||||
SelectedItem = item;
|
||||
RootWindow.Focus();
|
||||
Focus();
|
||||
});
|
||||
if (_selectedItem != null)
|
||||
{
|
||||
popup.ScrollToAndHighlightItemByName(_selectedItem.ShortName);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (_selected != null || _selectedItem != null)
|
||||
|
||||
@@ -265,6 +265,35 @@ namespace FlaxEditor.GUI
|
||||
_searchBox.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrolls the scroll panel to a specific Item
|
||||
/// </summary>
|
||||
/// <param name="item">The item to scroll to.</param>
|
||||
public void ScrollViewTo(Item item)
|
||||
{
|
||||
_scrollPanel.ScrollViewTo(item, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrolls to the item and focuses it by name.
|
||||
/// </summary>
|
||||
/// <param name="itemName">The item name.</param>
|
||||
public void ScrollToAndHighlightItemByName(string itemName)
|
||||
{
|
||||
foreach (var child in ItemsPanel.Children)
|
||||
{
|
||||
if (child is not ItemsListContextMenu.Item item)
|
||||
continue;
|
||||
if (string.Equals(item.Name, itemName, StringComparison.Ordinal))
|
||||
{
|
||||
// Highlight and scroll to item
|
||||
item.Focus();
|
||||
ScrollViewTo(item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sorts the items list (by item name by default).
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user