Files
UnrealEngineUWP/Engine/Source/Developer/LogVisualizer/Private/SVisualLoggerView.cpp

462 lines
15 KiB
C++
Raw Normal View History

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "SVisualLoggerView.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "Framework/Application/SlateApplication.h"
#include "Widgets/Layout/SSpacer.h"
#include "Widgets/Images/SImage.h"
#include "Widgets/Layout/SBox.h"
#include "Framework/MultiBox/MultiBoxBuilder.h"
#include "LogVisualizerSettings.h"
#include "LogVisualizerStyle.h"
#include "SVisualLoggerSectionOverlay.h"
#include "SVisualLoggerTimeline.h"
#include "SVisualLoggerTimelinesContainer.h"
#include "ITimeSlider.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "SVisualLoggerTimeSlider.h"
#include "VisualLoggerTimeSliderController.h"
#include "Widgets/Input/SSearchBox.h"
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
#define LOCTEXT_NAMESPACE "SVisualLoggerFilters"
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
class SInputCatcherOverlay : public SOverlay
{
public:
void Construct(const FArguments& InArgs, TSharedRef<class FVisualLoggerTimeSliderController> InTimeSliderController)
{
SOverlay::Construct(InArgs);
TimeSliderController = InTimeSliderController;
}
/** Controller for manipulating time */
TSharedPtr<class FVisualLoggerTimeSliderController> TimeSliderController;
private:
/** SWidget Interface */
virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseMove(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
private:
};
FReply SInputCatcherOverlay::OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
if (MouseEvent.GetEffectingButton() != EKeys::LeftMouseButton)
{
return TimeSliderController->OnMouseButtonDown(*this, MyGeometry, MouseEvent);
}
return FReply::Unhandled();
}
FReply SInputCatcherOverlay::OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
if (MouseEvent.GetEffectingButton() != EKeys::LeftMouseButton)
{
return TimeSliderController->OnMouseButtonUp(*this, MyGeometry, MouseEvent);
}
return FReply::Unhandled();
}
FReply SInputCatcherOverlay::OnMouseMove(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
return TimeSliderController->OnMouseMove(*this, MyGeometry, MouseEvent);
}
FReply SInputCatcherOverlay::OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
if (MouseEvent.IsLeftShiftDown() || MouseEvent.IsLeftControlDown())
{
return TimeSliderController->OnMouseWheel(*this, MyGeometry, MouseEvent);
}
return FReply::Unhandled();
}
void SVisualLoggerView::Construct(const FArguments& InArgs, const TSharedRef<FUICommandList>& InCommandList)
{
AnimationOutlinerFillPercentage = .25f;
TSharedRef<SScrollBar> ZoomScrollBar =
SNew(SScrollBar)
.Orientation(EOrientation::Orient_Horizontal)
.Thickness(FVector2D(2.0f, 2.0f));
ZoomScrollBar->SetState(0.0f, 1.0f);
FLogVisualizer::Get().GetTimeSliderController()->SetExternalScrollbar(ZoomScrollBar);
// Create the top and bottom sliders
const bool bMirrorLabels = true;
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
TSharedRef<ITimeSlider> TopTimeSlider = SNew(SVisualLoggerTimeSlider, FLogVisualizer::Get().GetTimeSliderController().ToSharedRef()).MirrorLabels(bMirrorLabels);
TSharedRef<ITimeSlider> BottomTimeSlider = SNew(SVisualLoggerTimeSlider, FLogVisualizer::Get().GetTimeSliderController().ToSharedRef()).MirrorLabels(bMirrorLabels);
TSharedRef<SScrollBar> ScrollBar =
SNew(SScrollBar)
.Thickness(FVector2D(2.0f, 2.0f));
ULogVisualizerSettings* Settings = ULogVisualizerSettings::StaticClass()->GetDefaultObject<ULogVisualizerSettings>();
ChildSlot
[
SNew(SBorder)
.Padding(2)
.BorderImage(FLogVisualizerStyle::Get().GetBrush("ToolPanel.GroupBorder"))
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.FillWidth(1.0f)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.AutoHeight()
[
SAssignNew(SearchSplitter, SSplitter)
.Orientation(Orient_Horizontal)
.OnSplitterFinishedResizing(this, &SVisualLoggerView::OnSearchSplitterResized)
+ SSplitter::Slot()
.Value(0.25)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.Padding(FMargin(0))
.AutoWidth()
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(SImage)
.Visibility_Lambda([]()->EVisibility{ return FVisualLoggerFilters::Get().GetSelectedObjects().Num() > 0 ? EVisibility::Visible : EVisibility::Collapsed; })
.Image(FLogVisualizerStyle::Get().GetBrush("Filters.FilterIcon"))
]
+ SHorizontalBox::Slot()
.Padding(FMargin(0))
.HAlign(HAlign_Right)
.AutoWidth()
[
SAssignNew(ClassesComboButton, SComboButton)
.Visibility_Lambda([this]()->EVisibility{ return TimelinesContainer.IsValid() && (TimelinesContainer->GetAllNodes().Num() > 1 || FVisualLoggerFilters::Get().GetSelectedObjects().Num() > 0) ? EVisibility::Visible : EVisibility::Collapsed; })
.ComboButtonStyle(FLogVisualizerStyle::Get(), "Filters.Style")
.ForegroundColor(FLinearColor::White)
.ContentPadding(0)
.OnGetMenuContent(this, &SVisualLoggerView::MakeClassesFilterMenu)
.ToolTipText(LOCTEXT("SetFilterByClasses", "Select classes to show"))
.HasDownArrow(true)
.ContentPadding(FMargin(1, 0))
.ButtonContent()
[
SNew(STextBlock)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3621452) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3567301 by Arciel.Rekman Linux: fix for importing failure when clicking shortcuts (UE-47932). - Slate dialog would return incorrect relative paths (not matching CWD) if Engine or Project shortcuts were used. #jira UE-47932 Change 3567687 by Arciel.Rekman Minor fixes to gdb pretty printers by icculus. Change 3568024 by Arciel.Rekman Made SDL_SetWindowInputFocus() wait until window is viewable (UE-33369). - Pull request #2608 contributed by Ereski. - Updated x86_64 lib only (anticipating more changes to SDL). #coderview Cengiz.Terzibas, Ryan.Gordon Change 3568173 by Max.Chen Movie Scene Capture: Delay on shot boundaries by setting the sequencer play rate to 0. This allows particles, TAA, and other effects to settle on the shot cuts. #jira UE-44598 Change 3568174 by Max.Chen Sequencer: Added option to rerun construction scripts on bound actors in the sequence every frame. #jira UE-31193 Change 3568331 by Matt.Kuhlenschmidt PR #3850: Add extensible source navigation service (Contributed by mhutch) Change 3568350 by Matt.Kuhlenschmidt PR #3851: Add argument to pass params to standalone play session (Contributed by mhutch) Change 3568387 by Matt.Kuhlenschmidt PR #3852: Add FEditorDelegates::BeginLocalPlay event (Contributed by mhutch) Change 3568541 by Arciel.Rekman Merged Icculus' patch for copy-paste (UE-40071). - Alas does not seem to fix inability to copy/paste between Output log and kate. - Updated x86_64 lib only (anticipating more changes). Change 3568547 by Arciel.Rekman Fix OpenGL queries reused after deletion. Change 3568790 by Matt.Kuhlenschmidt PR #3857: Loading screen widgets not scaled correctly (Contributed by projectgheist) Change 3568900 by Alexis.Matte Fix the fbx re-import factory handler to say failed in case there was no geometry to import. #jira UE-47506 Change 3568902 by Alexis.Matte Reduce memory footprint when importing large FBX scene PR #3834 #jira UE-47833 Change 3569061 by Arciel.Rekman Linux: remove unnecessary symbols for MSVC visualizers. - Reported by ASan as collision because they exist in each DSO. Change 3569782 by Cody.Albert Updated ImportAssets Commandlet help text to properly reflect supported features. Change 3569843 by Arciel.Rekman SDL: add logic to select headless EGL device. - SDL will try to guess which device is GPU using CUDA device id (can also be hinted explicitly). - Also fixes the problem of engine not starting on some drivers that don't support the necessary EGL extensions. Change 3570234 by Max.Chen Sequencer: Import FBX settings. Added settings to toggle force front x axis and whether to create cameras that don't already exist in the level. #jira UE-46754 Change 3570578 by Arciel.Rekman Linux: make FAnsiMalloc compatible with malloc()/free(). - Prerequisite for ASan. Also helps fringe cases when we have to use FAnsiMalloc. Change 3571015 by Alexis.Matte Issue warning when we found zero normal, tangent or binormal #jira UE-46419 Change 3571376 by Jamie.Dale Force a unique package localization ID when loading packages for diffing Change 3571412 by Jamie.Dale Removed unused setting Change 3571487 by Alexis.Matte fix speed tree import cancel workflow #jira UE-47482 Change 3571614 by Jamie.Dale Games now use the native culture of any of the game targets as the fallback (rather than always using English) This replaces the previously removed redundant setting from CL# 3571412 Change 3572649 by Jamie.Dale SavePackageHelper now always honors KeepObjectFlags Change 3572730 by Matt.Kuhlenschmidt Guard against crash in the details panel when there is a message in the queue and something scrolls into view when the list has been invalidated #jira UE-48037 Change 3572773 by Matt.Kuhlenschmidt Guard against high res screenshot crashing if the requested image size doesnt match the image data size #jira UE-47765 Change 3572813 by Michael.Trepka Workaround for a mysterious issue in Xcode 9 beta 3 and 4 which makes it generate -Wnullability-inferred-on-nested-type warnings/errors in MetalDebugCommandEncoder.h even though we tell Clang to ignore them in MacPlatformCompilerPreSetup.h Change 3573043 by Arciel.Rekman FAnsiMalloc: fix compile issue (UE-48066). #jira UE-48066 Change 3573236 by Arciel.Rekman Linux: add UnrealLightmass to the installed build. - Was also requested by a licensee on UDN. Change 3573705 by Arciel.Rekman SDL: update UE4 fork to the latest trunk (UETOOL-1242). - Revision 11184 form 2017-08-04: http://hg.libsdl.org/SDL/rev/04063928c4a8 - Change by icculus (Ryan Gordon). - Rebuilt x86_64 library only for now. Change 3573741 by Arciel.Rekman Fix crash when capturing a movie (UE-48093). #jira UE-48093 Change 3574389 by Max.Chen Sequencer: Array bounds check. #jira UE-48095 Change 3574399 by Max.Chen Sequencer: Fix crash in removing delegate #jira UE-47461 Change 3574415 by Max.Chen Sequencer: Put level visibility tracks in the SpawnObjects evaluation group to ensure levels are streamed before any possessable bindings are resolved Change 3574416 by Max.Chen Prevent slow task feedback from performing slow operations (flushing rendering commands, checking if shaders are initialized) when there are no modal dialogs open Change 3574726 by Matt.Kuhlenschmidt Focus the details view when actor selection changes if it is not focused Change 3574922 by Michael.Trepka Copy of CL 3574653 by Richard.Wallis XCode Beta 4 Compile fixes. "Inferring '_Nonnull' for pointer type within array is deprecated " Change 3576525 by Nick.Darnell Editor - Data table rows names sort correctly in the property customization. Blueprint - Fixing some crashes due to holding onto raw pointers instead of TWeakObjectPtrs. UMG - SetWidgetClass now reinstances the widget if you change it at runtime. Editor - Deleting actors that are still referenced now at least logs to the console what still references it. Change 3576714 by Nick.Darnell Editor - Build fix. Change 3576770 by Jamie.Dale Removed some dead code It seems to be left over from the first attempt at stable localization keys Change 3578433 by Matt.Kuhlenschmidt Fix content browser settings being per project and having created a "Global" category for one setting Change 3578556 by Max.Chen Editor: Fix toolbar shared ref which was keeping the viewport toolbar around when switching between default and cinematic viewports. #jira UE-48125 Change 3578561 by Matt.Kuhlenschmidt Fix USD importing not respecting DestinationPath for automated import Change 3580124 by Matt.Kuhlenschmidt Fix bogus warning message when a property has an editcondition that is not marked edit aynwhere. This has always been supported and is the correct way to make an editcondition Change 3581936 by Jamie.Dale Restoring defaults for UContentBrowserSettings Change 3582039 by Matt.Kuhlenschmidt High DPI mode changes - Editor viewport screen percentage is now adjusted automatically to account for DPI scaling. By default the scene will be rendered at a lower resolution based on screen percentage calculated based on 100/DPIScale. Users can override this automatic calcuation in the performance options if desired. - DPI awareness is only set on windows in the editor now (still disabled by default) - Fixed hit proxy calculation not working properly with screen percentage - Developers can now register a delegate with SlateApplication to tell when a window's DPI changes Change 3582049 by Matt.Kuhlenschmidt Fix color picker not properly converting FColor properties back to gamma space Change 3582054 by Matt.Kuhlenschmidt Fix mac menus updating during unsafe times such as modal windows and slow tasks #jira UE-47874 Change 3582084 by Jamie.Dale Make sure to update the rendering resources for the active world if reloading its map build data This prevents a crash in the renderer due to it holding onto stale data Change 3582257 by Matt.Kuhlenschmidt Fix widget component spawning widgets on cook #jira UE-48201 Change 3582655 by Matt.Kuhlenschmidt Fix DPI scale not being accounted for when entering immersive. Change 3582706 by Matt.Kuhlenschmidt Fix automation tests Change 3582728 by Matt.Kuhlenschmidt Turn on high dpi by default for windows editor Change 3582732 by Matt.Kuhlenschmidt Turn on high DPI by default for mac editor Change 3583112 by Max.Chen Sequencer: Add OnPlayReverse() event for when playback is in reverse Change 3584130 by Matt.Kuhlenschmidt PR #3897: Git plugin: fix action icon in history window (Contributed by SRombauts) Change 3584237 by Matt.Kuhlenschmidt Added the beginnings of a way to extend the usd importer with a custom resolver class that optionally handles prim identification and mesh and actor spawning. Added a test resolver that handles prims based on usd "kind" metadata. Change 3584535 by Matt.Kuhlenschmidt Fix LOD identification in USD files Change 3587703 by Matt.Kuhlenschmidt Fix tooltip Change 3587901 by Matt.Kuhlenschmidt Fixed USD importing not finding and importing LODs properly Change 3588380 by Matt.Kuhlenschmidt Fix ctrl+w not duplicating on mac #jira UE-46573 Change 3590435 by Jamie.Dale Added support for in-editor previews of localized game text This is configured by the "Preview Game Culture" setting, and will automatically be active when PIE is running (the preview language is also passed to any standalone games that are launched via the editor). This preview can also be used in the UMG editor to preview widgets in different languages. While a preview is running, all editable FText fields are locked-down (read-only) to prevent accidentally clobbering source data with translation data. You can also use this new lock-down feature to prevent any localization changes in your project (set "LockLocalization" to "True" under the "Internationalization" section of either your DefaultGame or DefaultEngine INI). In order to allow the game translations to be used in the editor, we now map the translation to any package localization ID variants when the LocRes data is loaded (or when looking up a specific piece of text). This is needed as the LocRes files only ever contain the "clean" versions of the IDs (without the package localization ID the editor uses), and also means that we no longer need to gather the "editor-only" variants of the text within assets. Change 3592131 by Matt.Kuhlenschmidt Log for newly converted actors being pending kill #jira UE-47464 Change 3592200 by Matt.Kuhlenschmidt Made the class viewer menu function properly on mac. Since it as a nomad tab it wasnt properly inserting itself into the top level menu on mac nor should it since it could be docked anywhere. The filters menu is now consistent with other filters menus Change 3592227 by Matt.Kuhlenschmidt Fix drag drop of actors being offset with high dpi monitors. Change 3592719 by Bradut.Palas #jira UE-45632 - dual key bindings feature My approach was transforming the ActiveChord and DefaultChord into arrays and accessing them through an enum class called EMultipleKeyBindingIndex. A lot of connecting code, function prototypes, and data structures had to be changed to accomodate this. Most menus and tooltip texts are generated using the first valid active shortcut. Change 3592793 by Bradut.Palas Fix compile warnings for InputBindingManager (there were actually hidden bugs among them) Change 3593128 by Matt.Kuhlenschmidt Force low quality mode for background blurs by default on android Change 3593579 by Michael.Dupuis #jira UE-47223 : If we have no world simply return null when GetLandscapeInfo is called Handle the cases in PostEditChange to handle null returned from GetLandscapeInfo Change 3593580 by Michael.Dupuis Added missing shaders while generating thumbnails Change 3593582 by Michael.Dupuis #jira UE-47492 : Make sure LayerInfo is valid before accessing data Change 3593584 by Michael.Dupuis #jira UE-47253: Do not recreate the scene info in simulation mode Change 3593585 by Michael.Dupuis #jira UE-48484: no longer mark the package dirty while generating the GrassMap if they were not existing Change 3593586 by Michael.Dupuis #jira UE-48483 : hide the Rendering property group so user can't by mistake change the actor visibility Change 3593593 by Michael.Dupuis #jira UE-48327: Added guard to prevent crash when using CVarFoliageDiscardDataOnLoad and having invalid foliage in your map Change 3593597 by Michael.Dupuis #jira UE-48309: Do not build the tree if the static mesh is not even loaded yet #jira UE-48340: Properly support the Random stream and partial buffer update #jira UE-48228: Instance from blueprint are now visible in standalone game #jira UE-45854: Crash probably linked to post load called on not loaded static mesh #jira UE-48035: Properly init the per instance render data when creating a new component Only update instance in non archetype or CDO. Change 3594060 by Matt.Kuhlenschmidt Fix high DPI mode being set for non-editor. Also prevent possible crashes due to dll handle for high DPI method being freed before called Change 3594355 by Matt.Kuhlenschmidt Change API help link to point to a website since offline CHM based docs are no longer used #jira UE-48230 Change 3595358 by Matt.Kuhlenschmidt Fixed bad initial window position and sizes for editor windows By default SWindow.ClientSize will assume unscaled window size and will scale it based on DPI as needed. AdjustInitialSizeAndPositionForDPIScale argument can be used to disable this if needed Fixed a dock tabs and the main frame not taking into account dpi scale when saving their layout. Now we always save window size at 1.0 scale and auto scale it based on DPI of the monitor it opens on. #jira UE-48446 Change 3595590 by Matt.Kuhlenschmidt Fix missing includes Change 3595792 by Matt.Kuhlenschmidt Fix style warnings Change 3596418 by Bradut.Palas fixing initial issue with dual keybinds (removed ensure macro to speedup first use of alternate key) Change 3598679 by Max.Chen PR #3872: Fix small typo in ImagePlate Plugin (Contributed by TheCodez) #jira UE-48141 Change 3598720 by Max.Chen Cine Camera: Add toggle to disable constraining the roll when look at tracking is enabled. This allows the user to animate the roll while tracking an object. #jira UE-48316 Change 3600236 by Alexis.Matte Create a LOD Custom Mode in the meshes editor UI. This allow user to compare details values between LODs #jira UE-46822 Change 3600260 by Alexis.Matte Make sure temporary rename do not create redirector #jira UE-48364 Change 3600671 by Lauren.Ridge PR #3913: Fixed 3D preview issue in the material editor (Contributed by YuchenMei) #jira UE-48539 #jira UE-48180 #jira UE-48182 Change 3600812 by Jamie.Dale We now defer the registration of IME contexts until an editable text first gains focus Certain IMEs can have very high per-context costs, so this avoids that cost until we know that we definitely need to use the context #jira UE-48100 Change 3601839 by Matt.Kuhlenschmidt Fix USD import crash with "facevarying" normals Change 3602434 by Jamie.Dale Removing dead code These flags were never being tested or used in any meaningul way Change 3602611 by Jamie.Dale Ensure PackageToReload is non-null #jira UE-46655 Change 3602648 by Jamie.Dale Fixed custom columns with the same name as fixed columns causing infinite duplications in the content browser #jira UE-47392 Change 3602651 by Lauren.Ridge Fix for parameter tooltips not being found #jira UE-47417 Change 3604172 by Bradut.Palas #jira UE-48449 #jira UE-48380 #jira UE-48381 #jira UE-48423 I moved the IsFilenameValidForSaving() function from FEditorFileUtils to FFileHelper so that it is accessible from CollectionManager.cpp in order to validate collection names as file names and no longer trigger any of the bugs. Change 3604210 by Bradut.Palas #jira UE-48718 Regression issue appeared from fixing a crash when using console command "open" Reworked by only refusing to open local URLs in case of client mode and multiprocess being active simultaneously. Change 3604258 by Jamie.Dale IME contexts can now flag themselves as dead to avoid latent IME callbacks trying to access a deleted widget #jira UE-46815 #jira UE-47295 Change 3604312 by Matt.Kuhlenschmidt PR #3931: Fixing a few obvious copy & paste errors. (Contributed by DaveC79) Change 3604352 by Matt.Kuhlenschmidt Fix crash accessing potentially invalid parent layout from a detail category #jira UE-48729 Change 3604402 by Lauren.Ridge Epic Friday - array drag and drop Change 3605228 by Cody.Albert TSets and TMaps should now properly rehash if a key is modified in the details panel. Change 3605275 by Alexis.Matte Merge actor do not keep the material slot name #jira UE-43246 Change 3605715 by Max.Chen Sequencer: Fix cinematic mode getting activated on BeginPlay() instead of OnStartedPlaying(). #jira UE-48770 Change 3606411 by Max.Chen Sequencer: Fix a few player state issues. When paused, calling stop now tears down properly (spawnables are removed, etc). When a level sequence is deleted, tears down properly as well. #jira UE-42008 Change 3606440 by Max.Chen Sequencer: Update spawanble name when the spawnable actor name is changed. #jira UE-47815 Change 3606899 by Lauren.Ridge Disabling enum-based arrays from reordering Change 3606958 by Lauren.Ridge Visual polish on array handles Change 3607733 by Max.Chen Sequencer: Check null in camera cut Change 3607849 by Max.Chen Sequencer: Clip transport controls. #jira UE-48812 Change 3608181 by Max.Chen #jira UE-48813 Correctly set GPlayInEditorID when initializing the PIE gameinstance, which does the initial tick. This fixes autoplay sequences Copy from Dev-Framework Change 3608361 by christopher.biancard QAGame: Submitting test content for Array Element Reorder testing Change 3608512 by Alexis.Matte Add fbx exporter option dialog, support export all and cancel all functionality when doing bulk export. #jira UE-48058 Change 3608629 by Max.Chen Camera Rig: Fix crane and rail not being packaged properly. #jira UE-48829 Change 3609217 by Matt.Kuhlenschmidt Added a lock around access to slate active timers to protect it against race conditions when accessed on the slate movie thread and the game thread Change 3609722 by Alexis.Matte Make sure a warning is log when we cannot export an animation sequence. #jira UE-48390 Change 3609774 by Alexis.Matte Fix the merge actor build LOD scale again, a previous merge erase the fix #jira UE-48156 Change 3609891 by christopher.biancard QAGame: Minor additions for test coverage on Array Element Reorder Change 3610171 by Lauren.Ridge Fixes for reordering metadata, creating actual swap function out of three element functions #jira UE-48823 Change 3610407 by Lauren.Ridge Fixing highlighting and behavior to place dragged row in the spot you release (not below) Change 3610472 by Lauren.Ridge Moving final location logic Change 3610797 by Lauren.Ridge Disabling dragging handles during PIE Change 3611089 by Lauren.Ridge Disabling handles when overall tree is disabled Change 3612479 by Lauren.Ridge Fix for asset contex menu warning #jira UE-46667 Change 3612791 by Michael.Dupuis #jira UE-48914 : Add the possibility to specify if we need CPU access to the instance buffer depending on the usage. Grass should always have CPU access. Change 3612802 by Michael.Dupuis missing file from checkin 3612791 Change 3612805 by Max.Chen Sequencer: Fix crash with null GEditor Copy from Release-4.17 #jira UE-48443 Change 3612806 by Max.Chen Sequencer: Fix crash when capturing a movie with options enabling separate process and close editor. Copy from Release-4.17 #jira UE-48487 Change 3612807 by Max.Chen Sequencer: Fix crash upgrading the time range of a null track. Copy from Release-4.17 #jira UE-48490 Change 3612808 by Max.Chen Sequencer: Fixed dragging skeletal animations causing them to revert back to t-pose Copy from Release-4.17 #jira UE-48367 Change 3612849 by Arciel.Rekman Fix tesselation in packaged Linux projects (UE-24301). - Change by Cengiz.Terzibas. #jira UE-24301 Change 3613022 by Nick.Darnell Editor - Fixing a crash on load with a null CoordIndex json node. Change 3613030 by Matt.Kuhlenschmidt PR #3932: UE-48693: if instead of while statement (Contributed by projectgheist) #jira UE-48747 Change 3613047 by Matt.Kuhlenschmidt PR #3933: Git plugin: add "branch source" in history window (Contributed by SRombauts) Change 3613050 by Matt.Kuhlenschmidt PR #3942: Sort Data Table Structures Alphabetically (Contributed by Nick-Pearson) Change 3613062 by Matt.Kuhlenschmidt PR #3939: Fix a typo in RecordQualityLevelsAnalytics(). (Contributed by samhocevar) Change 3613241 by Nick.Darnell Editor - Fixing the content browser's view settings to be project agnostic, and they will start saving again. Change 3613329 by Lauren.Ridge Moving favorite levels to a standard submenu so they also work on Mac Change 3613344 by Nick.Darnell Editor - Fixing the achorgrid show up as white in HDPI mode, seems because we were upsampling the image, the blend was between dark and a transparent white, so that caused everything to turn white in HDPI mode. #jira UE-48921 Change 3613380 by Matt.Kuhlenschmidt Fix FBX window being off the screen in high DPI #jira UE-48872 Change 3614598 by Matt.Kuhlenschmidt Fixed Sequencer Keyframes appearing out of place on High DPI Monitors #jira UE-48915 Change 3614625 by Matt.Kuhlenschmidt Fixed not being able to click on BSP correctly in high dpi #jira UE-48947 Change 3614672 by Matt.Kuhlenschmidt Fix combo box windows being larger than necessary on high dpi monitors #jira UE-48908 Change 3614699 by Matt.Kuhlenschmidt Fix typo #jira UE-48941 Change 3615011 by Matt.Kuhlenschmidt Fix color picker calculation appearing offscreen for high dpi Change 3615013 by Michael.Dupuis #jira UE-48897: Properly rebuild the tree when reapplying instance to the component Change 3615014 by Colin.Benoit Sequencer Recorder test content Change 3615048 by Colin.Benoit Sequencer Recorder: more test content Change 3615118 by Lauren.Ridge Updating realtime state of viewports to also change when settings toggled #jira UE-48884 Change 3615127 by Lauren.Ridge Remove delegate binding on viewport destruction Change 3615180 by Bradut.Palas #jira UE-48167 profiler crash Don't duplicate the graph data when rebuilding because that completely voids the OneToOneMapping mechanism, resulting in the crash. Looking up objects in the mapping would always return null because the mapping contains the old addresses, before the rebuild. One option would have been to completely rebuild the mapping according to the duplicate graph, which would be dubious because the duplicate method isn't specifically designed so that the result would replace the source. But it looks like duplicating the data is not needed, it's safe to rebuild in-place, RebuildForFilter() doesn't do anything illegal with the objects. This is also the only purpose and the only reference of the function. Change 3615232 by Lauren.Ridge Adding input handling to the material editor viewport client #jira UE-48909 Change 3615703 by Jamie.Dale Fixed crash when fixing up references after a package rename failed #jira UE-48856 Change 3615752 by Matt.Kuhlenschmidt More generic fix for color picker and other windows that use CalculatePopupWindowPostion not accounting for DPI scale Change 3615907 by Jamie.Dale Fixed some crashes caused by CL# 3600812 Change 3616031 by Matt.Kuhlenschmidt Added guard against invalid blueprints (ones without a generated class) being trying to be opened in the property matrix and failing #jira UE-48986 Change 3616151 by Arciel.Rekman Fixing adding array elements in config. - "+Blah=Foo" will do Blah.AddUnique(Foo) - ".Blah=Foo" will do Blah.Add(Foo) - See JoshA re: why (also see: https://udn.unrealengine.com/questions/388157/incorrect-behavior-in-configcacheinicpp.html?childToView=389307) Change 3616439 by Andrew.Porter QAGame: Updating level visibility content in sequencer smoke map Change 3616441 by Matt.Kuhlenschmidt Fix more sequencer track offsetting with DPI scale #jira UE-48981 Change 3617263 by Max.Chen Sequencer: Fix crash in level visibility teardown. Null playback context. #jira UE-49012 Change 3617316 by Max.Chen Sequencer: Fixed a regression where the frame rate isn't getting initialized for a movie scene. Change 3617648 by Matt.Kuhlenschmidt Adding some windows specific logging around setting or failing to set process dpi awareness Change 3617665 by Matt.Kuhlenschmidt Guard against layers module not being loaded in keybinding automation test Change 3617731 by Arciel.Rekman Fix crashes on AMD Mesa drivers (UE-48374). - Do not expose unnecessary symbols from libelf.a to avoid symbol collision with system library used by drivers. Change 3617923 by Bradut.Palas #jira UE-47072 Editor was crashing because deleted actor was not cleaned properly from asset editors. Changed IAssetEditorInstance to offer a function for deleting an object from the editor. Change 3618088 by Matt.Kuhlenschmidt Guard against crash with potentially invalid worlds in preview scenes #jira UE-48997 Change 3618373 by Matt.Kuhlenschmidt Force worldsettings to be hidden in editor so that it is not considered for selection #jira UE-48996 Change 3618464 by Max.Chen Sequencer: Fix regression where spawnables don't play because they're defined as temporary editor actors. #jira UE-48923 Change 3619789 by Matt.Kuhlenschmidt Fix DPI scale warnings in any kind of headless editor mode Change 3619802 by Jamie.Dale Fixed deprecation warning in malloc profiler Change 3619841 by Matt.Kuhlenschmidt Fix missing icons in the package project menu #jira UE-48674 Change 3619991 by Lauren.Ridge Fix typo in transaction message #jira UE-48993 Change 3620086 by Lauren.Ridge Moving realtime viewport logic to refresh instead of construct so it is always triggered upon opening a new material editor #jira UE-48884 Change 3620616 by Matt.Kuhlenschmidt Fix up file Change 3621002 by Matt.Kuhlenschmidt Back out change to apply scaling rules in loading screens since blueprint based DPI scaling rule classes will not have been created yet #jira UE-49125 Change 3621049 by Arciel.Rekman Fix a build error. - Also make sure that we don't print confusing message when no messagebox can be shown (this code changed during the merge). Change 3621064 by Arciel.Rekman Deleted too much in the previous changelist. Change 3621369 by Matt.Kuhlenschmidt Fix keybindings automation test failing due to multiple entries in the active choords array pointing to the same thing #jira UE-49131 [CL 3621569 by Matt Kuhlenschmidt in Main branch]
2017-08-31 21:51:42 -04:00
.TextStyle(FLogVisualizerStyle::Get(), "GenericFilters.TextStyle")
.Text(LOCTEXT("FilterClasses", "Classes"))
]
]
+ SHorizontalBox::Slot()
.Padding(FMargin(0))
.HAlign(HAlign_Fill)
.FillWidth(1)
[
SNew(SBox)
.Padding(FMargin(0, 0, 4, 0))
[
// Search box for searching through the outliner
SNew(SSearchBox)
.OnTextChanged(this, &SVisualLoggerView::OnSearchChanged)
]
]
]
+ SSplitter::Slot()
.Value(0.75)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
[
#if 0 //top time slider disabled to test idea with filter's search box
SNew(SBorder)
.Padding(FMargin(0.0f, 2.0f, 0.0f, 0.0f))
.BorderImage(FLogVisualizerStyle::Get().GetBrush("ToolPanel.GroupBorder"))
.BorderBackgroundColor(FLinearColor(.50f, .50f, .50f, 1.0f))
[
TopTimeSlider
]
#else
SNew(SBox)
.Padding(FMargin(0, 0, 4, 0))
[
SAssignNew(SearchBox, SSearchBox)
.OnTextChanged(InArgs._OnFiltersSearchChanged)
.HintText_Lambda([Settings]()->FText{return Settings->bSearchInsideLogs ? LOCTEXT("DataFiltersSearchHint", "Log Data Search") : LOCTEXT("CategoryFiltersSearchHint", "Log Category Search"); })
]
#endif
]
]
]
+ SVerticalBox::Slot()
.FillHeight(1.0)
[
SNew(SInputCatcherOverlay, FLogVisualizer::Get().GetTimeSliderController().ToSharedRef())
+ SOverlay::Slot()
[
MakeSectionOverlay(FLogVisualizer::Get().GetTimeSliderController().ToSharedRef(), InArgs._ViewRange, InArgs._ScrubPosition, false)
]
+ SOverlay::Slot()
[
SAssignNew(ScrollBox, SScrollBox)
.ExternalScrollbar(ScrollBar)
+ SScrollBox::Slot()
[
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
SAssignNew(TimelinesContainer, SVisualLoggerTimelinesContainer, SharedThis(this), FLogVisualizer::Get().GetTimeSliderController().ToSharedRef())
]
]
+ SOverlay::Slot()
[
MakeSectionOverlay(FLogVisualizer::Get().GetTimeSliderController().ToSharedRef(), InArgs._ViewRange, InArgs._ScrubPosition, true)
]
+ SOverlay::Slot()
.VAlign(VAlign_Bottom)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.FillWidth(TAttribute<float>(this, &SVisualLoggerView::GetAnimationOutlinerFillPercentage))
[
// Take up space but display nothing. This is required so that all areas dependent on time align correctly
SNullWidget::NullWidget
]
+ SHorizontalBox::Slot()
.FillWidth(1.0f)
[
ZoomScrollBar
]
]
]
+ SVerticalBox::Slot()
.AutoHeight()
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.FillWidth(TAttribute<float>(this, &SVisualLoggerView::GetAnimationOutlinerFillPercentage))
[
SNew(SSpacer)
]
+ SHorizontalBox::Slot()
.Padding(FMargin(0.0f, 0.0f, 0.0f, 0.0f))
.FillWidth(1.0f)
[
SNew(SBorder)
.Padding(FMargin(0.0f, 0.0f, 0.0f, 2.0f))
.BorderImage(FLogVisualizerStyle::Get().GetBrush("ToolPanel.GroupBorder"))
.BorderBackgroundColor(FLinearColor(.50f, .50f, .50f, 1.0f))
[
BottomTimeSlider
]
]
]
]
+ SHorizontalBox::Slot()
.HAlign(HAlign_Right)
.AutoWidth()
[
ScrollBar
]
]
];
SearchBox->SetText(FText::FromString(FVisualLoggerFilters::Get().GetSearchString()));
FLogVisualizer::Get().GetEvents().GetAnimationOutlinerFillPercentageFunc.BindLambda(
[this]()->float{
SSplitter::FSlot const& LeftSplitterSlot = SearchSplitter->SlotAt(0);
SSplitter::FSlot const& RightSplitterSlot = SearchSplitter->SlotAt(1);
return LeftSplitterSlot.SizeValue.Get() / RightSplitterSlot.SizeValue.Get();
});
OnSearchSplitterResized();
}
SVisualLoggerView::~SVisualLoggerView()
{
FLogVisualizer::Get().GetEvents().GetAnimationOutlinerFillPercentageFunc.Unbind();
}
void SVisualLoggerView::SetAnimationOutlinerFillPercentage(float FillPercentage)
{
AnimationOutlinerFillPercentage = FillPercentage;
}
void SVisualLoggerView::SetSearchString(FText SearchString)
{
if (SearchBox.IsValid())
{
SearchBox->SetText(SearchString);
}
}
void SVisualLoggerView::OnSearchSplitterResized()
{
SSplitter::FSlot const& LeftSplitterSlot = SearchSplitter->SlotAt(0);
SSplitter::FSlot const& RightSplitterSlot = SearchSplitter->SlotAt(1);
const float NewAnimationOutlinerFillPercentage = LeftSplitterSlot.SizeValue.Get() / RightSplitterSlot.SizeValue.Get();
SetAnimationOutlinerFillPercentage(NewAnimationOutlinerFillPercentage);
FLogVisualizer::Get().SetAnimationOutlinerFillPercentage(NewAnimationOutlinerFillPercentage);
}
void SVisualLoggerView::OnSearchChanged(const FText& Filter)
{
TimelinesContainer->OnSearchChanged(Filter);
}
TSharedRef<SWidget> SVisualLoggerView::MakeSectionOverlay(TSharedRef<FVisualLoggerTimeSliderController> TimeSliderController, const TAttribute< TRange<float> >& ViewRange, const TAttribute<float>& ScrubPosition, bool bTopOverlay)
{
return
SNew(SHorizontalBox)
.Visibility(EVisibility::HitTestInvisible)
+ SHorizontalBox::Slot()
.FillWidth(TAttribute<float>(this, &SVisualLoggerView::GetAnimationOutlinerFillPercentage))
[
// Take up space but display nothing. This is required so that all areas dependent on time align correctly
SNullWidget::NullWidget
]
+ SHorizontalBox::Slot()
.FillWidth(1.0f)
[
SNew(SVisualLoggerSectionOverlay, TimeSliderController)
.DisplayScrubPosition(bTopOverlay)
.DisplayTickLines(!bTopOverlay)
];
}
void SVisualLoggerView::ResetData()
{
TimelinesContainer->ResetData();
}
void SVisualLoggerView::OnFiltersChanged()
{
TimelinesContainer->OnFiltersChanged();
}
void SVisualLoggerView::OnFiltersSearchChanged(const FText& Filter)
{
TimelinesContainer->OnFiltersSearchChanged(Filter);
}
FCursorReply SVisualLoggerView::OnCursorQuery(const FGeometry& MyGeometry, const FPointerEvent& CursorEvent) const
{
if (FLogVisualizer::Get().GetTimeSliderController()->IsPanning())
{
return FCursorReply::Cursor(EMouseCursor::GrabHand);
}
return FCursorReply::Cursor(EMouseCursor::Default);
}
TSharedRef<SWidget> SVisualLoggerView::MakeClassesFilterMenu()
{
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
const TArray< TSharedPtr<class SLogVisualizerTimeline> >& AllTimelines = TimelinesContainer->GetAllNodes();
FMenuBuilder MenuBuilder(true, NULL);
TArray<FString> UniqueClasses;
MenuBuilder.BeginSection(TEXT("Graphs"));
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2859626 on 2016/02/08 by Max.Preussner Editor: Added SaveAs functionality to content asset editors Change 2859666 on 2016/02/08 by Max.Chen Sequencer: Fix crash in CheckForWorldGCLeaks when loading a new map because spawnables are left behind. #jira UE-25616 Change 2859685 on 2016/02/08 by Max.Chen Sequencer: Add prompt to save sub level sequences if they are dirty #jira UE-26510 Change 2859715 on 2016/02/08 by Thomas.Sarkanen Adding actor spawning recording Actors are queued for record on spawn then added to the list like manually-specifed ones. Changed almost everything about UActorRecording. We now record on a per-component basis, with property tracks encapsulated in each actor recording. Much effort is expended to make sure that the correct components are owned by their respective actors, as we can add and remove components at runtime, but they must be created up-front in the UMovieScene Blueprints. We go as far as to add our own SCS nodes to make sure components are correctly spawned. Fixed infinite loop in FSequencer::AddSpawnable. Fixed visibility track instance to work with scene components as well as actors. Fixed particle track instance to work on UParticleSystemComponent rather than just AEmitters. Added particle recorder. Moved animation recording into an animation property recorder rather than having it as a special case. This still uses the animation recorder under the hood. Moved old-style Matinee animation control into FMovieSceneSkeletalAnimationTrackInstance & made this work on USkeletalMeshComponents directly, rather than via the old interface. Exposed SetMatineeAnimPositionInner and PreviewMatineeSetAnimPositionInner in FAnimMontageInstance so those utility functions can be used externally to Engine. Added a predicate version of UMovieScene::FindPossessable. Exposed UMovieSceneParticleSection::AddKey externally via MOVIESCENETRACKS_API so I can programmatically add keys. Fixed a crash in FScalableFloatDetails::CustomizeHeader when selecting PIE projectiles in Orion. Moved all recorders over to recording Actors or Components & store UObjects instead of AActors. Allowed skeletal animation tracks on components as well as actors. Change 2862675 on 2016/02/10 by Max.Chen Sequencer: Add option to link the sequencer curve editor with the sequencer timeline. Under General Options->Link Curve Editor Time Range. The default is false, so the sequencer and curve editor have separate time ranges. #jira UE-25933 Change 2862699 on 2016/02/11 by Max.Chen Sequencer: Added a playback status of jumping which the AudioTrack and Skeletal Mesh Track (anim notifies) ignores for updates. This is used to updating thumbnail at certain times. #jira UE-26447, UE-26671 Change 2862712 on 2016/02/11 by Max.Chen Sequencer: Fix spawnables firing off their particles. Disable auto activate on spawnable components #jira UE-26390 Change 2862719 on 2016/02/11 by Max.Preussner Editor: Refactored detail customizations for colors, rotators, vectors - broke color and rotator customizations out into their own files - added vector customizations (placeholder) - cleaned up localization namespaces, forward declarations Change 2866454 on 2016/02/14 by Max.Preussner Sequencer: Removed ULevelEditorSequencerSettings; moved default settings into INI Change 2866455 on 2016/02/14 by Thomas.Sarkanen Sequence recorder can now record replays Added extra edtior-only UI to the replay playback controls to record sequences. Curretnly very placeholder: only records the entire sequence and provides no feedback in the UI if it is recording. Fixed bindings to recorded objects not working in various circumstances. Added the ability to manually create a binding. Recompiled actor blueprints post-record if we added components. Fixed a null ptr dereference in FOrionTeamUIInfo::Update. Removed tolerances when reducing tracks - they are now 'very small'. Added actor filter so actors of certain classes can be recorded. Change 2866458 on 2016/02/14 by Max.Chen Sequencer: Fix anim notifies that fire at shot cuts. Anim notifies are fired from the last position to the current position. When jumping cuts, we want the delta to be 0 so that the anim notifies before the shot are not fired off. #jira UE-26390, UE-26671 Change 2866459 on 2016/02/14 by Max.Chen Sequencer: Add option to toggle visibility of combined keys Change 2866466 on 2016/02/14 by Frank.Fella Sequencer - Add a track for controlling streamed level visibilty and remove visibility code from the master level blueprint. Change 2866470 on 2016/02/14 by Max.Chen Sequencer: Add return value to indicate data has changed when a section has been added. This fixes a bug where creating a new section doesn't seem to add a key. #jira UE-26837 Change 2866481 on 2016/02/14 by Max.Preussner Sequencer: Implemented Presets for adding tracks automatically based on actor type (UE-24513) #Jira: UE-24513 Change 2866482 on 2016/02/14 by Max.Chen Sequencer: Allow for any actor that has a camera component to be a camera cut. #jira UE-26777 Change 2866484 on 2016/02/14 by Thomas.Sarkanen Added in/out times to sequence recording Also added the optional ability to record different actor types (heroes, projectiles, minions). Change 2866495 on 2016/02/14 by Max.Chen Sequencer: Need to limit camera control to the section bounds of the camera cut otherwise, control won't be relinquished back to player at the end of the playback. #jira UE-26886 [CL 2874647 by Max Chen in Main branch]
2016-02-19 21:36:27 -05:00
for (TSharedPtr<class SLogVisualizerTimeline> CurrentTimeline : AllTimelines)
{
FString OwnerClassName = CurrentTimeline->GetOwnerClassName().ToString();
if (UniqueClasses.Find(OwnerClassName) == INDEX_NONE)
{
FText LabelText = FText::FromString(OwnerClassName);
MenuBuilder.AddMenuEntry(
LabelText,
FText::Format(LOCTEXT("FilterByClassPrefix", "Toggle {0} class"), LabelText),
FSlateIcon(),
FUIAction(
FExecuteAction::CreateLambda([this, OwnerClassName]()
{
if (FVisualLoggerFilters::Get().MatchObjectName(OwnerClassName) && FVisualLoggerFilters::Get().GetSelectedObjects().Num() != 0)
{
FVisualLoggerFilters::Get().RemoveObjectFromSelection(OwnerClassName);
}
else
{
FVisualLoggerFilters::Get().SelectObject(OwnerClassName);
}
OnChangedClassesFilter();
}),
FCanExecuteAction(),
FIsActionChecked::CreateLambda([OwnerClassName]()->bool
{
return FVisualLoggerFilters::Get().GetSelectedObjects().Find(OwnerClassName) != INDEX_NONE;
}),
FIsActionButtonVisible()),
NAME_None,
EUserInterfaceActionType::ToggleButton
);
UniqueClasses.AddUnique(OwnerClassName);
}
}
//show any classes from persistent data
for (const FString& SelectedObj : FVisualLoggerFilters::Get().GetSelectedObjects())
{
if (UniqueClasses.Find(SelectedObj) == INDEX_NONE)
{
FText LabelText = FText::FromString(SelectedObj);
MenuBuilder.AddMenuEntry(
LabelText,
FText::Format(LOCTEXT("FilterByClassPrefix", "Toggle {0} class"), LabelText),
FSlateIcon(),
FUIAction(
FExecuteAction::CreateLambda([this, SelectedObj]()
{
if (FVisualLoggerFilters::Get().MatchObjectName(SelectedObj) && FVisualLoggerFilters::Get().GetSelectedObjects().Num() != 0)
{
FVisualLoggerFilters::Get().RemoveObjectFromSelection(SelectedObj);
}
else
{
FVisualLoggerFilters::Get().SelectObject(SelectedObj);
}
OnChangedClassesFilter();
}),
FCanExecuteAction(),
FIsActionChecked::CreateLambda([SelectedObj]()->bool
{
return FVisualLoggerFilters::Get().GetSelectedObjects().Find(SelectedObj) != INDEX_NONE;
}),
FIsActionButtonVisible()),
NAME_None,
EUserInterfaceActionType::ToggleButton
);
UniqueClasses.AddUnique(SelectedObj);
}
}
MenuBuilder.EndSection();
FDisplayMetrics DisplayMetrics;
FSlateApplication::Get().GetDisplayMetrics(DisplayMetrics);
const FVector2D DisplaySize(
DisplayMetrics.PrimaryDisplayWorkAreaRect.Right - DisplayMetrics.PrimaryDisplayWorkAreaRect.Left,
DisplayMetrics.PrimaryDisplayWorkAreaRect.Bottom - DisplayMetrics.PrimaryDisplayWorkAreaRect.Top);
return
SNew(SVerticalBox)
+ SVerticalBox::Slot()
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3152045) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3106449 on 2016/08/30 by Michael.Dupuis #jira UETOOL-229 Added generic command icons used in Edit Menu (including contextual menu) Change 3133997 on 2016/09/21 by Alex.Delesky #jira UE-34079 - FSceneView parameter for FBatchedElements::Draw is no longer an optional parameter. Change 3134132 on 2016/09/21 by Jamie.Dale Added the "unattended" flag when running the localzation commandlets via UAT Change 3134147 on 2016/09/21 by Frank.Fella Core - Add multitouch support to windows. Change 3134349 on 2016/09/21 by Michael.Dupuis #jira UE-36151 Update the title bar to display the branch also Change 3134355 on 2016/09/21 by Michael.Dupuis #jira UE-36041 When initially creating a projet and trying to add everything to source control, also add the uproject file Change 3134447 on 2016/09/21 by Alexis.Matte #jira UE-36064 The SpriteComponent is now properly reused when duplicating a light. Change 3134451 on 2016/09/21 by Alexis.Matte #jira UE-22782 Make sure when we re-import we dont try to match the mesh name if the option bCombineToSingle is true Change 3134457 on 2016/09/21 by Jamie.Dale FInternationalization::Leetify now deals with escape sequences correctly. This also changes it to mark all leetified text with the start and end marker, and the unit tests have been updated accordingly. Change 3134685 on 2016/09/21 by Matt.Kuhlenschmidt Cleaned up some of the UI for the new material slot workflow (part 1) Change 3134743 on 2016/09/21 by Matt.Kuhlenschmidt Fix crash clicking OK to the import mesh dialog in persona when a path is not selected. The OK button is now disabled until a valid path is selected Change 3134760 on 2016/09/21 by Matt.Kuhlenschmidt Guard against cascade crash if cascade was shutdown but there is an old cascade particle system component in the undo buffer that attempts to refresh cascade Change 3134837 on 2016/09/21 by Matt.Kuhlenschmidt Fix static analysis warnings in this file Change 3134939 on 2016/09/21 by Nick.Darnell Automation - Moving the functional testing hooks for the editor into a plugin, the goal is to make it so you don't have to see all the extra stuff automation adds to the editor until the game project needs it. Refactoring the way automation messages are serialized, no longer relying on a comma delimited string to serialize automation data. Improving the filter for automation window so it lets you put in a path, and find it that way. Fixing RunTests from the commandline so that it properly finds the tests, instead of jumping out of the loop as soon as it finds any one match. Change 3134941 on 2016/09/21 by Nick.Darnell Automation - Functional tests now support warnings as errors on a per test basis. Continued itteration on screenshot comparison. Change 3135051 on 2016/09/21 by Matt.Kuhlenschmidt Fixed size of material slots in persona details panel Change 3135076 on 2016/09/21 by Nick.Darnell Automation - Adding a missing file. Change 3135584 on 2016/09/22 by Gareth.Martin Removed unused ULandscapeInfo::BeginDestroy Slight cleanup to FLandscapeEditDataInterface::DeleteLayer Change 3135585 on 2016/09/22 by Gareth.Martin New Count algo Const'd Copy/Accumulate/Transform Change 3135599 on 2016/09/22 by Gareth.Martin Resolve crash if a Landscape Layer Info object is force deleted while it is in use :( #jira UE-35709 Change 3135724 on 2016/09/22 by Michael.Dupuis #jira UE-32662 Remove old migration code that was causing this side effect Change 3135726 on 2016/09/22 by Nick.Darnell Slate - Removing the SLATE_PRE_MULTIPLY macro. Change 3135730 on 2016/09/22 by Nick.Darnell UMG - Exposing the 2D hit location that the WidgetInteractionComponent hit on the WidgetComponent. Change 3135738 on 2016/09/22 by Matt.Kuhlenschmidt Ensure any handles to the backbuffer are released before the backbuffer is resized https://jira.it.epicgames.net/browse/UE-30488 Change 3135810 on 2016/09/22 by Ben.Marsh Build: Compile tools before running automated tests. Change 3135993 on 2016/09/22 by Matt.Kuhlenschmidt Ensure you can unpause after toggling play/pause with a keyboard shortcut. We were processing the keybinding on key down AND up which caused the unpause to instantly pause again https://jira.it.epicgames.net/browse/UE-36276 Change 3136257 on 2016/09/22 by Matt.Kuhlenschmidt Fixed assign of materials to components not working if you multi-select multiple components of a blueprint and assign the material. The construction script was running before all the material had been set on all components. Change 3136318 on 2016/09/22 by Alex.Delesky #jira UE-7405 - Forcing the mouse cursor to show and then clicking inside the viewport will no longer cause the mouse to lose focus Change 3136494 on 2016/09/22 by Matt.Kuhlenschmidt Fix crash restarting a mission in Odin Change 3136741 on 2016/09/22 by Cody.Albert Fixed SButton and SWidget to not multiply color and opacity, since that's already being done by SCompoundWidget #jira UE-36322 Change 3137711 on 2016/09/23 by Matt.Kuhlenschmidt Added guard against slate rendering with deleted materials. In this will now be caught with a looged with the deleted material name. Change 3137713 on 2016/09/23 by Matt.Kuhlenschmidt Removed the pooled draw elements stuff which is not used Change 3137791 on 2016/09/23 by Nick.Darnell MediaPlayer - Removing .png from one of the style files, as that's not required. Was causing warnings to be logged on load. Change 3137793 on 2016/09/23 by Nick.Darnell Localization - Adjusting some log statements to say with instead of w/ Change 3137796 on 2016/09/23 by Nick.Darnell Slate - Adding missing and replacing corrupted style files in the editor. Change 3137864 on 2016/09/23 by Matt.Kuhlenschmidt Fixed "actors are referenced are you sure you want to delete" dialog appearing when you are copying a lot of actors to another level Change 3137876 on 2016/09/23 by Jamie.Dale Added allocation tagging to MProf2 This hooks into the existing FScopeCycleCounterUObject used by the stats system to track object tags (object, package, and class) when an allocation is made. Tags should be in the format "Category:Tag", and the "Tag" part may include "/" to create levels in the tag hierarchy (as shown in the MProf2 tool). #jira UETOOL-950 Change 3137982 on 2016/09/23 by Gareth.Martin Added Invoke() support to CopyIf Change 3137983 on 2016/09/23 by Gareth.Martin Added ULandscapeInfo::ForAllLandscapeProxies to clean up a lot of horrible code - Removed some dependencies on ALandscape and ALandscapeStreamingProxy in the process :) Also made FLandscapeEditorLayerSettings's constructor explicit to clean up some other horrible code Change 3138053 on 2016/09/23 by Matt.Kuhlenschmidt Fixed Child Actor Template properties not visible after changing Child Actor Class Change 3138079 on 2016/09/23 by Jamie.Dale Fixing some Clang warnings Change 3138087 on 2016/09/23 by Jamie.Dale Added GetResourceSizeEx and GetResourceSizeBytes, and deprecated GetResourceSize GetResourceSizeEx populates a struct which reports not only how much memory is allocated, but also which arenas the memory was allocated from. GetResourceSizeBytes just wraps a call to GetResourceSizeEx and returns the total size from all arenas (this has the same behavior as the now deprecated GetResourceSize). Classes that used to override GetResourceSize should instead override GetResourceSizeEx and report their allocations as appropriate. #jira UETOOL-952 Change 3138127 on 2016/09/23 by Gareth.Martin Fixed crash when merging levels containing landscape #jira UE-36267 Change 3138821 on 2016/09/23 by Stephan.Jiang Fixes "Select all input node" doesn't work properly on output node. #jira UE-36335 Change 3138915 on 2016/09/23 by Stephan.Jiang Disable "select all linked nodes" for output nodes in material editor Change 3139341 on 2016/09/25 by Nick.Darnell Automation - Moving the Blueprint Compiler Tests into the RuntimeTests plugin, and making the context client only since that's the only valid place to runt these tests. Change 3139342 on 2016/09/25 by Nick.Darnell Landscape - Fixing some compiler errors on mac. Change 3139345 on 2016/09/25 by Nick.Darnell Automation - Spelling and cleanup. Change 3139346 on 2016/09/25 by Nick.Darnell Engine - Changing a check to an ensure, there's no reason to crash if this happens. Change 3139347 on 2016/09/25 by Nick.Darnell Automation - Making EFunctionalTestResult a BlueprintType Change 3139348 on 2016/09/25 by Nick.Darnell Automation - Adding another test map. Change 3139676 on 2016/09/26 by Michael.Dupuis #jira UE-32335 If we are a config object simply permit the transaction for undo/redo Change 3139702 on 2016/09/26 by Nick.Darnell UMG - Making GetLocalHitLocation on UWidgetComponent virtual. Change 3139760 on 2016/09/26 by Alexis.Matte Make sure we remove override materials from the list when the mesh point by the component has less materials. #jira UE-28845 Change 3139761 on 2016/09/26 by Alex.Delesky Added additional validation code to FPropertyNode to now properly validate TMap value and key nodes. #jira none Change 3139843 on 2016/09/26 by Alex.Delesky #jira UE-36066 - Clearing all options from a ComboBox String when selecting an option will now also clear out the selected text correctly. Change 3139880 on 2016/09/26 by Frank.Fella QAGame - Update multitouch test with less crashy assets? Change 3139908 on 2016/09/26 by Matt.Kuhlenschmidt Fix selections having the potential to be out of sync after undo/redo Change 3139928 on 2016/09/26 by Nick.Darnell Automation - tweaking the test maps some more. Change 3140646 on 2016/09/26 by Matt.Kuhlenschmidt Fix false positive with the test for vaild materials being rendered by slate. Change 3140912 on 2016/09/26 by Frank.Fella Core - Fix multitouch ifdef which was preventing it from actually being enabled.Also update test level blueprint so that it's actually testable. Change 3141218 on 2016/09/27 by Matt.Kuhlenschmidt PR #2798: BP open anim interferes with mouse movement (Contributed by projectgheist) Change 3141223 on 2016/09/27 by Jamie.Dale Updated UTextProperty::Identical to no longer compare display strings all the time It was supposed to compare the identity at runtime as the display string can change at runtime. This was preventing FText properties from being used in TSet/TMap as the hash needs to be consistent. #jira UE-36456 Change 3141242 on 2016/09/27 by Richard.TalbotWatkin Fixed various issues where making changes to components in the Blueprint Editor could cause a crash if there is an active component in the component visualizer. #jira UE-36402 - Editor crash when adding a spline component after having deleted another spline component Duplicated CL 3139370 from //UE4/Release-4.13 Duplicated CL 3139878 from //UE4/Release-4.13 Change 3141323 on 2016/09/27 by Michael.Dupuis #jira UE-35081 Enable bDisplayEngineVersionInBadge by default Change 3141798 on 2016/09/27 by tim.gautier Added UMG_DisplayWidget Change 3143038 on 2016/09/28 by Jamie.Dale Added extra context to FTableRowBase::OnPostDataImport It now takes the owning data table and the row name as parameters. This allows is to do more useful fix-up that depends on the context of where it's used (such as stabilized text keys). Change 3143039 on 2016/09/28 by Jamie.Dale Optimized UTextProperty::Identical to use a pointer comparison rather than read out the identity Only texts which have the same display string pointer can have the same identity, so this is a much faster check. Change 3143098 on 2016/09/28 by Gareth.Martin Fixed crash when loading duplicated landscape levels #jira UE-34890 Change 3143300 on 2016/09/28 by Gareth.Martin Fixed crash when duplicating a level containing a landscape through the content browser #jira UE-34890 Change 3143389 on 2016/09/28 by Jamie.Dale LastResort is no longer staged in shipping builds You can now use the Content/SlateDebug folder to store any Slate resources that shouldn't be used in a shipping build (either for the Engine or for a game). This also removes the old bUsesSlateEditorStyle hack as everything should have migrated away from that now. Change 3143565 on 2016/09/28 by Matt.Kuhlenschmidt Fixed this file Change 3143717 on 2016/09/28 by Michael.Dupuis Fixed lowercase Change 3143798 on 2016/09/28 by Matt.Kuhlenschmidt Fixed StreamingPauseRendering code to not attempt to tick the scene viewport on the slate loading thread while where are blocked on level streaming. The viewport is rendered once and the render target is passed to slate instead of the entire viewport Change 3143820 on 2016/09/28 by Alexis.Matte Use the PersonaToolikit to get the mesh Change 3143833 on 2016/09/28 by Matt.Kuhlenschmidt Added guard for UE-36499 Change 3144144 on 2016/09/28 by Matt.Kuhlenschmidt Fix constructor init order Change 3144821 on 2016/09/29 by Jamie.Dale Fixed feedback loop in FSlateEditableTextLayout::ComputeDesiredSize If the wrapping width is less than the scrollbar width, the scrollbar could constantly re-appear and then disappear. Change 3144867 on 2016/09/29 by Matt.Kuhlenschmidt Added a commandlet to allow command line importing of any asset type the engine supports. - Intermediate checkin Change 3144875 on 2016/09/29 by Nick.Darnell Automation - Adding CornellBox example map, fixing some additional tests, removing the Movement Test. Change 3144975 on 2016/09/29 by Matt.Kuhlenschmidt Disable auto-applying of scalability settings The user will still be asked if the settings should be applied but if they do nothing the notification will just go away without setting stuff. Change 3145274 on 2016/09/29 by Jamie.Dale New asset menu no longer has a scrollbar on most displays Change 3146004 on 2016/09/29 by Matt.Barnes Adding two FBX test files to help facilitate QA coverage on the new material/section workflow. Change 3146377 on 2016/09/30 by Gareth.Martin Fixed landscape rendering errors after using the "change component size" tool - also affected initial import of a landscape+weightmaps #jira UE-34518 Change 3146455 on 2016/09/30 by Jamie.Dale Fixing more menus that had scrollbars due to only being able to use half the vertical resolution Change 3146466 on 2016/09/30 by Gareth.Martin Fixed not being able to erase foliage attached to BSP #jira UE-36297 Change 3146471 on 2016/09/30 by Jamie.Dale Can no longer localize sequences via the Content Browser Change 3146569 on 2016/09/30 by Jamie.Dale Fixed UGatherTextFromSourceCommandlet::ParseSourceText being able to underflow while parsing Change 3147116 on 2016/09/30 by Michael.Dupuis #jira UE-33068 Update selection once after the bulk operation so the AssetContextMenu will have a proper selection, but only perform this if we're not in UserSearchingMode (which mean AssetPicker) Change 3148091 on 2016/10/01 by Matt.Barnes Adding a map and relevant assets to facilitate testing around the new material blueprint nodes - GetMaterialSlotNames, GetMaterialIndex, and SetMaterialByName, respectively Change 3148714 on 2016/10/03 by Nick.Darnell PR #2770: [Git plugin] Fix bug where history and merging do not work if the user has format.pretty settings in their gitconfig (Contributed by SRombauts) #jira UE-35568 Change 3148793 on 2016/10/03 by Nick.Darnell Automation - TPS for SM_Cornellbox Change 3148801 on 2016/10/03 by Nick.Darnell PR #2820: [WidgetBlueprintLibrary] Throwing Essential-Functionality-Understanding PIE Errors when Player Controller ptr not supplied (Contributed by EverNewJoy) #jira UE-36711 Change 3148805 on 2016/10/03 by Nick.Darnell PR #2822: Add missing base includes and forward declarations for UProgressBar and UTextBlock (Contributed by error454) #jira UE-36715 Change 3148813 on 2016/10/03 by Nick.Darnell UMG - The retainer now contains the SVirtualWindow directly in the hierarchy. This should now make it possible to reliably focus elements inside the retainer widget. Change 3148855 on 2016/10/03 by Gareth.Martin Fixed performance regression when importing landscape heightmaps #jira UE-36659 Change 3149482 on 2016/10/03 by Cody.Albert Added link to Support landing page to Help menu #jira UE-36603 Change 3149520 on 2016/10/03 by tim.gautier Edited UMG_Behavior - Collapsed now has a toggleable state to demonstrate functionality. Change 3149945 on 2016/10/04 by Gareth.Martin Fixed invisible landscape components when using tessellation on landscape material #jira UE-35494 Change 3149951 on 2016/10/04 by Gareth.Martin Reduced material update log spam when creating and editing landscapes - Some will remain, landscape fundementally manipulates a lot of material instances #jira UE-34440 Change 3150143 on 2016/10/04 by Matt.Kuhlenschmidt Fix not crashing when trying to clear objects which have a specific class filter in the property settings https://jira.it.epicgames.net/browse/UE-36692 Change 3150614 on 2016/10/04 by Nick.Darnell Git - Disabling some logging in non-debug builds of the git source control plugin. Change 3151647 on 2016/10/05 by Matt.Kuhlenschmidt Fix loc warnings in these files (duplicate loc keys) Change 3151679 on 2016/10/05 by Nick.Darnell Editor - Fixing the build, removing the VREditor module from the dynamically loaded list. Change 3151722 on 2016/10/05 by Gareth.Martin Fix breakage to LandscapeEdModeSplineTools.cpp caused by Dev-VREditor from main integration Change 3151816 on 2016/10/05 by Gareth.Martin Fixed more breakage to Landscape caused by Dev-VREditor from main integration [CL 3152072 by Matt Kuhlenschmidt in Main branch]
2016-10-05 13:23:01 -04:00
.MaxHeight(DisplaySize.Y * 0.9)
[
MenuBuilder.MakeWidget()
];
}
void SVisualLoggerView::OnChangedClassesFilter()
{
ULogVisualizerSettings::StaticClass()->GetDefaultObject<ULogVisualizerSettings>()->SaveConfig();
for (auto CurrentItem : TimelinesContainer->GetAllNodes())
{
CurrentItem->UpdateVisibility();
}
}
#undef LOCTEXT_NAMESPACE