21 TSharedPtr<FLiveConfigPropertyDefinition> PropertyDefinition;
22 TArray<TSharedRef<FLiveConfigPropertyTreeNode>> Children;
23 TWeakPtr<FLiveConfigPropertyTreeNode> Parent;
24 bool bIsExpanded =
true;
25 bool bNeedsFocus =
false;
27 bool IsProperty()
const {
return PropertyDefinition.IsValid() && PropertyDefinition->PropertyType != ELiveConfigPropertyType::Struct; }
28 bool IsStruct()
const {
return PropertyDefinition.IsValid() && PropertyDefinition->PropertyType == ELiveConfigPropertyType::Struct; }
41 void Construct(
const FArguments& InArgs);
42 virtual bool SupportsKeyboardFocus()
const override {
return true; }
43 virtual FReply OnKeyDown(
const FGeometry& MyGeometry,
const FKeyEvent& InKeyEvent)
override;
44 virtual void Tick(
const FGeometry& AllottedGeometry,
const double InCurrentTime,
const float InDeltaTime)
override;
45 void RemoveProperty(TSharedPtr<FLiveConfigPropertyDefinition> InItem);
46 void RemoveTag(FName TagName);
48 bool IsNameDuplicate(FName Name)
const;
50 static void GetMissingTags(TArray<FName>& OutMissingTags);
53 static const TArray<TSharedPtr<FLiveConfigPropertyDefinition>>& GetPropertyDefinitions();
55 TSharedRef<ITableRow> OnGenerateRow(TSharedRef<FLiveConfigPropertyTreeNode> InItem,
const TSharedRef<STableViewBase>& OwnerTable);
56 void OnGetChildren(TSharedRef<FLiveConfigPropertyTreeNode> InItem, TArray<TSharedRef<FLiveConfigPropertyTreeNode>>& OutChildren);
58 void OnAddNewProperty();
59 void OnAddPropertyAtFolder(FString FolderPath);
60 void OnPropertyRowMouseDown(TSharedRef<FLiveConfigPropertyTreeNode> SelectedItem);
61 void OnAddNewTag(FName NewTag);
62 void OnFilterTextChanged(
const FText& InFilterText);
63 void RefreshSearchFilter();
65 void OnTagFilterSelected(FName InTag);
66 int32 GetTagCount(FName InTag)
const;
67 void OnPropertyRowChanged(TSharedPtr<FLiveConfigPropertyDefinition> OldDef, TSharedPtr<FLiveConfigPropertyDefinition> NewDef, ELiveConfigPropertyChangeType ChangeType);
68 void GetFlatVisibleProperties(TArray<TSharedRef<FLiveConfigPropertyTreeNode>>& OutFlatList)
const;
69 void NavigateToProperty(TSharedPtr<FLiveConfigPropertyTreeNode> CurrentItem, int32 Direction);
70 void SetAllNodesExpanded(
bool bExpanded);
71 void SetNodesExpandedRecursive(
const TArray<TSharedRef<FLiveConfigPropertyTreeNode>>& Nodes,
bool bExpanded);
72 void BulkAddTag(TArray<TSharedRef<FLiveConfigPropertyTreeNode>> Nodes, FName TagName);
73 void BulkRemoveTag(TArray<TSharedRef<FLiveConfigPropertyTreeNode>> Nodes, FName TagName);
74 void BulkDeleteProperties(TArray<TSharedRef<FLiveConfigPropertyTreeNode>> Nodes);
75 TSharedPtr<SWidget> OnGetContextMenuContent();
76 void OnTreeDoubleClick(TSharedRef<FLiveConfigPropertyTreeNode> LiveConfigPropertyTreeNode);
77 void OnSelectionChanged(TSharedPtr<FLiveConfigPropertyTreeNode> SelectedItem, ESelectInfo::Type SelectInfo);
78 void OnManageRedirects();
79 void OnCleanupUnusedProperties();
81 TArray<TSharedRef<FLiveConfigPropertyTreeNode>> RootNodes;
83 TSharedPtr<STreeView<TSharedRef<FLiveConfigPropertyTreeNode>>> PropertyTreeView;
84 TSharedPtr<SSearchBox> SearchBox;
85 TSharedPtr<class SVerticalBox> TagFilterBox;
86 TSharedPtr<SWindow> NewTagWindow;
87 bool bNeedsInitialRefresh =
true;