More adjustment for content finder visibility
This commit is contained in:
@@ -51,7 +51,7 @@ namespace FlaxEditor.Modules
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The content finding context menu.
|
/// The content finding context menu.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ContentFinder Finder => _finder ?? (_finder = new ContentFinder());
|
internal ContentFinder Finder => _finder ?? (_finder = new ContentFinder());
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="ContentFindingModule"/> class.
|
/// Initializes a new instance of the <see cref="ContentFindingModule"/> class.
|
||||||
|
|||||||
@@ -14,11 +14,12 @@ namespace FlaxEditor.Windows.Search
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="FlaxEditor.GUI.ContextMenu.ContextMenuBase" />
|
/// <seealso cref="FlaxEditor.GUI.ContextMenu.ContextMenuBase" />
|
||||||
[HideInEditor]
|
[HideInEditor]
|
||||||
public class ContentFinder : ContextMenuBase
|
internal class ContentFinder : ContextMenuBase
|
||||||
{
|
{
|
||||||
private Panel _resultPanel;
|
private Panel _resultPanel;
|
||||||
private TextBox _searchBox;
|
private TextBox _searchBox;
|
||||||
private SearchItem _selectedItem;
|
private SearchItem _selectedItem;
|
||||||
|
private List<SearchItem> _matchedItems = new List<SearchItem>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the height per item.
|
/// Gets or sets the height per item.
|
||||||
@@ -33,12 +34,12 @@ namespace FlaxEditor.Windows.Search
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the selected item.
|
/// Gets or sets the selected item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SearchItem SelectedItem
|
internal SearchItem SelectedItem
|
||||||
{
|
{
|
||||||
get => _selectedItem;
|
get => _selectedItem;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value == _selectedItem || (value != null && !MatchedItems.Contains(value)))
|
if (value == _selectedItem || (value != null && !_matchedItems.Contains(value)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (_selectedItem != null)
|
if (_selectedItem != null)
|
||||||
@@ -51,8 +52,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
if (_selectedItem != null)
|
if (_selectedItem != null)
|
||||||
{
|
{
|
||||||
_selectedItem.BackgroundColor = Style.Current.BackgroundSelected;
|
_selectedItem.BackgroundColor = Style.Current.BackgroundSelected;
|
||||||
|
if (_matchedItems.Count > VisibleItemCount)
|
||||||
if (MatchedItems.Count > VisibleItemCount)
|
|
||||||
{
|
{
|
||||||
_resultPanel.VScrollBar.SmoothingScale = 0;
|
_resultPanel.VScrollBar.SmoothingScale = 0;
|
||||||
_resultPanel.ScrollViewTo(_selectedItem);
|
_resultPanel.ScrollViewTo(_selectedItem);
|
||||||
@@ -65,8 +65,6 @@ namespace FlaxEditor.Windows.Search
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets actual matched item list.
|
/// Gets actual matched item list.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<SearchItem> MatchedItems { get; } = new List<SearchItem>();
|
|
||||||
|
|
||||||
internal bool Hand;
|
internal bool Hand;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -97,7 +95,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
|
|
||||||
private void OnTextChanged()
|
private void OnTextChanged()
|
||||||
{
|
{
|
||||||
MatchedItems.Clear();
|
_matchedItems.Clear();
|
||||||
SelectedItem = null;
|
SelectedItem = null;
|
||||||
|
|
||||||
var results = Editor.Instance.ContentFinding.Search(_searchBox.Text);
|
var results = Editor.Instance.ContentFinding.Search(_searchBox.Text);
|
||||||
@@ -149,7 +147,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
searchItem = new SearchItem(item.Name, item.Type, item.Item, this, itemsWidth, itemHeight);
|
searchItem = new SearchItem(item.Name, item.Type, item.Item, this, itemsWidth, itemHeight);
|
||||||
searchItem.Y = i * itemHeight;
|
searchItem.Y = i * itemHeight;
|
||||||
searchItem.Parent = _resultPanel;
|
searchItem.Parent = _resultPanel;
|
||||||
MatchedItems.Add(searchItem);
|
_matchedItems.Add(searchItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.ClientSize = new Vector2(window.ClientSize.X, Height * dpiScale);
|
window.ClientSize = new Vector2(window.ClientSize.X, Height * dpiScale);
|
||||||
@@ -184,30 +182,30 @@ namespace FlaxEditor.Windows.Search
|
|||||||
{
|
{
|
||||||
case KeyboardKeys.ArrowDown:
|
case KeyboardKeys.ArrowDown:
|
||||||
{
|
{
|
||||||
if (MatchedItems.Count == 0)
|
if (_matchedItems.Count == 0)
|
||||||
return true;
|
return true;
|
||||||
int currentPos;
|
int currentPos;
|
||||||
if (_selectedItem != null)
|
if (_selectedItem != null)
|
||||||
{
|
{
|
||||||
currentPos = MatchedItems.IndexOf(_selectedItem) + 1;
|
currentPos = _matchedItems.IndexOf(_selectedItem) + 1;
|
||||||
if (currentPos >= MatchedItems.Count)
|
if (currentPos >= _matchedItems.Count)
|
||||||
currentPos--;
|
currentPos--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
currentPos = 0;
|
currentPos = 0;
|
||||||
}
|
}
|
||||||
SelectedItem = MatchedItems[currentPos];
|
SelectedItem = _matchedItems[currentPos];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case KeyboardKeys.ArrowUp:
|
case KeyboardKeys.ArrowUp:
|
||||||
{
|
{
|
||||||
if (MatchedItems.Count == 0)
|
if (_matchedItems.Count == 0)
|
||||||
return true;
|
return true;
|
||||||
int currentPos;
|
int currentPos;
|
||||||
if (_selectedItem != null)
|
if (_selectedItem != null)
|
||||||
{
|
{
|
||||||
currentPos = MatchedItems.IndexOf(_selectedItem) - 1;
|
currentPos = _matchedItems.IndexOf(_selectedItem) - 1;
|
||||||
if (currentPos < 0)
|
if (currentPos < 0)
|
||||||
currentPos = 0;
|
currentPos = 0;
|
||||||
}
|
}
|
||||||
@@ -215,7 +213,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
{
|
{
|
||||||
currentPos = 0;
|
currentPos = 0;
|
||||||
}
|
}
|
||||||
SelectedItem = MatchedItems[currentPos];
|
SelectedItem = _matchedItems[currentPos];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case KeyboardKeys.Return:
|
case KeyboardKeys.Return:
|
||||||
@@ -225,10 +223,10 @@ namespace FlaxEditor.Windows.Search
|
|||||||
Hide();
|
Hide();
|
||||||
Editor.Instance.ContentFinding.Open(_selectedItem.Item);
|
Editor.Instance.ContentFinding.Open(_selectedItem.Item);
|
||||||
}
|
}
|
||||||
else if (_selectedItem == null && _searchBox.TextLength != 0 && MatchedItems.Count != 0)
|
else if (_selectedItem == null && _searchBox.TextLength != 0 && _matchedItems.Count != 0)
|
||||||
{
|
{
|
||||||
Hide();
|
Hide();
|
||||||
Editor.Instance.ContentFinding.Open(MatchedItems[0].Item);
|
Editor.Instance.ContentFinding.Open(_matchedItems[0].Item);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
/// The <see cref="ContentFinder"/> item.
|
/// The <see cref="ContentFinder"/> item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HideInEditor]
|
[HideInEditor]
|
||||||
public class SearchItem : ContainerControl
|
internal class SearchItem : ContainerControl
|
||||||
{
|
{
|
||||||
private ContentFinder _finder;
|
private ContentFinder _finder;
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ namespace FlaxEditor.Windows.Search
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="FlaxEditor.Windows.Search.SearchItem" />
|
/// <seealso cref="FlaxEditor.Windows.Search.SearchItem" />
|
||||||
/// <seealso cref="FlaxEditor.Content.IContentItemOwner" />
|
/// <seealso cref="FlaxEditor.Content.IContentItemOwner" />
|
||||||
public class AssetSearchItem : SearchItem, IContentItemOwner
|
internal class AssetSearchItem : SearchItem, IContentItemOwner
|
||||||
{
|
{
|
||||||
private AssetItem _asset;
|
private AssetItem _asset;
|
||||||
private FlaxEditor.GUI.ContextMenu.ContextMenu _cm;
|
private FlaxEditor.GUI.ContextMenu.ContextMenu _cm;
|
||||||
|
|||||||
Reference in New Issue
Block a user