void STimeline::Construct(const FArguments& InArgs, TSharedPtr<SVisualLoggerView> VisualLoggerView, TSharedPtr<FVisualLoggerTimeSliderController> TimeSliderController, TSharedPtr<STimelinesContainer> InContainer, const FVisualLogDevice::FVisualLogEntryItem& Entry) { VisualLoggerInterface = InArgs._VisualLoggerInterface.Get(); OnGetMenuContent = InArgs._OnGetMenuContent; Owner = InContainer; Name = Entry.OwnerName; Entries.Add(Entry); OnFiltersChanged(); ULogVisualizerSettings::StaticClass()->GetDefaultObject<ULogVisualizerSettings>()->OnSettingChanged().AddRaw(this, &STimeline::HandleLogVisualizerSettingChanged); ChildSlot [ SNew(SHorizontalBox) + SHorizontalBox::Slot() .Padding(FMargin(0, 4, 0, 0)) .HAlign(HAlign_Fill) .VAlign(VAlign_Fill) .FillWidth(TAttribute<float>(VisualLoggerView.Get(), &SVisualLoggerView::GetAnimationOutlinerFillPercentage)) [ SAssignNew(PopupAnchor, STimelineLabelAnchor, SharedThis(this)) .OnGetMenuContent(OnGetMenuContent) [ SNew(SBorder) .HAlign(HAlign_Fill) .Padding(FMargin(0, 0, 4, 0)) .BorderImage(FCoreStyle::Get().GetBrush("NoBorder")) [ SNew(SBorder) .VAlign(VAlign_Center) .BorderImage(this, &STimeline::GetBorder) .Padding(FMargin(4, 0, 2, 0)) [ // Search box for searching through the outliner SNew(STextBlock) .Text(FString(Name.ToString())) .ShadowOffset(FVector2D(1.f, 1.f)) ] ] ] ] + SHorizontalBox::Slot() .Padding(FMargin(0, 4, 0, 0)) .HAlign(HAlign_Left) [ SNew(SBox) .Padding(FMargin(0, 0, 0, 0)) .HAlign(HAlign_Left) [ // Search box for searching through the outliner SAssignNew(TimelineBar, STimelineBar, TimeSliderController, SharedThis(this)) .VisualLoggerInterface(InArgs._VisualLoggerInterface) ] ] ]; }
void SLogVisualizerTimeline::OnFiltersSearchChanged(const FText& Filter) { OnFiltersChanged(); }
void SVisualLoggerLogsList::OnFiltersSearchChanged(const FText& Filter) { OnFiltersChanged(); }
void STimeline::OnFiltersSearchChanged(const FText& Filter) { QuickSearchStrng = Filter.ToString(); OnFiltersChanged(); }