Bladeren bron

增加层级关系测试代码

maboren 2 maanden geleden
bovenliggende
commit
1743f7f6a5

+ 10 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SAbleTreeExpanderArrow.cpp

@@ -208,7 +208,16 @@ const FSlateBrush* SAbleTreeExpanderArrow::GetExpanderImage() const
 /** @return the margin corresponding to how far this item is indented */
 FMargin SAbleTreeExpanderArrow::GetExpanderPadding() const
 {
-	const int32 NestingDepth = FMath::Max(0, OwnerRowPtr.Pin()->GetIndentLevel() - BaseIndentLevel);
+
+// 	if (!OwnerRowPtr.Pin().IsValid())
+// 	{
+// 		UE_LOG(LogTemp, Error, TEXT("OwnerRowPtr is nullptr"));
+// 	}
+// 	else
+// 	{
+// 		UE_LOG(LogTemp, Log, TEXT("OwnerRowPtr IndentLevel = [%d]"), OwnerRowPtr.Pin()->GetIndentLevel());
+// 	}
+	const int32 NestingDepth  = FMath::Max(0, OwnerRowPtr.Pin()->GetIndentLevel() - BaseIndentLevel);
 	FMargin Padding = ImagePadding;
 	Padding.Left += static_cast<float>(NestingDepth) * IndentAmount;
 	return Padding;

+ 20 - 2
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SEzAbleTreeViewWidget.cpp

@@ -145,7 +145,16 @@ TSharedRef<ITableRow> SEzAbleTreeViewWidget::HandleGenerateRow(TWeakObjectPtr<UE
 
 void SEzAbleTreeViewWidget::HandleGetChildren(TWeakObjectPtr<UEzAbilityState> InParent, TArray<TWeakObjectPtr<UEzAbilityState>>& OutChildren)
 {
+	//Test Code.
 	UE_LOG(LogTemp, Log, TEXT("EZAbleTreeViewWidget HandleGetChildren"));
+
+	InParent->AddChildState(FName());
+
+	if (const UEzAbilityState* Parent = InParent.Get())
+	{
+		OutChildren.Append(Parent->Children);
+	}
+
 }
 
 void SEzAbleTreeViewWidget::UpdateTree(bool bExpandPersistent /*= false*/)
@@ -164,11 +173,20 @@ void SEzAbleTreeViewWidget::UpdateTree(bool bExpandPersistent /*= false*/)
 
 void SEzAbleTreeViewWidget::HandleModelStateAdded(UEzAbilityState* ParentState, UEzAbilityState* NewState)
 {
-	TreeView->SetItemSelection(NewState, true);
-	TreeView->SetItemExpansion(NewState, true);
+// 	TreeView->SetItemSelection(NewState, true);
+// 	TreeView->SetItemExpansion(NewState, true);
+	
+	//Test code.
+	if (TestState.Num() >= 2)
+	{
+		TreeView->SetItemSelection(TestState[1], true);
+	}
+
 	UEzAbilityState* AbilityState = NewObject<UEzAbilityState>();
 	TestStrongState.Add(AbilityState);
 	TestState.Add(AbilityState);
+
+
 	TreeView->RequestTreeRefresh();
 // 	TreeView->RequestScrollIntoView(TestAddState);
 // 	TreeView->RequestTreeRefresh();