mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Node picker - Put data model nodes at the top, then static, then alphabetical
This commit is contained in:
parent
928d9711af
commit
6638eae126
@ -38,7 +38,8 @@
|
||||
Grid.Row="1"
|
||||
Items="{CompiledBinding Categories}"
|
||||
IsVisible="{CompiledBinding Categories.Count}"
|
||||
SelectedItem="{CompiledBinding SelectedNode}">
|
||||
SelectedItem="{CompiledBinding SelectedNode}"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
|
||||
<TreeView.Styles>
|
||||
<Style Selector="TreeViewItem">
|
||||
<Setter Property="IsExpanded" Value="True" />
|
||||
@ -47,8 +48,8 @@
|
||||
<TreeView.DataTemplates>
|
||||
<TreeDataTemplate DataType="{x:Type core:NodeData}">
|
||||
<StackPanel Margin="-15 1 0 1" Background="Transparent" PointerReleased="InputElement_OnPointerReleased">
|
||||
<TextBlock Classes="BodyStrongTextBlockStyle" Text="{Binding Name}"></TextBlock>
|
||||
<TextBlock Foreground="{DynamicResource TextFillColorSecondary}" Text="{Binding Description}"></TextBlock>
|
||||
<TextBlock Classes="BodyStrongTextBlockStyle" Text="{Binding Name}" TextWrapping="Wrap"></TextBlock>
|
||||
<TextBlock Foreground="{DynamicResource TextFillColorSecondary}" Text="{Binding Description}" TextWrapping="Wrap"></TextBlock>
|
||||
</StackPanel>
|
||||
</TreeDataTemplate>
|
||||
<TreeDataTemplate ItemsSource="{Binding Items}">
|
||||
|
||||
@ -10,6 +10,7 @@ using Artemis.UI.Shared.Services.NodeEditor;
|
||||
using Artemis.UI.Shared.Services.NodeEditor.Commands;
|
||||
using Avalonia;
|
||||
using DynamicData;
|
||||
using DynamicData.Binding;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.VisualScripting;
|
||||
@ -35,6 +36,11 @@ public class NodePickerViewModel : ActivatableViewModelBase
|
||||
|
||||
nodeSourceList.Connect()
|
||||
.Filter(nodeFilter)
|
||||
.Sort(SortExpressionComparer<NodeData>
|
||||
.Descending(d => d.Category == "Data Model")
|
||||
.ThenByDescending(d => d.Category == "Static")
|
||||
.ThenByAscending(d => d.Category)
|
||||
.ThenByAscending(d => d.Name))
|
||||
.GroupWithImmutableState(n => n.Category)
|
||||
.Bind(out ReadOnlyObservableCollection<DynamicData.List.IGrouping<NodeData, string>> categories)
|
||||
.Subscribe();
|
||||
|
||||
@ -4,7 +4,7 @@ using Artemis.VisualScripting.Nodes.List.Screens;
|
||||
|
||||
namespace Artemis.VisualScripting.Nodes.List;
|
||||
|
||||
[Node("List Operator", "Checks if any/all/no value in the input list matches the input value", "List", InputType = typeof(IEnumerable), OutputType = typeof(bool))]
|
||||
[Node("List Operator (Simple)", "Checks if any/all/no value in the input list matches the input value", "List", InputType = typeof(IEnumerable), OutputType = typeof(bool))]
|
||||
public class ListOperatorNode : Node<ListOperator, ListOperatorNodeCustomViewModel>
|
||||
{
|
||||
public ListOperatorNode() : base("List Operator", "Checks if any/all/no value in the input list matches the input value")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user