Files
UnrealEngine/Engine/Source/Developer/LogVisualizer/Private/SVisualLoggerLogsList.h
2025-05-18 13:04:45 +08:00

43 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Input/Reply.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Framework/Commands/UICommandList.h"
#include "VisualLogger/VisualLoggerTypes.h"
#include "Widgets/Views/STableViewBase.h"
#include "Widgets/Views/STableRow.h"
#include "SVisualLoggerBaseWidget.h"
struct FLogEntryItem;
struct FVisualLoggerDBRow;
class SVisualLoggerLogsList : public SVisualLoggerBaseWidget
{
public:
SLATE_BEGIN_ARGS(SVisualLoggerLogsList){}
SLATE_END_ARGS()
void Construct(const FArguments& InArgs, const TSharedRef<FUICommandList>& InCommandList);
virtual ~SVisualLoggerLogsList();
virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
void ResetData();
void ObjectSelectionChanged(const TArray<FName>& Selection);
void OnItemSelectionChanged(const FVisualLoggerDBRow& BDRow, int32 ItemIndex);
void OnFiltersChanged();
void OnFiltersSearchChanged(const FText& Filter);
protected:
void RegenerateLogEntries();
void GenerateLogs(const FVisualLogDevice::FVisualLogEntryItem& EntryItem, bool bGenerateHeader);
void LogEntryLineSelectionChanged(TSharedPtr<FLogEntryItem> SelectedItem, ESelectInfo::Type SelectInfo);
TSharedRef<ITableRow> LogEntryLinesGenerateRow(TSharedPtr<struct FLogEntryItem> Item, const TSharedRef<STableViewBase>& OwnerTable);
protected:
TSharedPtr<SListView<TSharedPtr<struct FLogEntryItem> > > LogsLinesWidget;
TArray<TSharedPtr<struct FLogEntryItem> > CachedLogEntryLines;
};