2019-12-26 15:33:43 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
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 "SGraphActionMenu.h"
2022-08-24 22:45:13 -04:00
# include "EdGraph/EdGraph.h"
# include "EdGraph/EdGraphNode.h"
# include "EdGraphSchema_K2.h"
# include "EdGraphSchema_K2_Actions.h"
# include "EditorCategoryUtils.h"
# include "Fonts/SlateFontInfo.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"
2022-08-24 22:45:13 -04:00
# include "Framework/Views/ITypedTableView.h"
# include "GraphActionNode.h"
# include "GraphEditorDragDropAction.h"
# include "IDocumentation.h"
# include "Input/DragAndDrop.h"
# include "Input/Events.h"
# include "InputCoreTypes.h"
# include "Internationalization/Internationalization.h"
# include "K2Node.h"
# include "Layout/Children.h"
# include "Layout/Margin.h"
# include "Layout/Visibility.h"
# include "Math/NumericLimits.h"
# include "Math/UnrealMathSSE.h"
# include "Misc/AssertionMacros.h"
# include "Misc/CString.h"
# include "ProfilingDebugging/CpuProfilerTrace.h"
# include "SlotBase.h"
2022-05-09 13:12:28 -04:00
# include "Styling/AppStyle.h"
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3739701)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3358367 by tim.gautier
Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters
Change 3624848 by Jamie.Dale
Added a composite font for the editor (and Slate core)
This is defined in FLegacySlateFontInfoCache::GetDefaultFont and uses our default Roboto fonts (and the culture specific fallback fonts), and is now used as the default font for Slate and the editor.
This change removes all the manual TTF/OTF file references from the various Slate styles, as well as updating 200+ hard-coded font references to use the new default font.
This fixes various rendering issues with fonts in the editor when using different languages, and clears a big barrier for removing the legacy localized fallback font support.
Change 3654993 by Jamie.Dale
'Native' (now called 'FNativeFuncPtr') is now a function pointer that takes a UObject* context, rather than a UObject member function pointer
This avoids ambiguity when binding a native function pointer to a type that doesn't match the context pointer, as you could end up getting a function called with an incorrect 'this' pointer
Breaking changes:
- Native has been renamed to FNativeFuncPtr.
- The signature of a native function has changed (use the DECLARE_FUNCTION and DEFINE_FUNCTION macro pair).
- Use P_THIS if you were previously using the 'this' pointer in your native function.
Change 3699591 by Jamie.Dale
Added support for displaying and editing numbers in a culture correct way
Numeric input boxes in Slate will now display and accept numbers using the culture correct decimal separators. This is enabled by default, and can be disabled by setting "ShouldUseLocalizedNumericInput" to "False" in XEditorSettings.ini (for the editor), or XGameUserSettings.ini (for a game).
#jira UE-4028
Change 3719568 by Jamie.Dale
Allow platforms to override the default ICU timezone calculation
Change 3622366 by Bradut.Palas
#jira UE-46677
Don't allow OnLevelRemovedFromWorld to reset the transaction buffer if we're in PIE mode.
Also, remove one undo barrier in case the event was triggered in PIE mode or else we block the user from undoing previous actions.
Change 3622378 by Bradut.Palas
#jira UE-46590
we have a general bug with detecting the size of the last column, but the clamping prevents it from appearing with the other resize modes. The Content Browser is the only one to use fixed width.
The bug is that the size of the last element is incorrectly reported, after we drag back and forth.
Fixed by not reading the size real time, but reading it from the SlotInfo structure that is created earlier, which holds the correct value.
Change 3622552 by Jamie.Dale
Added support for per-culture sub-fonts within a composite font
This allows you to do things like create a Japanese specific Han sub-font to override the Han characters used in a CJK font (previously you needed to create a localized font asset to achieve this).
Change 3623170 by Jamie.Dale
Fixing warning
Change 3624846 by Jamie.Dale
Composite font cache optimizations
- Converted a typically small sized map to a sorted array + binary search.
- Converted the already sorted range array to use binary search.
- Contiguous ranges using the same typeface are now merged in the cache.
Change 3625576 by Cody.Albert
We now only set the widget tree to transient instead of passing the flag through StaticDuplicateObject. This was causing instanced subobjects to be flagged with RF_DuplicateTransient, preventing them from properly being duplicated when an array of instanced subobjects was modified.
#jira UE-47971
Change 3626057 by Matt.Kuhlenschmidt
Expose EUmgSequencePlayMode to blueprints
#jira UE-49255
Change 3626556 by Matt.Kuhlenschmidt
Fix window size and position adjustment not accounting for primary monitor not being a high DPI monitor when a secondary monitor is. Causes flickering and incorrect window positioning.
#jira UE-48922, UE-48957
Change 3627692 by Matt.Kuhlenschmidt
PR #3977: Source control submenu menu customization (Contributed by Kryofenix)
Change 3628600 by Arciel.Rekman
Added AutoCheckout to FAssetRenameManager for commandlet usage.
Change 3630561 by Richard.Hinckley
Deprecating the version of UFunctionalTestingManager::RunAllFunctionalTests that feature an unused bool parameter, replacing with a new version without that parameter.
Change 3630656 by Richard.Hinckley
Compile fix.
Change 3630964 by Arciel.Rekman
Fix CrashReporterClient headless build.
Change 3631050 by Matt.Kuhlenschmidt
Back out revision 9 from //UE4/Dev-Editor/Engine/Source/Runtime/Slate/Private/Widgets/Layout/SSplitter.cpp
Causes major problems with resizing splitters in editor
Change 3631140 by Arciel.Rekman
OpenAL: update Linux version to 1.18.1 (UETOOL-1253)
- Also remove a hack for RPATH and make it use a generic RPATH mechanism.
- Bulk of the change from Cengiz.Terzibas
#jira UETOOL-1253
Change 3632924 by Jamie.Dale
Added support for a catch-all fallback font within composite fonts
This allows you to provide broad "font of last resort" behavior on a per-composite font basis, in a way that can also work with different font styles.
Change 3633055 by Jamie.Dale
Fixed some refresh issues in the font editor
Change 3633062 by Jamie.Dale
Fixed localization commands being reported as unknown
Change 3633906 by Nick.Darnell
UMG - You can now store refrences to widgets in the same UserWidget. If you need to create links between widgets this is valuable. Will likely introduce new ways to utilize this in the future, for now just getting it working.
Change 3634070 by Arciel.Rekman
Display actually used values of material overrides.
Change 3634254 by Arciel.Rekman
Fix ResavePackages working poorly with projects on other drives (UE-49465).
#jira UE-49465
Change 3635985 by Matt.Kuhlenschmidt
Fixed typo in function name used by maps
PR #3975: Add tooltip to Arrays in Editor (Contributed by projectgheist)
Change 3636012 by Matt.Kuhlenschmidt
PR #3982: Unhide mouse cursor after using Ansel (Contributed by projectgheist)
Change 3636706 by Lauren.Ridge
Epic Friday: Save parameters to child or sibling instance functionality
Change 3638706 by Jamie.Dale
Added an improved Japanese font to the editor
This is only used when displaying Japanese text when the editor is set to Japanese, and uses a font with Japanese-style unified Han characters (our default fallback font uses Chinese-style unified Han characters).
#jira UE-33268
Change 3639438 by Arciel.Rekman
Linux: Repaired ARM server build (UE-49635).
- Made Steam* plugins compile.
- Disabled OpenEXR as the libs aren't compiled (need to be done separately).
(Edigrating CL 3639429 from Release-4.17 to Dev-Editor)
Change 3640625 by Matt.Kuhlenschmidt
PR #4012: FSlateApplication::ProcessReply use &Reply (Contributed by projectgheist)
Change 3640626 by Matt.Kuhlenschmidt
PR #4011: Remove space from filename (Contributed by projectgheist)
Change 3640697 by Matt.Kuhlenschmidt
PR #4010: PNG alpha fix (Contributed by mmdanggg2)
Change 3641137 by Jamie.Dale
Fixed an issue where a culture specific sub-font could produce incorrect measurements during a culture switch
It would fallback to the last resort font for a frame or two while the font cache flushed. This has it update the ranges immediately.
Change 3641351 by Jamie.Dale
Fixing incorrect weights on the Japanese sub-font
Change 3641356 by Jamie.Dale
Fixing inconsistent font sizes between CoreStyle and EditorStyle
Change 3641710 by Jamie.Dale
Fixed pure-virtual function call on UMulticastDelegateProperty
Change 3641941 by Lauren.Ridge
Adding a Parameter Details tab to the Material Editor so users can change default parameter details
Change 3644141 by Jamie.Dale
Added an improved Korean font to the editor
This is only used when displaying Korean text when the editor is set to Korean
Change 3644213 by Arciel.Rekman
Fix the side effects of a fix for UE-49465.
- Default materials were apparently not being found while building DDC (e.g. making an installed build), now they are
and we should not reset loaders on them lest we trigger HasDefaultMaterialsPostLoaded() assert later.
#jira UE-49465
Change 3644777 by Jamie.Dale
Reverting Korean editor font back to NanumGothic as NanumBarunGothic looked too squished
Change 3644879 by tim.gautier
QAGame: Optimized assets for Procedural Foliage testing
- Added camera bookmarks to Stations in QA-Foliage
- Renamed QA-FoliageTypeInst assets to ProcFoliage_Shape
- Fixed up redirectors
Change 3645109 by Matt.Kuhlenschmidt
PR #3990: Git plugin: fix status of renamed, removed, missing, untracked assets (Contributed by SRombauts)
Change 3645114 by Matt.Kuhlenschmidt
PR #3991: Git Plugin: Fix RunDumpToFile() leaking Process handles (Contributed by SRombauts)
Change 3645116 by Matt.Kuhlenschmidt
PR #3996: Git Plugin: run an "UpdateStatus" at "Connect" time to populate the Source Control cache (Contributed by SRombauts)
Change 3645118 by Matt.Kuhlenschmidt
PR #4005: Git Plugin: Expand the size of the Button "Initialize project with Git" (Contributed by SRombauts)
Change 3645876 by Arciel.Rekman
Linux: fix submenus of context menu not working (UE-47639).
- Change by icculus (Ryan Gordon).
- QA-ClickHUD seems to be not affected by this change (it is already broken alas).
#jira UE-47639
Change 3648088 by Jamie.Dale
Fixed some case-sensitivity issues with FText format argument names/pins
These were originally case-sensitive, but that was lost somewhere along the way. This change restores their original behavior.
#jira UE-47122
Change 3648097 by Jamie.Dale
Moved common macOS/iOS localization implementation into FApplePlatformMisc
#jira UE-49940
Change 3650858 by Arciel.Rekman
UBT: improve CodeLite project generator (UE-49400).
- PR #3987 submitted by yaakuro (Cengiz Terzibas).
#jira UE-49400
Change 3651231 by Arciel.Rekman
Linux: default to SM5 for Vulkan.
- Change by Timothee.Bessett.
Change 3653627 by Matt.Kuhlenschmidt
PR #4020: Source Control Submit Files now interprets Escape key as if the user clicked cancel (Contributed by SRombauts)
Change 3653628 by Matt.Kuhlenschmidt
PR #4022: Add New C++ Class dialog remember previously selected module. (Contributed by Koderz)
Change 3653984 by Jamie.Dale
Fixed some redundant string construction
Change 3658528 by Joe.Graf
UE-45141 - Added CMAKE_CXX_COMPILER and CMAKE_C_COMPILER settings to the generated CMake files
Change 3658594 by Jamie.Dale
Zipping in UAT now always uses UTF-8 encoding to prevent Unicode issues
#jira UE-27263
Change 3659643 by Michael.Trepka
Added a call to FCoreDelegates::ApplicationWillTerminateDelegate.Broadcast(); in Mac RequestExit() to match Windows behavior
#jira UETOOL-1238
Change 3661908 by Matt.Kuhlenschmidt
USD asset importing improvements
Change 3664100 by Matt.Kuhlenschmidt
Fix static analysis
Change 3664107 by Matt.Kuhlenschmidt
PR #4051: UE-49448: FPropertyChangedEvent to include TopLevelObjects (Contributed by projectgheist)
Change 3664125 by Matt.Kuhlenschmidt
PR #4036: Add missing GRAPHEDITOR_API (Contributed by projectgheist)
Change 3664340 by Jamie.Dale
PR #3648: Prevent GatherTextFromSource from failing the commandlet (Contributed by projectgheist)
Change 3664403 by Jamie.Dale
PR #3769: Fixes UE-46973 - Drag and Dropping Folders with Names (Contributed by LordNed)
Change 3664539 by Jamie.Dale
PR #3280: Added EditableText functionality (Contributed by projectgheist)
Change 3665433 by Alexis.Matte
When we finish importing morph target we must re-initialise the render resources since we now use GPU morph target.
#jira UE-50231
Change 3666747 by Cody.Albert
Change 3669280 by Jamie.Dale
PR #4060: UE-50455: Verify folder is newly created before removing from tree (Contributed by projectgheist)
Change 3669718 by Jamie.Dale
PR #4061: Clear Content Browser folder search box on escape key (Contributed by projectgheist)
Change 3670838 by Alexis.Matte
Fix crash when deleting a skeletal mesh LOD and the mouse is over the "reimport" button.
#jira UE-50387
Change 3671559 by Matt.Kuhlenschmidt
Update SimpleUI automation test ground truth
#jira UE-50325
Change 3671587 by Alexis.Matte
Fix fbx importer scale not always apply. A cache array was not reset when opening a fbx file.
#jira UE-50147
Change 3671730 by Jamie.Dale
Added PostInitInstance to UClass to allow class types to perform construction time initialization of their instances
Change 3672104 by Michael.Dupuis
#jira UE-50427: Update the volume visibility list of the editor viewport when changing the procedural foliage settings
Change 3674906 by Alexis.Matte
Make sure the export LOD option is taken in consideration when exporting a level or the current level selection
#jira UE-50248
Change 3674942 by Matt.Kuhlenschmidt
Fix static analysis
Change 3675401 by Alexis.Matte
-fix export animation, do not truncate the last frame anymore
-fix the import animation, there was a display issue in the progress bar. Also a floorToInt sometime truncate the last valid frame. We also have a better way to calculate the time increment we use to sample the fbx curves.
#jira UE-48231
Change 3675990 by Alexis.Matte
Remove morph target when doing a re-import, so morph will be remove if they do not exist anymore in the fbx.
This is to avoid driving random vertex with old morph target.
#jira UE-50391
Change 3676169 by Alexis.Matte
When we re-import with dialog the option, "Override Full Name" was set to false and save with the option dialog. We now not set it to false, since it was not use during re-import.
Change 3676396 by Alexis.Matte
Make all LOD 0 name consistent in staticmesh editor
#jira UE-49461
Change 3677730 by Cody.Albert
Enable locking of Persistent Level in Levels tab
#jira UE-50686
Change 3677838 by Jamie.Dale
Replaced broken version of Roboto Light
Change 3679619 by Alexis.Matte
Integrate GitHub pr #4029 to fix import fbx chunk material assignation.
#jira UE-50001
Change 3680093 by Alexis.Matte
Fix the skeletal mesh so the vertex color is part of the vertex equality like with the static mesh.
Change 3680931 by Arciel.Rekman
SlateDialogs: show image icon for *.tga (UE-25106).
- Also reworked the logic somewhat.
#jira UE-25106
Change 3681966 by Yannick.Lange
MaterialEditor post-process preview.
#jira UE-45307
Change 3682407 by Lauren.Ridge
Fixes for material editor compile errors
Change 3682628 by Lauren.Ridge
Content browser filters for Material Layers, Blends, and their instances
Change 3682725 by Lauren.Ridge
Adding filter assets and instance assets to Material Layers and Material Layer Blends. Turning Material Layering on by default
Change 3682921 by Lauren.Ridge
Fix for instance layers not initializing fully
Change 3682954 by Lauren.Ridge
Creating Material Layer Test Assets
Change 3683582 by Alexis.Matte
Fix static analysis build
Change 3683614 by Matt.Kuhlenschmidt
PR #4062: Git Plugin: Fix UE-44637: Deleting an asset is unsuccessful if the asset is marked for add (Contributed by SRombauts)
Change 3684130 by Lauren.Ridge
Allow visible parameter retrieval to correctly recurse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3686289 by Arciel.Rekman
Remove the pessimization (UE-23791).
Change 3686455 by Lauren.Ridge
Fixes for adding/removing a layer parameter from the parent not updating the child
Change 3686829 by Jamie.Dale
No longer include trailing whitespace in the justification calculation for soft-wrapped lines
#jira UE-50266
Change 3686970 by Lauren.Ridge
Making material parameter preview work for functions as well
Change 3687077 by Jamie.Dale
Fixed crash using FActorDetails with the struct details panel
Change 3687152 by Jamie.Dale
Fixed the row structure tag not appearing in the Content Browser for Data Table assets
The CDO is used to filter these tags, and the CDO was omiting that tag which caused it to be filtered for all Data Tables.
#jira UE-48691
Change 3687174 by Lauren.Ridge
Fix for material layer sub-parameters showing up in the default material parameters panel
Change 3688100 by Lauren.Ridge
Fixing static analysis error
Change 3688317 by Jamie.Dale
Fixed crash using the widget reflector in a cooked game
Editor-style isn't available in cooked games. Core-style should be used instead for the widget reflector.
Change 3689054 by Jamie.Dale
Reference Viewer can now show/copy references lists for nodes with multiple objects, or multiple selected nodes
#jira UE-45751
Change 3689513 by Jamie.Dale
Fixed justification bug with RTL text caused by CL# 3686829
Also implemented the same alignment fix for visually left-aligned RTL text.
#jira UE-50266
Change 3690231 by Lauren.Ridge
Added Material Layers Parameters Preview (all editing disabled) panel to the Material Editor
Change 3690234 by Lauren.Ridge
Adding Material Layers Function Parameter to Static Parameter Compare
Change 3690750 by Chris.Bunner
Potential nullptr crash.
Change 3690751 by Chris.Bunner
Fixed logic on overridden vector parameter retrieval for material instances checking a function owned parameter.
Change 3691010 by Jamie.Dale
Fixed some clipping issues that could occur with right-aligned text
FTextBlockLayout::OnPaint was passing an unscaled offset to SetVisibleRegion, and it also wasn't correctly adjusting the offset for RTL text with left-alignment (which becomes a visual right-alignment)
#jira UE-46760
Change 3691091 by Jamie.Dale
Renamed FTextBlockLayout to FSlateTextBlockLayout to reflect that it's a Slate specific type
Change 3691134 by Alexis.Matte
Make sure we instance also the collision mesh when exporting a level to fbx file.
#jira UE-51066
Change 3691157 by Lauren.Ridge
Fix for reset to default not refreshing sub-parameters
Change 3691192 by Jamie.Dale
Fixed Content Browser selection resetting when changing certain view settings
#jira UE-49611
Change 3691204 by Alexis.Matte
Remove fbx export file version 2010 compatibility. The 2018 fbx sdk refuse to export earlier then 2011.
#jira UE-51023
Change 3692335 by Lauren.Ridge
Setting displayed asset to equal filter asset if no instance has been selected
Change 3692479 by Jamie.Dale
Fixed whitespace
Change 3692508 by Alexis.Matte
Make sure we warn the user that there is nothing to export when exporting to fbx using "export selected" or "export All" from the file menu.
We also prevent the export dialog to show
#jira UE-50973
Change 3692639 by Jamie.Dale
Translation Editor now shows stale translations as "Untranslated"
Change 3692743 by Lauren.Ridge
Smaller blend icons, added icon size override to FObjectEntryBox
Change 3692830 by Alexis.Matte
Fix linux build
Change 3692894 by Lauren.Ridge
Tooltip on "Parent" in material layers
Change 3693141 by Jamie.Dale
Removed dead code
FastDecimalFormat made this redundant
Change 3693580 by Jamie.Dale
Added AlwaysSign number formatting option
#jira UE-10310
Change 3693784 by Jamie.Dale
Fixed assert extracting the number formatting rules for Arabic
It uses a character outside the BMP for its plus and minus sign, so we need these to be a string to handle that.
#jira UE-10310
Change 3694428 by Arciel.Rekman
Linux: make directory watch request a warning so they don't block cooking.
- See https://answers.unrealengine.com/questions/715206/cook-error-on-linux.html
Change 3694458 by Matt.Kuhlenschmidt
Made duplicate keybinding warning non-fatal
Change 3694496 by Alexis.Matte
fix static analysis build
Change 3694515 by Jamie.Dale
Added support for culture correct parsing of decimal numbers
#jira UE-4028
Change 3694621 by Jamie.Dale
Added a variant of FastDecimalFormat::StringToNumber that takes a string length
This can be useful if you want to convert a number from within a non-null terminated string
#jira UE-4028
Change 3694958 by Jamie.Dale
Added a parsed length output to FastDecimalFormat::StringToNumber to allow permissive parsing
You can test this rather than the result if you want to attempt to parse a number from a string that may have other data after it. This also fixes the sign-suffix causing the parsing to fail.
#jira UE-4028
Change 3695083 by Alexis.Matte
Optimisation of the morph target import
- We now compute only the normal for the shape the tangent are not necessary
- The async tasks are create when there is some available cpu thread to avoid filling the memory
- When we re-import the morph target are deleted in bulk avoiding to initialize the morph map for every morphs targets
#jira UE-50945
Change 3695122 by Jamie.Dale
GetCultureAgnosticFormattingRules no longer returns a copy
Change 3695835 by Arciel.Rekman
TestPAL: greatly expanded malloc test.
Change 3695918 by Arciel.Rekman
TestPAL: Added thread priority test.
Change 3696589 by Arciel.Rekman
TestPAL: tweak thread priorities test (better readability).
Change 3697345 by Alexis.Matte
Fix reorder of material when importing a LOD with new material
#jira UE-51135
Change 3699590 by Jamie.Dale
Updated SGraphPinNum to use a numeric editor
#jira UE-4028
Change 3699698 by Matt.Kuhlenschmidt
Fix crash opening the level viewport context menu if the actor-component selection is out of sync
#jira UE-48444
Change 3700158 by Arciel.Rekman
Enable packaging for Android Vulkan on Linux (UETOOL-1232).
- Change by Cengiz Terzibas
Change 3700224 by Arciel.Rekman
TestPAL: fixed a memory leak.
Change 3700775 by Cody.Albert
Don't need to initialize EnvironmentCubeMap twice.
Change 3700866 by Michael.Trepka
PR #3223: Remove unnecessary reallocation. (Contributed by foollbar)
#jira UE-41643
Change 3701132 by Michael.Trepka
Copy of CL 3671538
Fixed issues with editor's game mode in high DPI on Mac.
#jira UE-49947, UE-51063
Change 3701421 by Michael.Trepka
Fixed a crash in FScreenShotManager caused by an attempt to access a deleted FString in async lambda expression
Change 3701495 by Alexis.Matte
Fix fbx importer "import normals" option when mix with "mikkt" tangent build it was recomputing the normals instead of importing them.
#jira UE-UE-51359
Change 3702982 by Jamie.Dale
Cleaned up some localization setting names
These now have consistent names and avoid double negatives. This also fixes needing to restart the editor when changing the "ShouldUseLocalizedPropertyNames" setting.
Change 3703517 by Arciel.Rekman
TestPAL: improved thread test.
- Changed the counter to a normal variable to reduce possible contentions (threads used to share the counter in an early prototype, hence the usage of an atomic).
Change 3704378 by Michael.Trepka
Disable Zoom button on Mac if project requests a resizeable window without it.
#jira UE-51335
Change 3706316 by Jamie.Dale
Fixed the asset search suggestions list closing if you clicked on its scrollbar
#jira UE-28885
Change 3706855 by Alexis.Matte
Support importing animation that has some keys with negative time
#jira UE-51305
Change 3709634 by Matt.Kuhlenschmidt
PR #4146: Null access check on ForceLOD in FViewport::HighResScreenshot (Contributed by projectgheist)
Change 3711085 by Michael.Trepka
Reenabled UBT makefiles on Mac
Change 3713049 by Josh.Engebretson
The ConfigPropertyEditor now generates a unique runtime UClass. It uses the outer name on the property instead of a unique ID as a unique id would generate a new UClass every time (and these are RF_Standalone). I also removed some static qualifiers for Section and Property names which were incorrect.
#jira UE-51319
Change 3713144 by Lauren.Ridge
Fixing automated test error
#jira UE-50982
Change 3713395 by Alexis.Matte
Fix auto import mountpoint
#jira UE-51524
Change 3713881 by Michael.Trepka
Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets.
#jira UE-31093
Change 3714197 by Michael.Trepka
Send IMM key down event to the main window instead of Cocoa key window, as that's what the Slate's active window is. This solves problems with IMM not working in context menu text edit fields.
#jira UE-47915
Change 3714911 by Joe.Graf
Merge of cmake changes from Dev-Rendering
Change 3715973 by Michael.Trepka
Disable OS close button on Windows if project settings request that
#jira UE-45522
Change 3716390 by Lauren.Ridge
The color picker summoned when double-clicking vector3 nodes now has its intended "do not refresh until OK is clicked" behavior.
#jira UE-50916
Change 3716529 by Josh.Engebretson
Content Browser: Clamp "Assets to Load at Once Before Warning" so it cannot be set below 1
#jira UE-51341
Change 3716885 by Josh.Engebretson
Tracking transactions such as a duplication operation can modify a selection which differs from the initial one. Added package state tracking to restore unmodified state when necessary.
#jira UE-48572
Change 3716929 by Josh.Engebretson
Unshelved from pending changelist '3364093':
PR #3420: Exe's icons and properties (Contributed by projectgheist)
Change 3716937 by Josh.Engebretson
Unshelved from pending changelist '3647428':
PR #4026: Fixed memory leaks for pipe writes and added data pipe writes (Contributed by Hemofektik)
Change 3717002 by Josh.Engebretson
Fix FileReference/string conversion
Change 3717355 by Joe.Graf
Fixed CMake file generation on Windows including Engine/Source/ThirdParty source
Change 3718256 by Arciel.Rekman
TestPAL: slight mod to the malloc test.
- Touch the allocated memory to check actual resident usage.
Change 3718290 by Arciel.Rekman
BAFO: place descriptor after the allocation to save some VIRT memory.
- We're relying on passing correct "Size" argument to Free() anyway, and this modification makes use of that extra information to save on memory for the descriptor.
Change 3718508 by Michael.Trepka
Fixed vsnprintf on platforms that use our custom implementation in StandardPlatformString.cpp to ignore length modifier for certain types (floating point, pointer)
#jira UE-46148
Change 3718855 by Lauren.Ridge
Adding content browser favorite folders. Add or remove folders from the favorite list in the folder's right-click context menu, and hide or show the favorites list in the Content Browser options.
Change 3718932 by Cody.Albert
Update ActorSequence plugin loading phase to PreDefault
#jira UE-51612
Change 3719378 by tim.gautier
QAGame: Renamed multiTxt_Justification > UMG_TextJustification.
Added additional Text Widgets for testing
Change 3719413 by Lauren.Ridge
Resubmit of content browser favorites
Change 3719803 by Yannick.Lange
VREditor: Fix crash with null GEditor
#jira UE-50103
Change 3721127 by tim.gautier
QAGame: Fixed up a ton of redirectors within /Content and /Content/Materials
- Added M_ParamDefaults and MF_ParamDefaults
- Moved legacy MeshPaint materials into /Content/Materials/MeshPaint
- Renamed ColorPulse assets from MatFunction_ > MF_, moved into /Content/Materials/Functions
Change 3721255 by Alexis.Matte
Replace skeletal mesh import option "keep overlapping vertex" by 3 float thresholds allowing the user to control the welding thresholds.
#jira UE-51363
Change 3721594 by Lauren.Ridge
Material Blends now have plane mesh previews in their icons.
Change 3722072 by tim.gautier
QAGame: Updated MF_ParamDefaults - using red channel as roughness
Updated M_ParamDefaults - tweaked Scalar values
Change 3722180 by Michael.Trepka
Updated Xcode project generator to sort projects in the navigator by name (within folders) and also sort the list of schemes so that their order matches the order of projects in the navigator.
#jira UE-25941
Change 3722220 by Michael.Trepka
Fixed a problem with Xcode project generator not handling quoted preprocessor definitions correctly
#jira UE-40246
Change 3722806 by Lauren.Ridge
Fixing non-editor compiles
Change 3722914 by Alexis.Matte
Fbx importer: Add new attribute type(eSkeleton) for staticmesh socket import.
#jira UE-51665
Change 3723446 by Michael.Trepka
Copy of CL 3688862 from 4.18 + one more fix for a deadlock related to window resizing when using IME
Don't do anything in Mac window's windowWillResize: if we're simply chaning the z order of windows. This way we avoid a rare dead lock when hiding the window.
#jira UE-48257
Change 3723505 by Matt.Kuhlenschmidt
Fix duplicate actors being created for USD primitives that specify a custom actor class
Change 3723555 by Matt.Kuhlenschmidt
Fix crash loading the gameplayabilities module
#jira UE-51693
Change 3723557 by Matt.Kuhlenschmidt
Fixed tooltip on viewport dpi scaling option
Change 3723870 by Lauren.Ridge
Fixing incorrect reset to default visibility, adding clear behavior to fields
Change 3723917 by Arciel.Rekman
Linux: fix compilation with glibc 2.26+ (UE-51699).
- Fixes compilation on Ubuntu 17.10 among others.
(Merging 3723489 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3723918 by Arciel.Rekman
Linux: do not test for popcnt presence unnecessarily (UE-51677).
(Merging 3723904 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3724229 by Arciel.Rekman
Fix FOutputDeviceStdOutput to use printf() on Unix platforms.
Change 3724261 by Arciel.Rekman
TestPAL: fix thread priority test (zero the counter).
Change 3724978 by Arciel.Rekman
Linux: fix priority calculation.
- Rlimit values are always positive, so this was completely broken when the RLIMIT_NICE is non-0.
Change 3725382 by Matt.Kuhlenschmidt
Guard against crashes and add more logging when actor creation fails.
Looks like it could be manual garbage collections triggered before conversion is complete so those have been removed
#jira UE-47464
Change 3725559 by Matt.Kuhlenschmidt
Added a setting to enable/disable high dpi support in editor. This currently only functions in Windows.
Moved some files around for better consistency
Change 3725640 by Arciel.Rekman
Fix Linux thread/process priorities.
- Should also speed up SCW on Linux by deprioritizing them less.
Change 3726101 by Matt.Kuhlenschmidt
Fix logic bug in USD child "kind" type resolving
Change 3726244 by Joe.Graf
Added an option to generate a minimal set of targets for cmake files
Added shader and config files to cmake file generation for searching within IDEs
Change 3726506 by Arciel.Rekman
Fix compile issue after DPI change.
Change 3726549 by Matt.Kuhlenschmidt
Remove unnecessary indirection to cached widgets in the hit test grid
Change 3726660 by Arciel.Rekman
Enable DPI switch on Linux.
Change 3726763 by Arciel.Rekman
Fix mismatching "noperspective" qualifier (UE-50807).
- Pull request #4080 by TTimo.
Change 3727080 by Michael.Trepka
Added support for editor's EnableHighDPIAwareness setting on Mac
Change 3727658 by Matt.Kuhlenschmidt
Fix shutdown crash if level editor is still referenced after the object system has been gc'd
#jira UE-51630
Change 3728270 by Matt.Kuhlenschmidt
Remove propertyeditor dependency from editorstyle
Change 3728291 by Arciel.Rekman
Linux: fix for a crash on a headless system (UE-51714).
- Preliminary change before merging to 4.18.
Change 3728293 by Arciel.Rekman
Linux: remove unneeded dependency on CEF.
- Old workaround should no longer be needed, while this dependency makes UE4 depend on a ton of external libs.
Change 3728524 by Michael.Trepka
Copy of CL 3725570
Removed Enable Fullscreen option from editor's Window menu on Mac. Windowed fullscreen mode is currently unavailable on Mac in editor mode as supporting it properly would require it to work with multiple spaces and split screen, which we currently don't handle (requested in UE-27240)
#jira UE-51709
Change 3728875 by Michael.Trepka
Fixed compile error in Mac SlateOpenGLContext.cpp
Change 3728880 by Matt.Kuhlenschmidt
Guard against invalid worlds in thumbnail renderers
Change 3728924 by Michael.Trepka
Don't defer MacApplication->CloseWindow() call. This should fix a rare problem with deferred call executing during Slate's PrepassWindowAndChildren call.
#jira UE-51711
Change 3729288 by Joe.Graf
Added the .idea/misc.xml file generation to speed up CLion indexing
Change 3729935 by Michael.Dupuis
#jira UE-51722: Hide from UI invalid enum values
Change 3730234 by Matt.Kuhlenschmidt
Fix "Game Gets Mouse Control" setting no longer functioning and instead the mouse was always captured.
#jira UE-51801
Change 3730349 by Michael.Dupuis
#jira UE-51324: Clear the UI selection when rebuilding the palette, as we destroyed all items and recreate them, so selection is on invalid item
Change 3730438 by Lauren.Ridge
Cleaning up material layering UI functions
Change 3730723 by Jamie.Dale
Fixed FastDecimalFormat::StringToNumber incorrectly reporting that number-like sequences that lacked digits had been parsed as numbers
#jira UE-51799
Change 3731008 by Lauren.Ridge
Changing Layers and Blends from proxy assets to real assets
Change 3731026 by Arciel.Rekman
libelf: make elf_end() visible (UE-51843).
- This repairs compilation for a case when CUDA is being used.
- Also added some missing files for ARM 32-bit.
Change 3731081 by Lauren.Ridge
New material layer test assets
Change 3731186 by Josh.Engebretson
Adding camera speed scalar setting and Toolbar UI to increase range on camera speed presets
#jira UE-50104
Change 3731188 by Mike.Erwin
Improve responsiveness of Open Asset dialog.
On large projects, there's a noticeable delay when opening and searching/filtering assets.
Stopwatch measurements on my machine (seconds for ~122,000 assets):
before with this CL
ctrl-P 1.4 0.45
search 1.8 0.55
CollectionManagerModule was the main culprit for search/filter slowness.
Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation.
Change 3731682 by Arciel.Rekman
UnrealEd: Allow unattended commandlets to rename/save packages.
Change 3732305 by Michael.Dupuis
#jira UE-48434 : Only register if the foliage type still has a valid mesh
Change 3732361 by Matt.Kuhlenschmidt
Fix two settings objects being created in the transient package with the same name
#jira UE-51891
Change 3732895 by Josh.Engebretson
https://jira.it.epicgames.net/browse/UE-51706
If a shared DDC is not being used, present a notification to the licensee with a link on how to setup a shared DDC.
Adds DDC notification events for check/put and query for whether a shared DDC is in use.
#jira UE-51706
Change 3733025 by Arciel.Rekman
UBT: make sure new clang versions are invoked.
Change 3733311 by Mike.Erwin
Fix Linux compile warning from CL 3731188
It didn't like mixing && and || without parentheses. Reworked logic to do one test at a time, put cheaper tests first to avoid calls to more expensive IsPluginFolder.
Change 3733658 by Josh.Engebretson
Add a missing #undef LOCTEXT_NAMESPACE
Change 3734003 by Arciel.Rekman
Fix Windows attempting to use printf %ls and crashing at that (UE-51934).
Change 3734039 by Michael.Trepka
Fixed a couple of merge issues in Mac ApplicationCore
Change 3734052 by Michael.Trepka
One more Mac ApplicationCore fix
Change 3734244 by Lauren.Ridge
Fix for accessing Slate window on render thread
Change 3734950 by Josh.Engebretson
Fixing clang warning
Change 3734978 by Jamie.Dale
Relaxed enum property importing to allow valid numeric values to be imported too
This was previously made more strict which caused a regression in Data Table importing
#jira UE-51848
Change 3734999 by Arciel.Rekman
Linux: add LTO support and more.
- Adds ability to use link-time opitimization (reusing current target property bAllowLTCG).
- Supports using llvm-ar and lld instead of ar/ranlib and ld.
- More build information printed (and in a better organized way).
- Native scripts updated to install packages with the appropriate tools on supported systems
- AutoSDKs updated to require a new toolchain (already checked in).
- Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089
Change 3735268 by Matt.Kuhlenschmidt
Added support for canvas based DPI scaling.
-Scene canvas is by default not scaled as this could severely impact any game using a canvas based UI
-The debug canvas for stats is always dpi scaled in editor and pie.
-Eliminated text scaling workaround now that the entire canvas is properly scaled
-Enabled canvas scaling in cascade UI
Change 3735329 by Matt.Kuhlenschmidt
Fix potential crash if an asset editor has an object deleted out from under it
#jira UE-51941
Change 3735502 by Arciel.Rekman
Fix compile issue (bShouldUpdateScreenPercentage).
Change 3735878 by Jamie.Dale
Updated FString::SanitizeFloat to allow you to specify the min number of fractional digits to have in the resultant string
This defaults to 1 as that was the old behavior of FString::SanitizeFloat, but can also be set to 0 to prevent adding .0 to whole numbers.
Change 3735881 by Jamie.Dale
JsonValue no longer stringifies whole numbers as floats
Change 3735884 by Jamie.Dale
Only allow enums to import integral values
Change 3735912 by Josh.Engebretson
Improving cook process error/warning handling including asset warning/error content browser links and manual dismiss for cook error notifications
#jira UE-48131
Change 3736280 by Matt.Kuhlenschmidt
Fix 0 dpi scale for canvases
#jira UE-51995
Change 3736298 by Matt.Kuhlenschmidt
Force focus of game viewports in vr mode
Change 3736374 by Jamie.Dale
Fixed some places where input chords were being used without testing that they had a valid key set
#jira UE-51799
Change 3738543 by Matt.Kuhlenschmidt
Better fix for edit condition crashes
#jira UE-51886
Change 3738603 by Lauren.Ridge
Copy over of drag and drop non-array onto array fix
Change 3739701 by Chris.Babcock
Fix crashlytics merge error
#jira UE-52064
#ue4
#android
[CL 3739980 by Matt Kuhlenschmidt in Main branch]
2017-11-06 18:22:01 -05:00
# include "Styling/CoreStyle.h"
2022-08-24 22:45:13 -04:00
# include "Styling/ISlateStyle.h"
# include "Styling/SlateTypes.h"
# include "UObject/ObjectPtr.h"
# include "UObject/UObjectGlobals.h"
# include "UObject/UnrealNames.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 "Widgets/Input/SSearchBox.h"
2022-08-24 22:45:13 -04:00
# include "Widgets/Layout/SBorder.h"
# include "Widgets/Layout/SScrollBorder.h"
2021-02-22 15:56:04 -04:00
# include "Widgets/Layout/SSeparator.h"
2022-08-24 22:45:13 -04:00
# include "Widgets/SBoxPanel.h"
# include "Widgets/SNullWidget.h"
# include "Widgets/SToolTip.h"
# include "Widgets/Text/SInlineEditableTextBlock.h"
# include "Widgets/Text/SRichTextBlock.h"
# include "Widgets/Text/STextBlock.h"
# include "Widgets/Views/STableRow.h"
class ITableRow ;
class SWidget ;
struct FGeometry ;
struct FSlateBrush ;
2014-03-14 14:13:41 -04:00
# define LOCTEXT_NAMESPACE "GraphActionMenu"
2015-01-26 17:51:00 -05:00
//////////////////////////////////////////////////////////////////////////
2024-04-05 20:46:03 -04:00
namespace UE : : GraphEditor : : Private
{
// These constants control where we attempt to put the focused item
// this is the 'displayed index' of a menu entry, e.g. 2nd or 12th from
// the top of the list control. We're handling this ourself because
// this control has to amortize list building because the list is
// so large... a virtual list control that can handle >1m items
// is probably the ideal.
const int32 PREFERRED_TOP_INDEX = 2 ;
const int32 PREFERRED_BOTTOM_INDEX = 12 ;
}
2015-01-26 17:51:00 -05:00
template < typename ItemType >
2020-09-09 10:51:17 -04:00
class SCategoryHeaderTableRow : public STableRow < ItemType >
2015-01-26 17:51:00 -05:00
{
public :
SLATE_BEGIN_ARGS ( SCategoryHeaderTableRow )
{ }
SLATE_DEFAULT_SLOT ( typename SCategoryHeaderTableRow : : FArguments , Content )
SLATE_END_ARGS ( )
void Construct ( const FArguments & InArgs , const TSharedRef < STableViewBase > & InOwnerTableView )
{
2015-01-26 18:38:07 -05:00
STableRow < ItemType > : : ChildSlot
2020-09-09 10:51:17 -04:00
. Padding ( 0.0f , 2.0f , .0f , 0.0f )
2015-01-26 17:51:00 -05:00
[
SAssignNew ( ContentBorder , SBorder )
. BorderImage ( this , & SCategoryHeaderTableRow : : GetBackgroundImage )
2020-09-09 10:51:17 -04:00
. Padding ( FMargin ( 3.0f , 5.0f ) )
2015-01-26 17:51:00 -05:00
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. VAlign ( VAlign_Center )
2020-09-09 10:51:17 -04:00
. Padding ( 5.0f )
2015-01-26 17:51:00 -05:00
. AutoWidth ( )
[
2015-01-26 18:51:30 -05:00
SNew ( SExpanderArrow , STableRow < ItemType > : : SharedThis ( this ) )
2015-01-26 17:51:00 -05:00
]
+ SHorizontalBox : : Slot ( )
. VAlign ( VAlign_Center )
2020-09-09 10:51:17 -04:00
. AutoWidth ( )
2015-01-26 17:51:00 -05:00
[
InArgs . _Content . Widget
]
]
] ;
STableRow < ItemType > : : ConstructInternal (
2015-01-26 18:51:30 -05:00
typename STableRow < ItemType > : : FArguments ( )
2022-05-09 13:12:28 -04:00
. Style ( FAppStyle : : Get ( ) , " DetailsView.TreeView.TableRow " )
2015-01-26 17:51:00 -05:00
. ShowSelection ( false ) ,
InOwnerTableView
) ;
}
const FSlateBrush * GetBackgroundImage ( ) const
{
2015-01-26 18:38:35 -05:00
if ( STableRow < ItemType > : : IsHovered ( ) )
2015-01-26 17:51:00 -05:00
{
2020-09-09 10:51:17 -04:00
return FAppStyle : : Get ( ) . GetBrush ( " Brushes.Secondary " ) ;
2015-01-26 17:51:00 -05:00
}
else
{
2020-09-09 10:51:17 -04:00
return FAppStyle : : Get ( ) . GetBrush ( " Brushes.Header " ) ;
2015-01-26 17:51:00 -05:00
}
}
virtual void SetContent ( TSharedRef < SWidget > InContent ) override
{
ContentBorder - > SetContent ( InContent ) ;
}
2015-06-18 13:12:11 -04:00
virtual void SetRowContent ( TSharedRef < SWidget > InContent ) override
{
ContentBorder - > SetContent ( InContent ) ;
}
2019-07-10 13:47:03 -04:00
virtual const FSlateBrush * GetBorder ( ) const
{
return nullptr ;
}
2020-09-09 10:51:17 -04:00
FReply OnMouseButtonDown ( const FGeometry & MyGeometry , const FPointerEvent & MouseEvent )
{
if ( MouseEvent . GetEffectingButton ( ) = = EKeys : : LeftMouseButton )
{
STableRow < ItemType > : : ToggleExpansion ( ) ;
return FReply : : Handled ( ) ;
}
else
{
return FReply : : Unhandled ( ) ;
}
}
2015-01-26 17:51:00 -05:00
private :
TSharedPtr < SBorder > ContentBorder ;
} ;
//////////////////////////////////////////////////////////////////////////
2014-03-14 14:13:41 -04:00
namespace GraphActionMenuHelpers
{
bool ActionMatchesName ( const FEdGraphSchemaAction * InGraphAction , const FName & ItemName )
{
bool bCheck = false ;
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Var : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2Var * ) InGraphAction ) - > GetVariableName ( ) = = ItemName ) ;
2014-05-09 17:43:40 -04:00
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2LocalVar : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2LocalVar * ) InGraphAction ) - > GetVariableName ( ) = = ItemName ) ;
2014-03-14 14:13:41 -04:00
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Graph : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2Graph * ) InGraphAction ) - > EdGraph & &
( ( FEdGraphSchemaAction_K2Graph * ) InGraphAction ) - > EdGraph - > GetFName ( ) = = ItemName ) ;
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Enum : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2Enum * ) InGraphAction ) - > GetPathName ( ) = = ItemName ) ;
2014-04-23 20:18:55 -04:00
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Struct : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2Struct * ) InGraphAction ) - > GetPathName ( ) = = ItemName ) ;
2014-03-14 14:13:41 -04:00
bCheck | = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Delegate : : StaticGetTypeId ( ) & &
( ( FEdGraphSchemaAction_K2Delegate * ) InGraphAction ) - > GetDelegateName ( ) = = ItemName ) ;
2015-02-18 06:37:13 -05:00
const bool bIsTargetNodeSubclass = ( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2TargetNode : : StaticGetTypeId ( ) ) | |
( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2Event : : StaticGetTypeId ( ) ) | |
( InGraphAction - > GetTypeId ( ) = = FEdGraphSchemaAction_K2InputAction : : StaticGetTypeId ( ) ) ;
bCheck | = ( bIsTargetNodeSubclass & &
2014-04-23 18:30:37 -04:00
( ( FEdGraphSchemaAction_K2TargetNode * ) InGraphAction ) - > NodeTemplate - > GetNodeTitle ( ENodeTitleType : : EditableTitle ) . ToString ( ) = = ItemName . ToString ( ) ) ;
2014-03-14 14:13:41 -04:00
return bCheck ;
}
}
2015-01-26 17:51:00 -05:00
//////////////////////////////////////////////////////////////////////////
2014-03-14 14:13:41 -04:00
void SDefaultGraphActionWidget : : Construct ( const FArguments & InArgs , const FCreateWidgetForActionData * InCreateData )
{
ActionPtr = InCreateData - > Action ;
MouseButtonDownDelegate = InCreateData - > MouseButtonDownDelegate ;
this - > ChildSlot
[
SNew ( SHorizontalBox )
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3379190)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3342222 on 2017/03/10 by Nick.Darnell
UMG - Adding a GetContent to the UContentWidget.
Change 3342228 on 2017/03/10 by Nick.Darnell
Project Launcher - Always consume mouse wheel vertically so it stops scrolling to the right.
Change 3342310 on 2017/03/10 by Nick.Darnell
UMG - Cleaning up some extra class references.
Change 3343382 on 2017/03/13 by Jamie.Dale
Applying optimization to FChunkManifestGenerator::ContainsMap
Change 3343523 on 2017/03/13 by Mike.Fricker
New details view option: "Show Hidden Properties while Playing"
- Enabling this allows you to see every property on selected objects that belong to a simulating world, even non-visible and non-editable properties. Very useful for inspection and debugging.
- Remember to change World Outliner to show you actors in the "Play World" if you want to select and inspect those objects first!
- This setting is saved for your entire project, similar to "Show All Advanced"
Change 3343573 on 2017/03/13 by Mike.Fricker
New details view option: "Show Hidden Properties while Playing" (part 2)
- Fixed missing include / unity issue
Change 3343709 on 2017/03/13 by Jamie.Dale
Some fixes for gathering cached dependency data
- We no longer load dependency data that doesn't have the correct package name.
- We no longer populate the dependency results when bGatherDependsData is false.
Change 3343900 on 2017/03/13 by Alexis.Matte
fix crash when creating too much LOD at import
#jira UE-42785
Change 3344104 on 2017/03/13 by Alexis.Matte
Add a boolean to the static mesh socket so we know if the socket was imported or created in UE4. This allow us to not impact editor socket when we re-import a fbx
#jira UE-42736
Change 3344802 on 2017/03/14 by Michael.Dupuis
#jira UE-42244 : added missing nullptr so render thread wont try to access global var when we're no longer in landscape mode
Changed the sync method between graphic resource from render thread and game thread to prevent desync
Change 3346061 on 2017/03/14 by Jamie.Dale
Adding const& and && overloads of FText::Format
Change 3346192 on 2017/03/14 by Arciel.Rekman
Linux: fix VHACD to retain bincompat with the baseline (UE-42895).
- It is now compiled against libc++ instead of libstdc++ in the toolchain.
Change 3347083 on 2017/03/15 by Andrew.Rodham
Fixed crash when changing anchors on a background blur widget
Change 3347359 on 2017/03/15 by Michael.Dupuis
#jira UE-38193:
Added Rename, Delete, New Folder, Size Map, Show In Explorer for folder and asset in the path view and asset view
Change 3347382 on 2017/03/15 by Michael.Dupuis
missing include incremental
Change 3347500 on 2017/03/15 by Alex.Delesky
#jira UE-41231 - Selecting multiple text widgets in UMG will now allow you to set their value correctly, and the "Multiple Values" text will no longer be set in the widgets instead.
Change 3347920 on 2017/03/15 by Jamie.Dale
Fixing some places passing tooltips as FString rather than FText
#jira UE-42603
Change 3347925 on 2017/03/15 by Jamie.Dale
Re-saving some assets so their tooltips can be gathered
#jira UE-42603
Change 3348788 on 2017/03/15 by Jamie.Dale
Updated the Windows platform to use the newer Vista+ style browser dialogs, rather than the older XP style dialogs
Change 3349187 on 2017/03/16 by Andrew.Rodham
Sequencer: Added the ability to specify additional event receivers for level sequence actors
- Such actors will receive events from event tracks
Change 3349194 on 2017/03/16 by Andrew.Rodham
Sequencer: Reset compiled templates on load in the editor, and ensure correct serialization of generation ledger
- Resetting on load means that we guarantee up-to-date templates, even if underlying compilation logic changes.
#jira UE-42198
#jira UE-40969
Change 3349210 on 2017/03/16 by Andrew.Rodham
Sequencer: Event tracks can now be defined to trigger events at the start of evaluation, after objects are spawned, or at the end of evaluation
Change 3349211 on 2017/03/16 by Andrew.Rodham
Sequencer: Add ability to retrieve bound objects from blueprint
Change 3349398 on 2017/03/16 by Nick.Darnell
UMG - Fixing a flashing hierarchy view. Looks like assets continuing to stream in causing the object change notification to continue to fire, and the widget designer refreshed any time it happened. Now limit to only if widgets are changing.
Change 3349420 on 2017/03/16 by Alex.Delesky
#jira UE-40720 - Multiline editable text boxes can now be set to Read-Only.
Change 3349548 on 2017/03/16 by Alexis.Matte
Fbx importer, when importing a staticmesh with combine mesh option check and the fbx file contain some "MultiSub Material" the materialinstance are now always hook properly.
Change 3349818 on 2017/03/16 by Cody.Albert
Fixed constructor for FNavigationMetaData
Change 3350047 on 2017/03/16 by Cody.Albert
Removed unneeded check so that children actors are never orphaned when their parent is moved into a newly created folder in the world outliner
Change 3350072 on 2017/03/16 by Arciel.Rekman
ShaderCompiler: make sure strings are at least 4-byte aligned.
- Can crash wcscpy() under Linux otherwise (reported by a licensee).
Change 3350146 on 2017/03/16 by Arciel.Rekman
Fix CodeLite project generation (UE-42921).
- Reportedly causes a crash in CodeLite 10.x
Change 3350235 on 2017/03/16 by Arciel.Rekman
Fix memory leak in address symbolication on Linux.
- Makes MallocProfiler work again.
- Also add progress update in MallocProfiler since symbolication is still slow.
Merging CL 3338764 from Fortnite to Dev-Editor.
Change 3350382 on 2017/03/16 by Arciel.Rekman
Linux: fix incorrect cast of rlimit in i686.
Change 3350471 on 2017/03/16 by Jamie.Dale
Enabling loc dashboard by default for new projects
Change 3350516 on 2017/03/16 by Jamie.Dale
Enabling content hot-reloading by default
Change 3350582 on 2017/03/16 by Cody.Albert
Corrected Widget Interaction Component to use current impact point instead of last impact point
Change 3350945 on 2017/03/16 by Jamie.Dale
Gave FConfigFile::FindOrAddSection API linkage
Change 3351441 on 2017/03/17 by Michael.Dupuis
#jira UE-42843: Fixed Transaction begin/end order issue happening with min slider passing max slider value
Add support for multiple selection value display
Change 3351558 on 2017/03/17 by Michael.Dupuis
#jira UE-42845: Always refresh the detail panel to properly update for selection change, delete, etc.
Change 3351657 on 2017/03/17 by Matt.Kuhlenschmidt
Adding USD Third Party dependencies
Change 3351665 on 2017/03/17 by Matt.Kuhlenschmidt
Added experimental USD Importer Plugin
This plugin supports basic static mesh importing and scene creation of actors using static meshes
Change 3351682 on 2017/03/17 by Matt.Kuhlenschmidt
Enabling USD importer in engine test project for automation tests
Change 3351749 on 2017/03/17 by Alexis.Matte
Make sure the selection proxy is off for the skeletal mesh component. UE4 use the selection outline instead
#jira UE-41677
Change 3351831 on 2017/03/17 by Michael.Dupuis
#jira UETOOL-1102:
Added HSV controls to Color Grading
Some look improvement for RGV/HSV
Color Grading refactor
Group Reset bug fix (relevant only to color grading)
Change 3352041 on 2017/03/17 by Matt.Kuhlenschmidt
Updated USD plugin whitelisting
Change 3352093 on 2017/03/17 by Michael.Dupuis
when FREEZERENDERING is called, stop the foliage culling too
Change 3352211 on 2017/03/17 by Alexis.Matte
Fix the physic asset missing skeleton warning
#jira UE-43006
Change 3352336 on 2017/03/17 by Alexis.Matte
We now allow a negative W value of the ScreenPoint vector in the ScreenToPixel function. In this case we simply reverse the W value to kept the manipulator direction on the good side.
#jira UE-37458
Change 3352947 on 2017/03/17 by Phillip.Kavan
#jira UE-42510 - Instanced static mesh transform edits are now reflected in the Blueprint editor's preview scene.
Change summary:
- Added IPropertyHandle::GetValueBaseAddress() (interface).
- Modified IPropertyHandle::NotifyPostChange() to include EPropertyChangeType as an optional input.
- Added FPropertyHandleBase::GetValueBaseAddress() (implementation).
- Modified FPropertyHandleBase::NotifyPostChange() to include the optional input arg in the property change event.
- Modified FPropertyHandleBase::CreatePropertyNameWidget() to clear the override text after temporarily replacing display name/tooltip text for the creation of the SPropertyNameWidget. This was done to allow for transactions to be named according to the property that's being modified.
- Modified FMathStructProxyCustomization::OnValueCommitted() to only apply the input value while not interactively editing via spinbox as well as when not post-processing an undo/redo (which can trigger a focus loss).
- Modified the FMathStructProxyCustomization::OnEndSliderMovement() delegate to include property handle and proxy value input parameters, as well as to call FlushValues() as part of the implementation.
- Modified FlushValues() for each of FMatrixStructCustomization, FTransformStructCustomization and FQuatStructCustomization to explicitly handle both propagation and transaction processing.
- Modified UInstancedStaticMeshComponent::UpdateInstanceTransform() to call Modify() prior to applying changes (so that the previous state is recorded when inside a transaction context).
- Modified FInstanceStaticMeshSCSEditorCustomization::HandleViewportDrag() to propagate changes to all instances of the ISMC archetype.
Known issues:
- Using the spinbox to edit instanced mesh transform values in the Blueprint editor will not apply the change to instances in the level editor until after you release the mouse button (i.e. - it will not be shown as a "live" update).
Change 3353678 on 2017/03/20 by Michael.Dupuis
properly unfreeze the culling of foliage when toggling the freezerendering command
Change 3353747 on 2017/03/20 by Matt.Kuhlenschmidt
PR #3372: Git plugin: fix update status on directories hotfix (still) slightly broken in master (UE4.16) (Contributed by SRombauts)
Change 3353749 on 2017/03/20 by Matt.Kuhlenschmidt
PR #3373: Git Plugin: hotfix for regression off Visual Diffs with older version of Git in master (UE4.16) (Contributed by SRombauts)
Change 3353754 on 2017/03/20 by Matt.Kuhlenschmidt
PR #3390: Allow OBJ imports to change if materials and textures are also imported (Contributed by mmdanggg2)
Change 3353909 on 2017/03/20 by Matt.Kuhlenschmidt
Fixed actors showing thumbnails in details panel and made a few other tweeks to thumbnail displays in details panels
- The color of the accepted type is now shown properly
- All object based properties now have thumbnails on by default.
Change 3353948 on 2017/03/20 by Nick.Darnell
UMG - Updating the background blur widget's upgrade code to use the custom version, and handling older cases that were continuing to generate blur slots, even when already upgraded.
Change 3354335 on 2017/03/20 by Nick.Darnell
Paragon - Excluding Archetype objects from reporting references, which causes crashes in the fast template mode.
Change 3354495 on 2017/03/20 by Nick.Darnell
Core - Making it so order that outers are discovered does not matter, initializing the chain of outers if hasn't been created when instancing subobjects.
Change 3354578 on 2017/03/20 by Nick.Darnell
Slate - There's now a console variable option, Slate.VerifyHitTestVisibility (off by default) which enables additional visibility checks for widgets. Normally this isn't nessesary, but if you're changing the visibility of widgets during a frame, and several hit tests need to be performed that frame there's a chance that a button could be clicked twice in one frame. Enabling this mode will make all hit testing more expensive, so for now it's off by default, but available for licensees that need the extra testing.
Change 3354737 on 2017/03/20 by Nick.Darnell
Core - Adding a fix to Dev-Editor from that enables objects in the same package being requested to also be loaded. This came about during async streaming callbacks alerting that a requested class was done loading, but there were still other assets in the package 'not loaded' but were available, just needed post load called on them.
Change 3355923 on 2017/03/21 by Yannick.Lange
VR Editor: - Remove unnecessary cleanup functions.
- Initialize with VR Mode and remove SetOwner function, since it shouldn't be possible to reset the VR Mode afterwards.
Change 3355959 on 2017/03/21 by Yannick.Lange
VR Editor: - Rename VREditorWorldInteraction to VREditorPlacement, to avoid confusion with ViewportWorldInteraction. VREditorPlacement will only handle placing objects from content browser in the VR Mode.
- Removed SnapSelectedActorsToGround to VREditorMode.
Change 3355965 on 2017/03/21 by Yannick.Lange
VR Editor: Forgot to add files to previous submit 3355959.
Change 3355977 on 2017/03/21 by Yannick.Lange
VR Editor: Remove function to add a new extension with TSubclassOf<UEditorWorldExtension>.
Change 3356017 on 2017/03/21 by Yannick.Lange
VR Editor: - UI system check owner VRMode.
- UI system fix check on VRMode on shutdown.
Change 3356028 on 2017/03/21 by Nick.Darnell
Slate - SButton now correctly releases mouse capture even if it becomes disabled while pressed, but before 'click' has been fired.
#jira UE-42777
Change 3356071 on 2017/03/21 by Yannick.Lange
VR Editor: Copy of change 3353663.
- Fix having to press once on the landscape to see the visuals for landscape editing.
- Fix when sculpting/painting the position wouldn't update.
- Fix inverted action for brushes while holding down shift or modifier on motioncontroller.
- Cleanup FLandscapeToolInteractorPosition.
- Change from 3353663: Use TStrokeClass::UseContinuousApply and TimeSinceLastInteractorMove to decide when to apply ToolStroke on tick.
Change 3356180 on 2017/03/21 by Michael.Dupuis
Added ShowFlag Foliage Occlusion Bounds
Fixed non initialized variable
Expose changing Min Occlusion Bounds instead of assuming 6
#rn none
Change 3356347 on 2017/03/21 by Nick.Darnell
UMG - Introducing a faster CreateWidget. When cooking, the widget compiler now generates a widget template/archetype that is stored in the same package as the generated blueprint class. During compiling we generate a nearly fully initialized widget tree including all sub userwidgets and their trees, hookup all member variables, initialize named slots, setup any animations...etc. This nearly fully constructed widget can be instanced using it as an archetype in the NewObject call, and does not have to use the correspondingly slow StaticDuplicateObject path. There are restrictions on this method, part of the compiling step for widgets now inspects if the instancing would be successful, or if there would be GLEO references after instancing because a user forgot to setup Instanced on a subobject property. Luckily that should be few and far between, all UVisuals (Widgets & Slots) are now DefaultToInstanced, which takes care of the overwhelming cases that demand the instanced flag. Especially given the bulk of cases using BindWidget in native code.
UMG - Removing a lot of deprecated functions from 4.8 on UUserWidget.
Change 3356357 on 2017/03/21 by Nick.Darnell
Build - Fixing some IWYU issues on the incremental build.
Change 3356461 on 2017/03/21 by Nick.Darnell
Build - Fixing linux build errors.
Change 3356468 on 2017/03/21 by Jamie.Dale
STextPropertyEditableTextBox now handles empty texts correctly
Change 3356916 on 2017/03/21 by Matt.Kuhlenschmidt
Fixed a crash when a material render proxy on a preview node is deleted when it is in flight on the render thread
#jira UE-40556
Change 3357033 on 2017/03/21 by Alexis.Matte
Fix crash when importing file with import commandlet
Make sure path are combine properly to avoid crash
Add some missing pointer check
Make sure the asset are save when there is no source control
#jira UE-42334
Change 3357176 on 2017/03/21 by Alex.Delesky
#jira UE-42445 - TMaps now support editing the values of structs that act as map keys. TMaps with struct keys will now show the types of their elements in the details panel as well, and structs will now also display numbers next to set elements.
Change 3357197 on 2017/03/21 by Alex.Delesky
#jira none - Fixing build issue for TMap key struct change.
Change 3357205 on 2017/03/21 by Michael.Dupuis
Forgot to reset min granularity to 6 from testing
Change 3357340 on 2017/03/21 by Arciel.Rekman
Mark FMallocAnsi (standard libc malloc) thread-safe on Linux.
Change 3357413 on 2017/03/21 by matt.kuhlenschmidt
Added '/Game/Effects/Fort_Effects/Materials/Smoke/M_Main_Smoke_Puff.M_Main_Smoke_Puff' to collection 'MattKTest'
Upgraded collection 'MattKTest' (was version 1, now version 2)
Change 3357505 on 2017/03/21 by Alexis.Matte
Fix to avoid changing the CDO of FbxAssetImportData. The UI was saving the Config which was saving the CDO. But already serialized data will be reload badly if the CDO change since we serialize only the diff.
#jira UE-42947
Change 3357825 on 2017/03/21 by Arciel.Rekman
Clean up the large thread pool on exit.
- Seems like the destruction was missed in the original CL 2785131 (12/1/15).
- Fixes problems when threads were allocated in memory that is being cleaned up in another place on exit.
Change 3358086 on 2017/03/22 by Yannick.Lange
VR Editor: - Fix gizmo scaling down when dragging the world.
- Fix gizmo scaling down when dragging rotation handle.
Change 3358175 on 2017/03/22 by Andrew.Rodham
Sequencer: Made ALevelSequenceActor::AdditionalEventReceivers advanced display
Change 3358367 on 2017/03/22 by tim.gautier
Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters
Change 3358457 on 2017/03/22 by Yannick.Lange
VR Editor: Deleting unused UI assets.
Change 3358801 on 2017/03/22 by Matt.Kuhlenschmidt
Guard against crash if the level editor is shut down when the object system has already been shut down
#jira UE-35605
Change 3358897 on 2017/03/22 by matt.barnes
Checking in WIP test content for UEQATC-1635 (UMG Navigation)
Change 3358976 on 2017/03/22 by Alex.Delesky
#jira none - Fixing an issue where ItemPropertyNode could potentially dereference a null property
Change 3358987 on 2017/03/22 by Yannick.Lange
VR Editor: Fix warning: Can't find file for asset '/Engine/VREditor/UI/VRButtonBackground' while loading ../../../Engine/Content/VREditor/Devices/Vive/VivePreControllerMaterial.uasset.
Change 3359067 on 2017/03/22 by Yannick.Lange
VR Editor: Fix Radial Menu remains on controller after exiting VR Preview
#jira UE-42885
Change 3359179 on 2017/03/22 by Matt.Kuhlenschmidt
Fixed "Multiple Values" in Body Setup when single bone has multiple bodies
#jira UE-41546
Change 3359626 on 2017/03/22 by Arciel.Rekman
Linux: pool OS allocations.
- Add a TMemoryPool and TMemoryPoolArray classes that can be used with any type of OS allocator functions.
- Add ability to bypass CachedOSPageAllocator for given sizes. Also, corrected the condition on AllocImpl to match one on FreeImpl.
- Switch Linux to pool mmap()/munmap() by default (helps 32-bit Linux and also speeds up 64-bit one), except 64-bit servers.
- Add a test to TestPAL to check performance and thread safety.
- Misc. fixes.
Change 3359989 on 2017/03/23 by Andrew.Rodham
Sequencer: Binding overrides improvements
- Added the ability to override spawnable bindings
- Added the ability to override bindings in sub sequences
- Deprecated "Get Sequence Bindings" node in favor of "Get Sequence Binding", which is more robust, and provides a better UI/UX for selecting single bindings
#jira UE-42470
Change 3360369 on 2017/03/23 by Alexis.Matte
Fix the staticmesh conversion from UE4 4.13 to earlier UE4 versions
#jira UE-42731
Change 3360556 on 2017/03/23 by Andrew.Rodham
Sequencer: Added drag/drop support for binding overrides
- You can now drag and drop sequencer object binding nodes into blueprint graphs (to create 'Get Sequence Binding' nodes), and onto binding overrides specified on level sequence actors.
Change 3360618 on 2017/03/23 by Arciel.Rekman
Make Binned2 work on Mac.
- Game/server will use Binned2 by default.
Change 3360838 on 2017/03/23 by Nick.Darnell
CommonUI - Making the SingleMaterialStyleMID property transient. It had been serialized mistakenly onto several widgets when it appears the intent is to dynamically allocate it upon demand.
Change 3360841 on 2017/03/23 by Nick.Darnell
UMG - Updating the editor to use DuplicateAndInitializeFromWidgetTree, so that Initialize is properly called when duplicating sub widget trees.
Change 3362561 on 2017/03/24 by Matt.Kuhlenschmidt
Fixed text outlines being cropped at large sizes
#jira UE-42647
Change 3362565 on 2017/03/24 by Matt.Kuhlenschmidt
Added automation test for font outlines
Change 3362567 on 2017/03/24 by Matt.Kuhlenschmidt
Resaved this file to fix 0 engine version warnings
Change 3362582 on 2017/03/24 by Yannick.Lange
VR Editor: - Fix log warnings when teleporting.
- Fix undo/redo when using teleport scaling.
- Improved teleport scaling and push/pull input.
#jira UE-43214
Change 3362631 on 2017/03/24 by Jamie.Dale
Split the monolithic culture concept in UE4
UE4 has historically only supported the concept of a single monolithic "culture" that applied to both text localization and internationalization, as well as all asset localization. Typically the "culture" was set to the "locale" of the OS, however that could be undesirable or incorrect on platforms (such as newer versions of Windows) that have a distinct concept of "language" (for localization) and "locale" (for internationalization).
This change splits the concept of "culture" into "language" and "locale", and also adds the concept of "asset groups". The language is now used to work out which localization we should use, and the locale is used to control how numbers/dates/times/etc are formatted within our internationalization library.
Asset groups expand on the language used by asset localization and allow you to create a group of asset classes that can be assigned a different culture than the main game language. A typical use-case of this would be creating an "audio" group that could, for example, be set to Japanese while the rest of the game runs in English.
If your game doesn't care about the distinction between language and locale, and doesn't need to use asset groups, then you're able to continue to use "culture" as you always have. If, however, you do care about those things, then you'll likely want to avoid using the "culture" directly (as it's now a very aggressive setting that overrides all others), and instead favor using language/locale (games will typically treat these as the same) and asset groups as separate concepts (both in settings, and in your in-game UI).
The language or locale for a game can be controlled by settings within the "Internationalization" section of your configs (this would typically be set in your GameUserSettings config, in the same way that "culture" works), eg)
[Internationalization]
language=fr
locale=fr
The asset groups for a game can be controlled by settings within the "Internationalization.AssetGroupClasses" and "Internationalization.AssetGroupCultures" sections of your configs (the asset group class definition would typically be set in your DefaultGame config, and the cultures the groups use would typically be set in your GameUserSettings config), eg)
[Internationalization.AssetGroupClasses]
+Audio=SoundWave
+Audio=DialogueWave
[Internationalization.AssetGroupCultures]
+Audio=ja
#jira UE-38418
#jira UE-43014
Change 3362798 on 2017/03/24 by Nick.Darnell
UMG - Putting the finishing touches on the hardware cursor system. Can now load them from blueprints, and there are options for setting them up in the project settings.
UMG - Deprecating the old properties for software widget cursors. They've been moved into a map that can handle any of the mouse cursors as the enum key, which was always the intent/desire but maps couldn't be used as UProperties then.
Change 3362805 on 2017/03/24 by Jamie.Dale
PR #3397: Allow empty source to override display string (Contributed by jorgenpt)
Change 3363039 on 2017/03/24 by Jamie.Dale
Use the pre-scaled font height where possible to avoid an extra multiply
Change 3363188 on 2017/03/24 by Joe.Graf
Added support for -iterate for content plugins that require path remapping during cook/packaging
#CodeReview: matt.kuhlenschmidt
#rb: matt.kuhlenschmidt
Change 3363355 on 2017/03/24 by Nick.Darnell
UMG - Removing the CookAdditionalFiles function in UserInterfaceSettings.
Change 3363672 on 2017/03/24 by Matt.Kuhlenschmidt
Material thumbnails now respect used particle system sprites flag and show a quad insead of a sphere by default. For this change I added the ability to have per asset type override for the default thumbnail shape and I added a way to reset thumbnails to default. All existinging particle system materials that have not had a custom thumbnail will have to be reloaded and resaved for this to work
#jira UE-42410
Change 3363699 on 2017/03/24 by Mike.Fricker
VR Editor: Improved extensibility (for mesh editor)
- This was merged from CL 3352612 and re-opened for edit before commit
- All mesh editor changes were stripped before merging
Change 3363784 on 2017/03/24 by Matt.Barnes
Adding content for tests following UEQATC-3548
Change 3363872 on 2017/03/24 by Arciel.Rekman
Linux: require user to setup clang/clang++ for building hlslcc.
- Earlier we tried to handle most common scenarios since libhlslcc needed to be built during the setup. Now that we supply a prebuilt version we don't need to be as user friendly, especially given that the attempts to second guess the compiler started to look complicated.
Change 3364089 on 2017/03/24 by Matt.Kuhlenschmidt
Fix CIS
Change 3364381 on 2017/03/24 by JeanMichel.Dignard
UV Packing optim
- Use horizontal segments instead of checking texel by texel to fit source chart in layout.
- Skip a couple of rasterize by flipping either the X texels or the Y texels when possible.
- Keep the best chart raster so that we don't need to reraster when adding the chart to the layout.
- Added a lightmap UV version in StaticMesh so that we don't invalidate the lighting cache. Only use the new lightmap UV generation when going through UStaticMesh::Build which invalidates the lighting.
Change 3364587 on 2017/03/24 by Arciel.Rekman
Fix ordered comparison warning from clang 4.0.
Change 3364596 on 2017/03/24 by Arciel.Rekman
Linux: fix editor being stuck (hack).
- Rebuilt hlslcc in Debug.
Change 3364863 on 2017/03/25 by Max.Chen
Sequencer: Fixed crash when deactivating a section in sequencer
#jira UE-39880
Change 3364864 on 2017/03/25 by Max.Chen
Sequencer: Integrating fix from licensee to ensure FVirtualTrackArea::HitTestSection checks the row of the section
Change 3364865 on 2017/03/25 by Max.Chen
Cine Camera: Default post process depth of field method to CircleDOF and use that setting in UpdateCameraLens.
#jira UE-40621
Change 3364866 on 2017/03/25 by Max.Chen
GitHub #3183: Conversion to base class is inaccessible.
Change 3364869 on 2017/03/25 by Max.Chen
Sequencer: Changed the time snapping interval in the toolbar ui so that it no longer additionally updates the sequencer setting. The setting is only used to initialize the time snapping interval of the level sequence. Added translate keys with ctrl and left-right arrows.
#jira UE-41009
#jira UE-41210
Change 3364870 on 2017/03/25 by Max.Chen
Sequencer: Added translate keys with ctrl and left-right arrows.
#jira UE-41210
Change 3364871 on 2017/03/25 by Max.Chen
Sequencer: Add level sequence actor customization to open sequencer from the details panel. For matinee parity.
#jira UE-41459
Change 3364879 on 2017/03/25 by Max.Chen
Sequencer: Duplicate shot should put the duplicate on the next available row, keeping the start/end times the same.
#jira UE-41289
Change 3364880 on 2017/03/25 by Max.Chen
Sequencer: Opening the API for MovieSceneAudio-related classes along with some minor functionality additions:
- Adding _API specifiers to MovieSceneAudioTrack, MovieSceneAudioSection, and FAudioTrackEditor so they can be subclassed in other modules.
- Made GetSoundDuration function in MovieSceneAudioTrack.cpp a member function so it's functionaliy could be reused by subclasses.
- Adding ability to specify delegates for OnQueueSubtitles, OnAudioFinished, and OnAudioPlaybackPercent in a MovieSceneAudioSection, and have them automatically assigned to any AudioComponents that are played by the MovieSceneAudioTemplate
Change 3364884 on 2017/03/25 by Max.Chen
Sequencer fbx import
- Removed the PostRotation compensation as it was setuped for 3ds max.
- On import, add a rotation to camera and light animation keys like we do on export.
- Merge the component local transform with the ActorNode transform when exporting only one component that isn't the root component in fbx since we're not creating child nodes in that case.
#jira UE-34692
Change 3364885 on 2017/03/25 by Max.Chen
Sequence Recorder: Fix crash when clearing properties to record.
#jira UE-41873
Change 3364886 on 2017/03/25 by Max.Chen
Sequencer: Add error when attempting to add a circularly dependent level sequence
#jira UE-22358
Change 3364890 on 2017/03/26 by Max.Chen
Sequencer: Added ability to specify a 'notify' function to property instance bindings
- When specified, the (parameterless) function will be called after a property is set
Change 3364891 on 2017/03/26 by Max.Chen
Sequencer: Various fixes to thumbnails
- Fixed alpha blending being used when presenting the full screen quad for thumbnails
Change 3364892 on 2017/03/26 by Max.Chen
Sequencer: PreRoll and PostRoll is now exposed at the section level, for all sections
- For the majority of sections this will be unimplemented, but it will allow for some tracks to set up their data ahead of time
Change 3364896 on 2017/03/26 by Max.Chen
Sequencer: Add segment flags to equality operator for movie scene evaluation segments
- This prevents them from being accumulated into adjacent segments of the same index and forced time, but differing flags
Change 3364897 on 2017/03/26 by Max.Chen
Sequencer: Fixed "Evaluate in preroll" and "Evaluate in Postroll" options
- Pre and postroll flags now come through on compiled segments, so the previous manual logic for sub sections is obsolete; we can just use the compiled segment data directly.
Change 3364898 on 2017/03/26 by Max.Chen
Sequencer: Moved track options to be accessible on all nodes, and operate on all selected tracks
Change 3364902 on 2017/03/26 by Max.Chen
Sequencer: Ensure evaluation flags are considered when compiling segments from external sequences
- This ensures that preroll regions in sub sequences are correctly evaluated when their parent section has preroll
- Changed high pass blending to always allow preroll
Change 3364903 on 2017/03/26 by Max.Chen
Engine: Moved proxy mesh transform update out of camera view computation code
- GetCameraView can happen as part of end of frame updates, which will assert if any changes of transform happen during its processing
Change 3364908 on 2017/03/26 by Max.Chen
Sequencer: Added visualization of pre and postroll on sections
Change 3364909 on 2017/03/26 by Max.Chen
Sequencer: Prevent MovieSceneCompiler from removing preroll segments
Change 3364910 on 2017/03/26 by Max.Chen
Sequencer: MediaPlayer PreRoll/PostRoll fix
- Handle PreRoll/PostRoll on sub scenes that have a start offset
Change 3364922 on 2017/03/26 by Max.Chen
Sequencer: Add check for valid property before dereferencing.
#jira UE-40951
Change 3364923 on 2017/03/26 by Max.Chen
Sequencer: Fix MovieScene preroll so that it seeks to the start correct frame before the preroll.
Change 3364924 on 2017/03/26 by Max.Chen
Sequencer - change default behavior for pre/post roll evaluation
- MovieSceneTracks are NOT evaluated by default
Change 3364925 on 2017/03/26 by Max.Chen
Sequencer: Shot track rows now consider pre and post roll when being compiled
Change 3364926 on 2017/03/26 by Max.Chen
Sequencer: Added the ability to define shared execution tokens, identifyable with a unique identifier, and sortable based on a sort order (<=0: before standard tokens, >0: after other tokens)
Change 3364927 on 2017/03/26 by Max.Chen
Sequencer: Added the ability to selectively restore state for specific anim type IDs for a given object
- This allows us to specifically restore one particular type of animation for a given object (ie, transform, skeletal animation control, or motion blur)
Change 3364928 on 2017/03/26 by Max.Chen
Sequencer: Fixed sub-sub tracks not being present in master sequences
- In order to correctly handle preroll in inner-inner sequences, we need to have access to those tracks when compiling intermediate sub sections. By caching off all the inner templates, we can have access to these tracks to check whether they want to be evaluated in pre/post roll in the master sequence
Change 3364937 on 2017/03/26 by Max.Chen
Sequencer: Update cine camera component debug focus plane on tick, rather than in GetCameraView
#jira UE-41332
Change 3364938 on 2017/03/26 by Max.Chen
Sequencer: Fix crash inserting a level sequence with an invalid shot.
#jira UE-41481
Change 3364940 on 2017/03/26 by Max.Chen
Sequencer: Made handling of pre and post roll more consistent between explicit section pre/post roll and pre/post roll inherited from an outer sub section
Change 3364942 on 2017/03/26 by Max.Chen
Movie Scene Capture: Move EDL generation to setup instead of close to ensure it gets written out when capturing as a separate process.
#jira UE-41703
Change 3364943 on 2017/03/26 by Max.Chen
Sequencer: Prevent capturing movies in editor while a PIE session is running
#jira UE-41399
Change 3364944 on 2017/03/26 by Max.Chen
CIS fixes
Change 3364951 on 2017/03/26 by Max.Chen
Sequencer: Fix autokey not setting a keyframe for slate color with specified color.
#jira UE-41645
Change 3364952 on 2017/03/26 by Max.Chen
Sequencer: Level sequence frame snapshots now take account of fixed-frame interval offsets, and overlapping shot sections on the same row
#jira UE-41684
Change 3364953 on 2017/03/26 by Max.Chen
Sequencer: Fix edl so that it doesn't write out when a shot is out of range. Also fixed not writing the EDL with the correct frame rate when exporting from the track. Reworked the cmx EDL so that its encoded in the same edit time space, including a blank slug at the beginning of the edit.
#jira UE-41925
Change 3364954 on 2017/03/26 by Max.Chen
Sequencer - Allow animating parameters on cascade effect components which aren't owned by an AEmitter.
Change 3364955 on 2017/03/26 by Max.Chen
Sequencer: Fixed sequencer anim instance not being used in the case where one was requested, but a different anim instance was already set
This fixes an issue when rendering in seaprate process, animations that were set up to use the sequencer instance would be controlled using montage animation instead.
Change 3364963 on 2017/03/26 by Max.Chen
Sequencer: Fix filtering to include child nodes.
#jira UE-42068
Change 3364964 on 2017/03/26 by Max.Chen
Sequencer: Enable UseCustomStartFrame and UseCustomEndFrame when rendering a single shot from the menu.
#jira UE-42021
Change 3364965 on 2017/03/26 by Max.Chen
Sequencer: Set the fade color in the track display
Change 3364966 on 2017/03/26 by Max.Chen
Sequencer: Show actor attached to label in attach section.
Change 3364967 on 2017/03/26 by Max.Chen
Sequencer: Fix static analysis warnings
Change 3364968 on 2017/03/26 by Max.Chen
Sequencer: Fix crash on converting to spawnable.
The previous implementation purported to allow null objects to set up spawnable defaults but it actually needed to compare the spawned object to the supported type. This new mechanism now allows the spawner to indicate that it accepts null objects and doesn't crash.
#jira UE-42069
Change 3364969 on 2017/03/26 by Max.Chen
Sequencer: Fixed crash caused by holding onto stale properties through a raw ptr
#jira UE-42072
Change 3364977 on 2017/03/26 by Max.Chen
Sequencer: Convert FLinearColor to FColor for fade.
#jira UE-41990
Change 3364978 on 2017/03/26 by Max.Chen
Sequencer: Limit GetAllSections to the sections that actually correspond to the track
#jira UE-42167
Change 3364979 on 2017/03/26 by Max.Chen
Sequencer: Filter root nodes too
#jira UE-42068
Change 3364980 on 2017/03/26 by Max.Chen
Sequencer: Filter relevant material parameters
#jira UE-40712
Change 3364982 on 2017/03/26 by Max.Chen
Sequencer: Remove audio range bounds which clamps to the section bounds (needed for evaluating in pre and post roll)
Change 3364983 on 2017/03/26 by Max.Chen
Sequencer: Add socket name to attach track section.
Change 3364984 on 2017/03/26 by Max.Chen
Sequencer: Fix sub track node deletion so that all the sub tracks aren't deleted, only the row being requested.
#jira UE-40955
Change 3364988 on 2017/03/26 by Max.Chen
Sequencer: Invalidate expired objects when blueprints are compiled. Fix actor references now handles sections that need to have their guids updated (ie. attach tracks).
Change 3364994 on 2017/03/26 by Max.Chen
Sequencer: Audio waveforms now show peak samples with smoothed RMS in the center
- Audio row heights are now also resizable by dragging on the bottom end of the track lane in the track area view
Change 3364995 on 2017/03/26 by Max.Chen
UMG: Fix crash on undo
#jira UE-42210
Change 3365000 on 2017/03/26 by Max.Chen
Sequencer: Fix crash from GetCurrentValue.
Change 3365001 on 2017/03/26 by Max.Chen
Sequencer: Split "Snap to the Dragged Key" option into two options, pressed key and dragged key.
#jira UE-42382
Change 3365002 on 2017/03/26 by Max.Chen
Sequencer: Downgraded check to ensure for FMovieSceneEvalTemplateBase::GetScriptStructImpl()
Change 3365003 on 2017/03/26 by Max.Chen
Sequencer: Fixed section template script struct
- Because the cpp is not parsed by UHT, the empty template had its parent struct, rather than its own
- We now just return null, and handle empty segments correctly in the segment remapper as part of the track compilation
Change 3365013 on 2017/03/26 by Max.Chen
Sequencer: Added data validation on compiled template loads, and extra guards against misuse of movie scene types
Change 3365014 on 2017/03/26 by Max.Chen
Sequencer: Sequencer now re-evaluates when starting PIE or Simulate
- This can be disabled by disabling "Bind Sequencer to PIE" and "Bind Sequencer to Simulate" in PIE advanced settings
Change 3365015 on 2017/03/26 by Max.Chen
Sequencer: Fix edl files so that they don't write out empty range shots
Change 3365017 on 2017/03/26 by Max.Chen
Sequencer: Set max tick rate when in game.
#jira UE-41078
Change 3365018 on 2017/03/26 by Max.Chen
Sequencer: When finishing a scrub, playback status is now correctly set to stopped rather than stepping
- This fixes a hack that was previously in place from the old PostTickRenderFixup that caused it to run that step after scrubbing bad finished. This is no longer necessary, and actually breaks clicking to set the scrub position, as it now means that we step across the entire range between the previous and current time.
Change 3365022 on 2017/03/26 by Max.Chen
Sequencer: Insert shot now creates a shot at the current time and puts it on the next available row.
#jira UE-41480, UE-27699
Change 3365023 on 2017/03/26 by Max.Chen
Sequencer: Add loop selection range. If there is no selection range, loop mode is restricted to loop or no loop.
#jira UE-42285
Change 3365029 on 2017/03/26 by Max.Chen
Sequencer: Add hotkeys to set the selection range to the next and previous shot (page up, page down). Also, added hotkey to set the playback range to all the shots (end)
Change 3365030 on 2017/03/26 by Max.Chen
Sequencer: Fix particle system restore state so that it gets the proper initial active state of the particle system.
#jira UE-42861, UE-42859
Change 3365031 on 2017/03/26 by Max.Chen
Sequencer: Snap time when changing time snapping intervals.
#jira UE-42590
Change 3365032 on 2017/03/26 by Max.Chen
Sequencer: Add When Finished state to sections. By default, sections now restore state.
#jira UE-41991, UE-31569
Change 3365033 on 2017/03/26 by Max.Chen
#jira UE-42028 "DialogueWave playback calls OnQueueSubtitles multiple times"
Only queue subtitles once per wave instance playback
Change 3365041 on 2017/03/26 by Max.Chen
Sequencer: Subscene hierarchical bias
Tracks can now be prioritized based on their subscene hierarhical bias value. Higher bias values take precedence.
#jira UE-42078
Change 3365042 on 2017/03/26 by Max.Chen
Sequencer: Generic paste menu for master (root) tracks.
Change 3365043 on 2017/03/26 by Max.Chen
Sequencer: Hierarchical bias for level visibility track
#jira UE-43024
Change 3365044 on 2017/03/26 by Max.Chen
Sequencer: Prevent throttling on editing keys/sections.
Change 3365045 on 2017/03/26 by Max.Chen
Sequencer: Set sequencer audio components bIsUISound to false so that they don't continue playing when the game is paused.
#jira UE-39391
Change 3365046 on 2017/03/26 by Max.Chen
Sequencer: Add missing BindLevelEditorCommands()
Change 3365049 on 2017/03/26 by Max.Chen
Sequencer: Set tick prerequites for spawnables when they are spawned.
#jira UE-43009
Change 3365050 on 2017/03/26 by Max.Chen
Sequencer: Jump to Start and End of playback shortcuts.
Rewind renamed to Jump to Start. Shortcut - up arrow.
Jump to End Shortcut - ctrl up arrow.
#jira UE-43224
Change 3365051 on 2017/03/26 by Max.Chen
Sequencer: Add last range to playback
Change 3365057 on 2017/03/26 by Max.Chen
Sequencer: Fix master sequence subscene generation times.
Change 3365058 on 2017/03/26 by Max.Chen
Sequencer: Fix paste so that it doesn't paste both onto object nodes and master tracks.
Change 3365059 on 2017/03/26 by Max.Chen
Sequencer: Fix crash pasting audio track.
Change 3365060 on 2017/03/26 by Max.Chen
Sequencer: Cache player fade state so that restore state will return the values to the pre animated state.
#jira UE-43313
Change 3365061 on 2017/03/26 by Max.Chen
Sequencer: Filter hidden functions. This fixes a bug where the field of view property for a cinematic camera appears to be animatable. It should be hidden just like it is in the property editor.
#jira UE-41461
Change 3365065 on 2017/03/26 by Max.Chen
Sequencer: Support component hierarchies when drawing animation paths
#jira UE-39500
Change 3365066 on 2017/03/26 by Max.Chen
Sequencer: Refine pause behaviour in sequencer to always evaluate the next frame
- This ensures that we get a full frame's worth of evaluation so that the paused frame is of a good quality (and avoids us evaluating a tiny range)
Change 3365075 on 2017/03/26 by Max.Chen
Sequencer: Fix add shot not setting next row.
Change 3365076 on 2017/03/26 by Max.Chen
Sequencer: Export MovieSceneTrackEditor
#jira UE-41641
Change 3365472 on 2017/03/27 by Yannick.Lange
VR Editor landscape. Back out changelist 3356071 with new proper fixes.
CL 3356071 introduced another bug and it wasn't correct because of removing FLandscapeToolInteractorPosition. This changelist fixes the same and additional bugs for VREditor Landscape mode.
- Fix when sculpting/painting the position wouldn't update.
- Fix inverted action for brushes while holding down shift or modifier on motioncontroller.
- Fix VREditor Landscape Texture Painting does not paint continuously
- Fix having to press once on the landscape to see the visuals for landscape editing.
- Removed Interactor parameter from BeginTool.
#jira UE-42780, UE-42779
Change 3365497 on 2017/03/27 by Matt.Kuhlenschmidt
Fix texture importing when an FBX file incorrectly reports absolute path as relative. First we try absolute, then we try fbx reported relative, then we try relative to parent FBX file.
Change 3365498 on 2017/03/27 by Matt.Kuhlenschmidt
Fix attempting to load a package in FBX scene import when the import path is empty. This greatly reduces FBX scene import time
Change 3365504 on 2017/03/27 by Yannick.Lange
VR Editor landscape fix ensure in when starting to paint/sculpt. Mousemove on tool should only be called when the tool is actually active, not when hovering.
Change 3365551 on 2017/03/27 by Matt.Kuhlenschmidt
PR #3425: Added Scrollbar customization to SComboBox (Contributed by Altrue)
#jira UE-43338
Change 3365580 on 2017/03/27 by Matt.Kuhlenschmidt
PR #3409: Add support for per-Category filtering in Output Log (Contributed by thagberg)
Change 3365672 on 2017/03/27 by Andrew.Rodham
Sequencer: Preanimated state producers can now produce null tokens
- Doing so implies no preanimated state should be saved
Change 3365791 on 2017/03/27 by Andrew.Rodham
Sequencer: Added Material Parameter Collection track
Change 3365806 on 2017/03/27 by Max.Chen
Sequencer: Add option to instance sub sequences.
#jira UE-43307
Change 3365822 on 2017/03/27 by Matt.Kuhlenschmidt
Subdue the output log font color a bit
Change 3365846 on 2017/03/27 by Jamie.Dale
Added package redirection on load/find
Change 3365852 on 2017/03/27 by Jamie.Dale
Adding a way to mark a package as no longer missing
Change 3365896 on 2017/03/27 by Jamie.Dale
Adding GlobalNotification to Slate
This is the guts of the GlobalEditorNotification, so it can be used by code that doesn't link to UnrealEd.
Change 3365900 on 2017/03/27 by Jamie.Dale
Prevent the default cooked sandbox from trying to read non-cooked assets
Change 3366550 on 2017/03/27 by Max.Chen
Sequencer: Fix case
Change 3367301 on 2017/03/28 by Andrew.Rodham
Tests: Added test actor with a variety of properties for testing purposes
Change 3367303 on 2017/03/28 by Andrew.Rodham
Tests: Enabled ActorSequenceEditor plugin in EngineTest project
Change 3367304 on 2017/03/28 by Andrew.Rodham
Tests: Added several functional testing maps for sequencer
- SequencerTest_Properties - tests animating various property types
- SequencerTest_Events - tests basic event triggering functionality (including additional event receivers and event ordering)
- SequencerTest_BindingOverrides - tests overriding possessable and spawnable bindings, along with bindings in sub sequences
- SequencerTest_ActorSequence - tests basic actor sequence functionality
Change 3367465 on 2017/03/28 by Max.Chen
Sequencer: Set Bind Sequencer to PIE off by default, Bind Sequencer to Simulate remains on by default.
Change 3367515 on 2017/03/28 by Matt.Kuhlenschmidt
Guard against visual studio accessor crash
#jira UE-43368
Change 3368118 on 2017/03/28 by Alexis.Matte
Fix the staticmesh conversion from 4.13. There was a error in the LOD loop we where not remapping the LOD 0.
#jira UE-42731
Change 3368485 on 2017/03/28 by Alex.Delesky
#jira UE-42207 - Updated SVN Binaries for MacOSX 64-bit:
- Subversion 1.9.4 -> 1.9.5
- OpenSSL 1.0.2h -> 1.0.2k
- BerkeleyDB 5.3.15 -> 6.2.23
- Java 8u101 -> 8u121
- Sqlite 3.13.0 -> 3.17.0
- Serf 1.3.8 -> 1.3.9
- Swig 3.0.10 -> 3.0.12
- ZLib 1.2.9 -> 1.2.11
Change 3368495 on 2017/03/28 by Alex.Delesky
#jira UE-42207 - Updated SVN Binaries for Windows 64-bit:
- Subversion 1.9.4 -> 1.9.5
- OpenSSL 1.0.2h -> 1.0.2k
- BerkeleyDB 5.3.15 -> 6.2.23
- Java 8u101 -> 8u121
- Sqlite 3.13.0 -> 3.17.0
- Serf 1.3.8 -> 1.3.9
- Swig 3.0.10 -> 3.0.12
- ZLib 1.2.9 -> 1.2.11
Change 3368501 on 2017/03/28 by Alex.Delesky
#jira UE-42207 - SVN Build instructions for Windows and Mac 64-bit libraries, and license files for Mac libraries
Change 3368782 on 2017/03/28 by Nick.Darnell
UMG - Improving some logging for fast widget creation.
Change 3368826 on 2017/03/28 by Nick.Darnell
Slate - Slate Application now maintains seperate tracking for each pointer being utilized for drag drop, so now multiple fingers on multiple widgets can now simultaneously be attempting a drag, however once one of them becomes successful, we clear all state of all other tracking since only one Drag Drop operation is possible at a time.
Slate - bFoldTick is now removed from the codebase, we haven't supported the other (non-folded) code path for awhile, so there was no point in maintaining the switch.
Slate - Users have noticed issues where the cursor does not appear when changing visibility (through toggling the way the cursor appears). This was rooted in how the OS requested cursor changes, WM_SETCURSOR on Windows only asks for new cursors when the mouse moves, but often cursors change just because mouse capture changes. So now the path has been centralized in Slate Tick to only handle the cursor changes in one place, and several places that need to refresh the cursor state, now set a flag to handle it on next tick.
#jira UE-40486
Change 3368917 on 2017/03/28 by Arciel.Rekman
Linux: allow building with clang 4.0.
Change 3369074 on 2017/03/28 by Nick.Darnell
UMG - Fixing some spelling on the hardware cursor tip.
UMG - Changed some checks to ensure now that users can input the wrong data from the editor. Adding some clamping to the editor interface so that users are not tempted to enter incorrect hotspot ranges for their cursors.
#jira UE-43419
#jira UE-43425
Change 3369137 on 2017/03/28 by Max.Chen
Sequencer: Add given master track sets the outer to the movie scene.
Change 3369360 on 2017/03/29 by Andrew.Rodham
Sequencer: Reconciled 3349194 and 3365041 with animphys merge
Change 3369410 on 2017/03/29 by Alexis.Matte
Fix the select filename in the FileDialog "Desktop window platform"
#jira UE-43319
Change 3369475 on 2017/03/29 by Nick.Darnell
PR #3413: UE-37710: Proper scaling of WebBrowserViewport (Contributed by projectgheist)
Modified - you can't use the clip rect to decide on how large you should be.
#jira UE-37710
Change 3369775 on 2017/03/29 by Max.Chen
ControlRig: Fix crash on exit.
#jira UE-43411
Change 3370466 on 2017/03/29 by Nick.Darnell
AsyncLoading - Adding USoundBase to the set of CDOs that have a particular fixed boot order.
StreamableManager - Only showing the duplicate load error in debug builds, it's not a real error.
#jira UE-43409
Change 3370570 on 2017/03/29 by Nick.Darnell
Slate - Fixing a bug with ZOrder being discarded on the SOverlay Slot.
#jira UE-43431
Change 3370644 on 2017/03/29 by Andrew.Rodham
Temporarily disabling sequencer functional test "Event Position"
Change 3370713 on 2017/03/29 by Nick.Darnell
PR #3399: UE-42831: Anchor text ignores scale (Contributed by projectgheist)
#jira UE-43156
#jira UE-42831
Change 3371243 on 2017/03/30 by Arciel.Rekman
Linux: scale OS allocation pool to match memory size.
- Number of distinct VMAs (contiguous virtual memory areas, i.e. mappings done via mmap()) is rather low (~64k)
and we can run out of VMAs earlier than we will run into available memory. Larger pool makes this less likely.
Change 3371262 on 2017/03/30 by Arciel.Rekman
Linux: fix custom present.
- PR #3383 contributed by yaakuro.
Change 3371301 on 2017/03/30 by Arciel.Rekman
Linux: fix copying to a non-existent directory during Setup.
Change 3371307 on 2017/03/30 by Andrew.Rodham
Editor: Added "Resave All" functionality to content browser folders
Change 3371364 on 2017/03/30 by Andrew.Rodham
Sequencer: Level streaming improvements
- Tick prerequisites are now set up when any object binding is resolved, not at the start of the sequence. This unifies code between spawnables and possessables, and allows tick prerequisites to still be set up when levels are streamed in
- Actor references are no longer resolved when a PIEInstance is specified on the package, and it cannot be fixed up to a different ptr than the original. This stops us resolving actors from one world into another.
- Fixed level visibility request getting cleared when the cumulative total was 0 (it should only do this if there are no requests left)
#jira UE-43225
Change 3371365 on 2017/03/30 by Andrew.Rodham
Tests: Sequencer level streaming tests
Change 3371493 on 2017/03/30 by Nick.Darnell
PR #3408: UE-19980: Added FCanExecuteAction to prevent keyboard shortcut. (Contributed by projectgheist)
Change 3371524 on 2017/03/30 by Nick.Darnell
PR #2938: Minor UMG code fixups (Contributed by projectgheist), accepted most of the changes.
Change 3371545 on 2017/03/30 by Nick.Darnell
UMG - Fixing some minor issues with WidgetComponents not properly limiting input depending on what is supported with reguard to hardware input.
Change 3371576 on 2017/03/30 by Matt.Kuhlenschmidt
PR #3433: Fix for the Standalone D3D Slate Shader using the wrong value for the. (Contributed by megasjay)
Change 3371590 on 2017/03/30 by Nick.Darnell
UMG - Fixing widget alignment in the viewport when using the widget component with screen space, with an aspect ratio lock on the player's camera. The widgets should now show up in the right locations.
Change 3371625 on 2017/03/30 by Alexis.Matte
Fix the merge tool material id assignment
#jira UE-43246
Change 3371666 on 2017/03/30 by Nick.Darnell
UMG - Reducing logging, don't need to tell everyone all the time we're using the fast widget path.
Change 3371687 on 2017/03/30 by Arciel.Rekman
Linux: switch to new managed filehandles.
Change 3371778 on 2017/03/30 by Matt.Kuhlenschmidt
Fixed the animation to play property on skeletal meshes being too small to read anything
#jira UE-43327
Change 3372709 on 2017/03/30 by Matt.Kuhlenschmidt
Made slate loading widget / movie play back more thread safe by eliminating Slate applicaiton or the main window from being ticked directly on another thread. We now have a separate virtual window for ticking and painting the loading screen widgets in isolation
Change 3372757 on 2017/03/30 by Nick.Darnell
Paragon - Fixing cases where people were using PostLoad() where really it should have done when the widget was constructed or created. This is a side effect of the FastWidget creation path 'PostLoad()' is not called on newly constructed widgets, though it did before because part of duplicating the WidgetTree, required serialization, which would have called it.
Change 3372777 on 2017/03/30 by Nick.Darnell
Fixing fast widget template cooking so that it does the same logic as Initialize did, centralizing the code to find the first widgetblueprintclass.
Change 3372949 on 2017/03/30 by Nick.Darnell
UMG - Fixing some cooking crashes for the super class.
Change 3373139 on 2017/03/30 by Jeff.Farris
Added TimingPolicy option to WidgetComponent, so widgets can optionally tick in game time rather than real time.
(Copy of CL 3279699 from Robo Recall to Dev-Editor)
Change 3373235 on 2017/03/30 by Nick.Darnell
Fixing a cooking issue, accidentally removed code that was properly loading some needed assets.
Change 3373266 on 2017/03/30 by Matt.Kuhlenschmidt
Made GetMoviePlayer thread safe. Simply accessing GetMoviePlayer is safe now as is checking IsLoadingFinished. However, most of the functions on movie player are only safe from the game thread!
Change 3374026 on 2017/03/31 by Andrew.Rodham
Sequencer: Moved evaluation group registration to IMovieSceneModule
#jira UE-43420
Change 3374060 on 2017/03/31 by Yannick.Lange
VR Editor: Collision on motion controllers in simulate.
Change 3374185 on 2017/03/31 by Nick.Darnell
Attempting to fix the build.
Change 3374232 on 2017/03/31 by Max.Chen
Sequencer: Fix audio not playing in editor
#jira UE-43514
Change 3374322 on 2017/03/31 by Nick.Darnell
UMG - SafeZone widget now has comments, and useful tips. Using the debugging console commands now trigger the broadcast that will cause controls like the SSafeZone widget to resample the display metrics to learn the new safezone ratio.
Change 3374424 on 2017/03/31 by Max.Chen
Updated test content so that the door animation is now set to "Keep State" for the When Finished property.
#jira UE-43519
Change 3374447 on 2017/03/31 by Max.Chen
Sequencer: Notify streaming system prior to camera cuts
By default, this does nothing. Users will need to enable the preroll section of camera cuts for the streaming system to activate prior to cutting to cameras.
#jira UE-42406
Change 3374571 on 2017/03/31 by Andrew.Rodham
Sequencer: Unified global and object-bound pre animated state, added InitializeObjectForAnimation method to state producers
Change 3374578 on 2017/03/31 by Andrew.Rodham
Sequencer: Added unit tests for pre-animated state
Change 3374592 on 2017/03/31 by Max.Chen
Color Customization: Set curve color names.
#jira UE-43405
Change 3374596 on 2017/03/31 by Andrew.Rodham
Corrected documentation comment
Change 3374671 on 2017/03/31 by Matt.Kuhlenschmidt
Fix movie scene audio track not compiling outside of editor
Change 3374689 on 2017/03/31 by Matt.Kuhlenschmidt
Remove the slate thread masquerading as the game thread in IsInGameThread
Change 3374730 on 2017/03/31 by Max.Chen
Sequencer: Add check for null loaded level.
Change 3374732 on 2017/03/31 by Max.Chen
Sequencer: Remove null tracks on postload.
Change 3374737 on 2017/03/31 by tim.gautier
- Updated UMG_Optimization: Adjusted Variable names to resolve compile errors due to Widget Components and Variables sharing names (cannot be done with new compile improvements)
- Set Level Blueprint for TM-UMG back to AllPalettes
Change 3374987 on 2017/03/31 by Nick.Darnell
UMG - Introducing a way to inform the widgets more information about the designer. There's now a DesignerChanged event sent to all design time widgets letting them know things like the current screen size and DPI scale.
UMG - The SafeZone widget will now show the correct safe zone amount if you use the safezone command line options, which are now documented in the comment for the USafeZone class.
Change 3375599 on 2017/03/31 by Max.Chen
Cine Camera: Update camera debug plane when property changes, rather rely soley on tick. This fixes a bug where sliding the value on the details panel doesn't update the debug plane in the viewport simultaneously.
#jira UE-43543
Change 3375601 on 2017/03/31 by Arciel.Rekman
Linux: switch to v9 cross-toolchain.
Change 3375856 on 2017/04/01 by Andrew.Rodham
Sequencer: Fixed 'formal parameter with requested alignment of 16 won't be aligned'
Change 3375870 on 2017/04/01 by Andrew.Rodham
Sequencer: Fixed explicit template instantiation ocurring before the complete definition of type's members
- This resulted such members not being instantiated (and hence exported) when compiled with clang
Change 3376114 on 2017/04/02 by Arciel.Rekman
Linux: make source code accessor aware of clang 3.9 and 4.0.
Change 3376138 on 2017/04/02 by Arciel.Rekman
Linux: add clang to fedora deps (UE-42123).
- PR #3273 submitted by cpyarger.
Change 3376159 on 2017/04/02 by Arciel.Rekman
Linux: some support for building on Debian Sid or Stretch (UE-35841).
- Basd on PR #2790 by haimat.
Change 3376163 on 2017/04/02 by Arciel.Rekman
Linux: install latest clang on Arch (UE-42341).
- This undoes PR #1905.
- PR #2897 by SiebenCorgie.
- PR #3302 by awesomeness872.
- PR #3341 by patrickelectric.
Change 3376167 on 2017/04/02 by Arciel.Rekman
Add FreeBSD mem info (courtesy support for the out of tree build) (UE-42994).
- PR #3378 by mdcasey.
Change 3376168 on 2017/04/02 by Arciel.Rekman
Linux: fixed VHACD Makefile on a case sensitive fs (UE-42905).
- PR #3381 by slonopotamus.
Change 3376177 on 2017/04/02 by Arciel.Rekman
SlateDlg: case-insensitive comparison of filter extensions (UE-39477).
- PR #3019 by aknarts.
Change 3376178 on 2017/04/02 by Arciel.Rekman
WebRTC: only x86_64 version exists for Linux.
Change 3376245 on 2017/04/03 by Andrew.Rodham
Sequencer: Re-enabled event order test
Change 3376339 on 2017/04/03 by Matt.Kuhlenschmidt
Fix crash during loading movie playback on DX12 due to not ever cleaning up old resources
#jira UE-27026
Change 3376481 on 2017/04/03 by Alex.Delesky
#jira UE-43495 - TMaps will now support customized key properties correctly.
Change 3376741 on 2017/04/03 by Matt.Kuhlenschmidt
Fix crash flushing font cache when loading a movie. This is no longer save on the slate movie thread
#jira UE-43567
Change 3376763 on 2017/04/03 by Shaun.Kime
Material Reroute nodes do not work for Texture Object Parameters as they return a base output type. Modified logic to now support this node type.
#jira UE-43521
Change 3376836 on 2017/04/03 by Jamie.Dale
Fixed text format history being clobbered by reference collection
#jira UE-37513
Change 3376852 on 2017/04/03 by Nick.Darnell
Paragon - Found a case where a user had marked a BindWidget property as Transient which prevents serializing the property binding now for widget fast mode.
#jira UE-43564
Change 3377207 on 2017/04/03 by Jamie.Dale
Desktop platform directory pickers are expected to return absolute paths
File pickers return relative paths though, and we should make this consistent at some point.
#jira UE-43588
Change 3377214 on 2017/04/03 by Matt.Kuhlenschmidt
Fix movie player shutdown crash in non-editor builds
#jira UE-43577
Change 3377299 on 2017/04/03 by Michael.Dupuis
#jira UE-43586 : properties should be non transactional
#jira UE-43559
Change 3378333 on 2017/04/04 by Michael.Dupuis
#jira UE-43585
#jira UE-43586
Revert back to purple color
Change 3378633 on 2017/04/04 by Matt.Kuhlenschmidt
Resaved this asset to avoid zero engine version warnings
Change 3378958 on 2017/04/04 by Nick.Darnell
Automation - Fixing the race condition to finish compiling shaders on screenshots for UI.
[CL 3379345 by Matt Kuhlenschmidt in Main branch]
2017-04-04 15:35:21 -04:00
. ToolTipText ( InCreateData - > Action - > GetTooltipDescription ( ) )
2014-03-14 14:13:41 -04:00
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Center )
[
SNew ( STextBlock )
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3739701)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3358367 by tim.gautier
Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters
Change 3624848 by Jamie.Dale
Added a composite font for the editor (and Slate core)
This is defined in FLegacySlateFontInfoCache::GetDefaultFont and uses our default Roboto fonts (and the culture specific fallback fonts), and is now used as the default font for Slate and the editor.
This change removes all the manual TTF/OTF file references from the various Slate styles, as well as updating 200+ hard-coded font references to use the new default font.
This fixes various rendering issues with fonts in the editor when using different languages, and clears a big barrier for removing the legacy localized fallback font support.
Change 3654993 by Jamie.Dale
'Native' (now called 'FNativeFuncPtr') is now a function pointer that takes a UObject* context, rather than a UObject member function pointer
This avoids ambiguity when binding a native function pointer to a type that doesn't match the context pointer, as you could end up getting a function called with an incorrect 'this' pointer
Breaking changes:
- Native has been renamed to FNativeFuncPtr.
- The signature of a native function has changed (use the DECLARE_FUNCTION and DEFINE_FUNCTION macro pair).
- Use P_THIS if you were previously using the 'this' pointer in your native function.
Change 3699591 by Jamie.Dale
Added support for displaying and editing numbers in a culture correct way
Numeric input boxes in Slate will now display and accept numbers using the culture correct decimal separators. This is enabled by default, and can be disabled by setting "ShouldUseLocalizedNumericInput" to "False" in XEditorSettings.ini (for the editor), or XGameUserSettings.ini (for a game).
#jira UE-4028
Change 3719568 by Jamie.Dale
Allow platforms to override the default ICU timezone calculation
Change 3622366 by Bradut.Palas
#jira UE-46677
Don't allow OnLevelRemovedFromWorld to reset the transaction buffer if we're in PIE mode.
Also, remove one undo barrier in case the event was triggered in PIE mode or else we block the user from undoing previous actions.
Change 3622378 by Bradut.Palas
#jira UE-46590
we have a general bug with detecting the size of the last column, but the clamping prevents it from appearing with the other resize modes. The Content Browser is the only one to use fixed width.
The bug is that the size of the last element is incorrectly reported, after we drag back and forth.
Fixed by not reading the size real time, but reading it from the SlotInfo structure that is created earlier, which holds the correct value.
Change 3622552 by Jamie.Dale
Added support for per-culture sub-fonts within a composite font
This allows you to do things like create a Japanese specific Han sub-font to override the Han characters used in a CJK font (previously you needed to create a localized font asset to achieve this).
Change 3623170 by Jamie.Dale
Fixing warning
Change 3624846 by Jamie.Dale
Composite font cache optimizations
- Converted a typically small sized map to a sorted array + binary search.
- Converted the already sorted range array to use binary search.
- Contiguous ranges using the same typeface are now merged in the cache.
Change 3625576 by Cody.Albert
We now only set the widget tree to transient instead of passing the flag through StaticDuplicateObject. This was causing instanced subobjects to be flagged with RF_DuplicateTransient, preventing them from properly being duplicated when an array of instanced subobjects was modified.
#jira UE-47971
Change 3626057 by Matt.Kuhlenschmidt
Expose EUmgSequencePlayMode to blueprints
#jira UE-49255
Change 3626556 by Matt.Kuhlenschmidt
Fix window size and position adjustment not accounting for primary monitor not being a high DPI monitor when a secondary monitor is. Causes flickering and incorrect window positioning.
#jira UE-48922, UE-48957
Change 3627692 by Matt.Kuhlenschmidt
PR #3977: Source control submenu menu customization (Contributed by Kryofenix)
Change 3628600 by Arciel.Rekman
Added AutoCheckout to FAssetRenameManager for commandlet usage.
Change 3630561 by Richard.Hinckley
Deprecating the version of UFunctionalTestingManager::RunAllFunctionalTests that feature an unused bool parameter, replacing with a new version without that parameter.
Change 3630656 by Richard.Hinckley
Compile fix.
Change 3630964 by Arciel.Rekman
Fix CrashReporterClient headless build.
Change 3631050 by Matt.Kuhlenschmidt
Back out revision 9 from //UE4/Dev-Editor/Engine/Source/Runtime/Slate/Private/Widgets/Layout/SSplitter.cpp
Causes major problems with resizing splitters in editor
Change 3631140 by Arciel.Rekman
OpenAL: update Linux version to 1.18.1 (UETOOL-1253)
- Also remove a hack for RPATH and make it use a generic RPATH mechanism.
- Bulk of the change from Cengiz.Terzibas
#jira UETOOL-1253
Change 3632924 by Jamie.Dale
Added support for a catch-all fallback font within composite fonts
This allows you to provide broad "font of last resort" behavior on a per-composite font basis, in a way that can also work with different font styles.
Change 3633055 by Jamie.Dale
Fixed some refresh issues in the font editor
Change 3633062 by Jamie.Dale
Fixed localization commands being reported as unknown
Change 3633906 by Nick.Darnell
UMG - You can now store refrences to widgets in the same UserWidget. If you need to create links between widgets this is valuable. Will likely introduce new ways to utilize this in the future, for now just getting it working.
Change 3634070 by Arciel.Rekman
Display actually used values of material overrides.
Change 3634254 by Arciel.Rekman
Fix ResavePackages working poorly with projects on other drives (UE-49465).
#jira UE-49465
Change 3635985 by Matt.Kuhlenschmidt
Fixed typo in function name used by maps
PR #3975: Add tooltip to Arrays in Editor (Contributed by projectgheist)
Change 3636012 by Matt.Kuhlenschmidt
PR #3982: Unhide mouse cursor after using Ansel (Contributed by projectgheist)
Change 3636706 by Lauren.Ridge
Epic Friday: Save parameters to child or sibling instance functionality
Change 3638706 by Jamie.Dale
Added an improved Japanese font to the editor
This is only used when displaying Japanese text when the editor is set to Japanese, and uses a font with Japanese-style unified Han characters (our default fallback font uses Chinese-style unified Han characters).
#jira UE-33268
Change 3639438 by Arciel.Rekman
Linux: Repaired ARM server build (UE-49635).
- Made Steam* plugins compile.
- Disabled OpenEXR as the libs aren't compiled (need to be done separately).
(Edigrating CL 3639429 from Release-4.17 to Dev-Editor)
Change 3640625 by Matt.Kuhlenschmidt
PR #4012: FSlateApplication::ProcessReply use &Reply (Contributed by projectgheist)
Change 3640626 by Matt.Kuhlenschmidt
PR #4011: Remove space from filename (Contributed by projectgheist)
Change 3640697 by Matt.Kuhlenschmidt
PR #4010: PNG alpha fix (Contributed by mmdanggg2)
Change 3641137 by Jamie.Dale
Fixed an issue where a culture specific sub-font could produce incorrect measurements during a culture switch
It would fallback to the last resort font for a frame or two while the font cache flushed. This has it update the ranges immediately.
Change 3641351 by Jamie.Dale
Fixing incorrect weights on the Japanese sub-font
Change 3641356 by Jamie.Dale
Fixing inconsistent font sizes between CoreStyle and EditorStyle
Change 3641710 by Jamie.Dale
Fixed pure-virtual function call on UMulticastDelegateProperty
Change 3641941 by Lauren.Ridge
Adding a Parameter Details tab to the Material Editor so users can change default parameter details
Change 3644141 by Jamie.Dale
Added an improved Korean font to the editor
This is only used when displaying Korean text when the editor is set to Korean
Change 3644213 by Arciel.Rekman
Fix the side effects of a fix for UE-49465.
- Default materials were apparently not being found while building DDC (e.g. making an installed build), now they are
and we should not reset loaders on them lest we trigger HasDefaultMaterialsPostLoaded() assert later.
#jira UE-49465
Change 3644777 by Jamie.Dale
Reverting Korean editor font back to NanumGothic as NanumBarunGothic looked too squished
Change 3644879 by tim.gautier
QAGame: Optimized assets for Procedural Foliage testing
- Added camera bookmarks to Stations in QA-Foliage
- Renamed QA-FoliageTypeInst assets to ProcFoliage_Shape
- Fixed up redirectors
Change 3645109 by Matt.Kuhlenschmidt
PR #3990: Git plugin: fix status of renamed, removed, missing, untracked assets (Contributed by SRombauts)
Change 3645114 by Matt.Kuhlenschmidt
PR #3991: Git Plugin: Fix RunDumpToFile() leaking Process handles (Contributed by SRombauts)
Change 3645116 by Matt.Kuhlenschmidt
PR #3996: Git Plugin: run an "UpdateStatus" at "Connect" time to populate the Source Control cache (Contributed by SRombauts)
Change 3645118 by Matt.Kuhlenschmidt
PR #4005: Git Plugin: Expand the size of the Button "Initialize project with Git" (Contributed by SRombauts)
Change 3645876 by Arciel.Rekman
Linux: fix submenus of context menu not working (UE-47639).
- Change by icculus (Ryan Gordon).
- QA-ClickHUD seems to be not affected by this change (it is already broken alas).
#jira UE-47639
Change 3648088 by Jamie.Dale
Fixed some case-sensitivity issues with FText format argument names/pins
These were originally case-sensitive, but that was lost somewhere along the way. This change restores their original behavior.
#jira UE-47122
Change 3648097 by Jamie.Dale
Moved common macOS/iOS localization implementation into FApplePlatformMisc
#jira UE-49940
Change 3650858 by Arciel.Rekman
UBT: improve CodeLite project generator (UE-49400).
- PR #3987 submitted by yaakuro (Cengiz Terzibas).
#jira UE-49400
Change 3651231 by Arciel.Rekman
Linux: default to SM5 for Vulkan.
- Change by Timothee.Bessett.
Change 3653627 by Matt.Kuhlenschmidt
PR #4020: Source Control Submit Files now interprets Escape key as if the user clicked cancel (Contributed by SRombauts)
Change 3653628 by Matt.Kuhlenschmidt
PR #4022: Add New C++ Class dialog remember previously selected module. (Contributed by Koderz)
Change 3653984 by Jamie.Dale
Fixed some redundant string construction
Change 3658528 by Joe.Graf
UE-45141 - Added CMAKE_CXX_COMPILER and CMAKE_C_COMPILER settings to the generated CMake files
Change 3658594 by Jamie.Dale
Zipping in UAT now always uses UTF-8 encoding to prevent Unicode issues
#jira UE-27263
Change 3659643 by Michael.Trepka
Added a call to FCoreDelegates::ApplicationWillTerminateDelegate.Broadcast(); in Mac RequestExit() to match Windows behavior
#jira UETOOL-1238
Change 3661908 by Matt.Kuhlenschmidt
USD asset importing improvements
Change 3664100 by Matt.Kuhlenschmidt
Fix static analysis
Change 3664107 by Matt.Kuhlenschmidt
PR #4051: UE-49448: FPropertyChangedEvent to include TopLevelObjects (Contributed by projectgheist)
Change 3664125 by Matt.Kuhlenschmidt
PR #4036: Add missing GRAPHEDITOR_API (Contributed by projectgheist)
Change 3664340 by Jamie.Dale
PR #3648: Prevent GatherTextFromSource from failing the commandlet (Contributed by projectgheist)
Change 3664403 by Jamie.Dale
PR #3769: Fixes UE-46973 - Drag and Dropping Folders with Names (Contributed by LordNed)
Change 3664539 by Jamie.Dale
PR #3280: Added EditableText functionality (Contributed by projectgheist)
Change 3665433 by Alexis.Matte
When we finish importing morph target we must re-initialise the render resources since we now use GPU morph target.
#jira UE-50231
Change 3666747 by Cody.Albert
Change 3669280 by Jamie.Dale
PR #4060: UE-50455: Verify folder is newly created before removing from tree (Contributed by projectgheist)
Change 3669718 by Jamie.Dale
PR #4061: Clear Content Browser folder search box on escape key (Contributed by projectgheist)
Change 3670838 by Alexis.Matte
Fix crash when deleting a skeletal mesh LOD and the mouse is over the "reimport" button.
#jira UE-50387
Change 3671559 by Matt.Kuhlenschmidt
Update SimpleUI automation test ground truth
#jira UE-50325
Change 3671587 by Alexis.Matte
Fix fbx importer scale not always apply. A cache array was not reset when opening a fbx file.
#jira UE-50147
Change 3671730 by Jamie.Dale
Added PostInitInstance to UClass to allow class types to perform construction time initialization of their instances
Change 3672104 by Michael.Dupuis
#jira UE-50427: Update the volume visibility list of the editor viewport when changing the procedural foliage settings
Change 3674906 by Alexis.Matte
Make sure the export LOD option is taken in consideration when exporting a level or the current level selection
#jira UE-50248
Change 3674942 by Matt.Kuhlenschmidt
Fix static analysis
Change 3675401 by Alexis.Matte
-fix export animation, do not truncate the last frame anymore
-fix the import animation, there was a display issue in the progress bar. Also a floorToInt sometime truncate the last valid frame. We also have a better way to calculate the time increment we use to sample the fbx curves.
#jira UE-48231
Change 3675990 by Alexis.Matte
Remove morph target when doing a re-import, so morph will be remove if they do not exist anymore in the fbx.
This is to avoid driving random vertex with old morph target.
#jira UE-50391
Change 3676169 by Alexis.Matte
When we re-import with dialog the option, "Override Full Name" was set to false and save with the option dialog. We now not set it to false, since it was not use during re-import.
Change 3676396 by Alexis.Matte
Make all LOD 0 name consistent in staticmesh editor
#jira UE-49461
Change 3677730 by Cody.Albert
Enable locking of Persistent Level in Levels tab
#jira UE-50686
Change 3677838 by Jamie.Dale
Replaced broken version of Roboto Light
Change 3679619 by Alexis.Matte
Integrate GitHub pr #4029 to fix import fbx chunk material assignation.
#jira UE-50001
Change 3680093 by Alexis.Matte
Fix the skeletal mesh so the vertex color is part of the vertex equality like with the static mesh.
Change 3680931 by Arciel.Rekman
SlateDialogs: show image icon for *.tga (UE-25106).
- Also reworked the logic somewhat.
#jira UE-25106
Change 3681966 by Yannick.Lange
MaterialEditor post-process preview.
#jira UE-45307
Change 3682407 by Lauren.Ridge
Fixes for material editor compile errors
Change 3682628 by Lauren.Ridge
Content browser filters for Material Layers, Blends, and their instances
Change 3682725 by Lauren.Ridge
Adding filter assets and instance assets to Material Layers and Material Layer Blends. Turning Material Layering on by default
Change 3682921 by Lauren.Ridge
Fix for instance layers not initializing fully
Change 3682954 by Lauren.Ridge
Creating Material Layer Test Assets
Change 3683582 by Alexis.Matte
Fix static analysis build
Change 3683614 by Matt.Kuhlenschmidt
PR #4062: Git Plugin: Fix UE-44637: Deleting an asset is unsuccessful if the asset is marked for add (Contributed by SRombauts)
Change 3684130 by Lauren.Ridge
Allow visible parameter retrieval to correctly recurse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3686289 by Arciel.Rekman
Remove the pessimization (UE-23791).
Change 3686455 by Lauren.Ridge
Fixes for adding/removing a layer parameter from the parent not updating the child
Change 3686829 by Jamie.Dale
No longer include trailing whitespace in the justification calculation for soft-wrapped lines
#jira UE-50266
Change 3686970 by Lauren.Ridge
Making material parameter preview work for functions as well
Change 3687077 by Jamie.Dale
Fixed crash using FActorDetails with the struct details panel
Change 3687152 by Jamie.Dale
Fixed the row structure tag not appearing in the Content Browser for Data Table assets
The CDO is used to filter these tags, and the CDO was omiting that tag which caused it to be filtered for all Data Tables.
#jira UE-48691
Change 3687174 by Lauren.Ridge
Fix for material layer sub-parameters showing up in the default material parameters panel
Change 3688100 by Lauren.Ridge
Fixing static analysis error
Change 3688317 by Jamie.Dale
Fixed crash using the widget reflector in a cooked game
Editor-style isn't available in cooked games. Core-style should be used instead for the widget reflector.
Change 3689054 by Jamie.Dale
Reference Viewer can now show/copy references lists for nodes with multiple objects, or multiple selected nodes
#jira UE-45751
Change 3689513 by Jamie.Dale
Fixed justification bug with RTL text caused by CL# 3686829
Also implemented the same alignment fix for visually left-aligned RTL text.
#jira UE-50266
Change 3690231 by Lauren.Ridge
Added Material Layers Parameters Preview (all editing disabled) panel to the Material Editor
Change 3690234 by Lauren.Ridge
Adding Material Layers Function Parameter to Static Parameter Compare
Change 3690750 by Chris.Bunner
Potential nullptr crash.
Change 3690751 by Chris.Bunner
Fixed logic on overridden vector parameter retrieval for material instances checking a function owned parameter.
Change 3691010 by Jamie.Dale
Fixed some clipping issues that could occur with right-aligned text
FTextBlockLayout::OnPaint was passing an unscaled offset to SetVisibleRegion, and it also wasn't correctly adjusting the offset for RTL text with left-alignment (which becomes a visual right-alignment)
#jira UE-46760
Change 3691091 by Jamie.Dale
Renamed FTextBlockLayout to FSlateTextBlockLayout to reflect that it's a Slate specific type
Change 3691134 by Alexis.Matte
Make sure we instance also the collision mesh when exporting a level to fbx file.
#jira UE-51066
Change 3691157 by Lauren.Ridge
Fix for reset to default not refreshing sub-parameters
Change 3691192 by Jamie.Dale
Fixed Content Browser selection resetting when changing certain view settings
#jira UE-49611
Change 3691204 by Alexis.Matte
Remove fbx export file version 2010 compatibility. The 2018 fbx sdk refuse to export earlier then 2011.
#jira UE-51023
Change 3692335 by Lauren.Ridge
Setting displayed asset to equal filter asset if no instance has been selected
Change 3692479 by Jamie.Dale
Fixed whitespace
Change 3692508 by Alexis.Matte
Make sure we warn the user that there is nothing to export when exporting to fbx using "export selected" or "export All" from the file menu.
We also prevent the export dialog to show
#jira UE-50973
Change 3692639 by Jamie.Dale
Translation Editor now shows stale translations as "Untranslated"
Change 3692743 by Lauren.Ridge
Smaller blend icons, added icon size override to FObjectEntryBox
Change 3692830 by Alexis.Matte
Fix linux build
Change 3692894 by Lauren.Ridge
Tooltip on "Parent" in material layers
Change 3693141 by Jamie.Dale
Removed dead code
FastDecimalFormat made this redundant
Change 3693580 by Jamie.Dale
Added AlwaysSign number formatting option
#jira UE-10310
Change 3693784 by Jamie.Dale
Fixed assert extracting the number formatting rules for Arabic
It uses a character outside the BMP for its plus and minus sign, so we need these to be a string to handle that.
#jira UE-10310
Change 3694428 by Arciel.Rekman
Linux: make directory watch request a warning so they don't block cooking.
- See https://answers.unrealengine.com/questions/715206/cook-error-on-linux.html
Change 3694458 by Matt.Kuhlenschmidt
Made duplicate keybinding warning non-fatal
Change 3694496 by Alexis.Matte
fix static analysis build
Change 3694515 by Jamie.Dale
Added support for culture correct parsing of decimal numbers
#jira UE-4028
Change 3694621 by Jamie.Dale
Added a variant of FastDecimalFormat::StringToNumber that takes a string length
This can be useful if you want to convert a number from within a non-null terminated string
#jira UE-4028
Change 3694958 by Jamie.Dale
Added a parsed length output to FastDecimalFormat::StringToNumber to allow permissive parsing
You can test this rather than the result if you want to attempt to parse a number from a string that may have other data after it. This also fixes the sign-suffix causing the parsing to fail.
#jira UE-4028
Change 3695083 by Alexis.Matte
Optimisation of the morph target import
- We now compute only the normal for the shape the tangent are not necessary
- The async tasks are create when there is some available cpu thread to avoid filling the memory
- When we re-import the morph target are deleted in bulk avoiding to initialize the morph map for every morphs targets
#jira UE-50945
Change 3695122 by Jamie.Dale
GetCultureAgnosticFormattingRules no longer returns a copy
Change 3695835 by Arciel.Rekman
TestPAL: greatly expanded malloc test.
Change 3695918 by Arciel.Rekman
TestPAL: Added thread priority test.
Change 3696589 by Arciel.Rekman
TestPAL: tweak thread priorities test (better readability).
Change 3697345 by Alexis.Matte
Fix reorder of material when importing a LOD with new material
#jira UE-51135
Change 3699590 by Jamie.Dale
Updated SGraphPinNum to use a numeric editor
#jira UE-4028
Change 3699698 by Matt.Kuhlenschmidt
Fix crash opening the level viewport context menu if the actor-component selection is out of sync
#jira UE-48444
Change 3700158 by Arciel.Rekman
Enable packaging for Android Vulkan on Linux (UETOOL-1232).
- Change by Cengiz Terzibas
Change 3700224 by Arciel.Rekman
TestPAL: fixed a memory leak.
Change 3700775 by Cody.Albert
Don't need to initialize EnvironmentCubeMap twice.
Change 3700866 by Michael.Trepka
PR #3223: Remove unnecessary reallocation. (Contributed by foollbar)
#jira UE-41643
Change 3701132 by Michael.Trepka
Copy of CL 3671538
Fixed issues with editor's game mode in high DPI on Mac.
#jira UE-49947, UE-51063
Change 3701421 by Michael.Trepka
Fixed a crash in FScreenShotManager caused by an attempt to access a deleted FString in async lambda expression
Change 3701495 by Alexis.Matte
Fix fbx importer "import normals" option when mix with "mikkt" tangent build it was recomputing the normals instead of importing them.
#jira UE-UE-51359
Change 3702982 by Jamie.Dale
Cleaned up some localization setting names
These now have consistent names and avoid double negatives. This also fixes needing to restart the editor when changing the "ShouldUseLocalizedPropertyNames" setting.
Change 3703517 by Arciel.Rekman
TestPAL: improved thread test.
- Changed the counter to a normal variable to reduce possible contentions (threads used to share the counter in an early prototype, hence the usage of an atomic).
Change 3704378 by Michael.Trepka
Disable Zoom button on Mac if project requests a resizeable window without it.
#jira UE-51335
Change 3706316 by Jamie.Dale
Fixed the asset search suggestions list closing if you clicked on its scrollbar
#jira UE-28885
Change 3706855 by Alexis.Matte
Support importing animation that has some keys with negative time
#jira UE-51305
Change 3709634 by Matt.Kuhlenschmidt
PR #4146: Null access check on ForceLOD in FViewport::HighResScreenshot (Contributed by projectgheist)
Change 3711085 by Michael.Trepka
Reenabled UBT makefiles on Mac
Change 3713049 by Josh.Engebretson
The ConfigPropertyEditor now generates a unique runtime UClass. It uses the outer name on the property instead of a unique ID as a unique id would generate a new UClass every time (and these are RF_Standalone). I also removed some static qualifiers for Section and Property names which were incorrect.
#jira UE-51319
Change 3713144 by Lauren.Ridge
Fixing automated test error
#jira UE-50982
Change 3713395 by Alexis.Matte
Fix auto import mountpoint
#jira UE-51524
Change 3713881 by Michael.Trepka
Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets.
#jira UE-31093
Change 3714197 by Michael.Trepka
Send IMM key down event to the main window instead of Cocoa key window, as that's what the Slate's active window is. This solves problems with IMM not working in context menu text edit fields.
#jira UE-47915
Change 3714911 by Joe.Graf
Merge of cmake changes from Dev-Rendering
Change 3715973 by Michael.Trepka
Disable OS close button on Windows if project settings request that
#jira UE-45522
Change 3716390 by Lauren.Ridge
The color picker summoned when double-clicking vector3 nodes now has its intended "do not refresh until OK is clicked" behavior.
#jira UE-50916
Change 3716529 by Josh.Engebretson
Content Browser: Clamp "Assets to Load at Once Before Warning" so it cannot be set below 1
#jira UE-51341
Change 3716885 by Josh.Engebretson
Tracking transactions such as a duplication operation can modify a selection which differs from the initial one. Added package state tracking to restore unmodified state when necessary.
#jira UE-48572
Change 3716929 by Josh.Engebretson
Unshelved from pending changelist '3364093':
PR #3420: Exe's icons and properties (Contributed by projectgheist)
Change 3716937 by Josh.Engebretson
Unshelved from pending changelist '3647428':
PR #4026: Fixed memory leaks for pipe writes and added data pipe writes (Contributed by Hemofektik)
Change 3717002 by Josh.Engebretson
Fix FileReference/string conversion
Change 3717355 by Joe.Graf
Fixed CMake file generation on Windows including Engine/Source/ThirdParty source
Change 3718256 by Arciel.Rekman
TestPAL: slight mod to the malloc test.
- Touch the allocated memory to check actual resident usage.
Change 3718290 by Arciel.Rekman
BAFO: place descriptor after the allocation to save some VIRT memory.
- We're relying on passing correct "Size" argument to Free() anyway, and this modification makes use of that extra information to save on memory for the descriptor.
Change 3718508 by Michael.Trepka
Fixed vsnprintf on platforms that use our custom implementation in StandardPlatformString.cpp to ignore length modifier for certain types (floating point, pointer)
#jira UE-46148
Change 3718855 by Lauren.Ridge
Adding content browser favorite folders. Add or remove folders from the favorite list in the folder's right-click context menu, and hide or show the favorites list in the Content Browser options.
Change 3718932 by Cody.Albert
Update ActorSequence plugin loading phase to PreDefault
#jira UE-51612
Change 3719378 by tim.gautier
QAGame: Renamed multiTxt_Justification > UMG_TextJustification.
Added additional Text Widgets for testing
Change 3719413 by Lauren.Ridge
Resubmit of content browser favorites
Change 3719803 by Yannick.Lange
VREditor: Fix crash with null GEditor
#jira UE-50103
Change 3721127 by tim.gautier
QAGame: Fixed up a ton of redirectors within /Content and /Content/Materials
- Added M_ParamDefaults and MF_ParamDefaults
- Moved legacy MeshPaint materials into /Content/Materials/MeshPaint
- Renamed ColorPulse assets from MatFunction_ > MF_, moved into /Content/Materials/Functions
Change 3721255 by Alexis.Matte
Replace skeletal mesh import option "keep overlapping vertex" by 3 float thresholds allowing the user to control the welding thresholds.
#jira UE-51363
Change 3721594 by Lauren.Ridge
Material Blends now have plane mesh previews in their icons.
Change 3722072 by tim.gautier
QAGame: Updated MF_ParamDefaults - using red channel as roughness
Updated M_ParamDefaults - tweaked Scalar values
Change 3722180 by Michael.Trepka
Updated Xcode project generator to sort projects in the navigator by name (within folders) and also sort the list of schemes so that their order matches the order of projects in the navigator.
#jira UE-25941
Change 3722220 by Michael.Trepka
Fixed a problem with Xcode project generator not handling quoted preprocessor definitions correctly
#jira UE-40246
Change 3722806 by Lauren.Ridge
Fixing non-editor compiles
Change 3722914 by Alexis.Matte
Fbx importer: Add new attribute type(eSkeleton) for staticmesh socket import.
#jira UE-51665
Change 3723446 by Michael.Trepka
Copy of CL 3688862 from 4.18 + one more fix for a deadlock related to window resizing when using IME
Don't do anything in Mac window's windowWillResize: if we're simply chaning the z order of windows. This way we avoid a rare dead lock when hiding the window.
#jira UE-48257
Change 3723505 by Matt.Kuhlenschmidt
Fix duplicate actors being created for USD primitives that specify a custom actor class
Change 3723555 by Matt.Kuhlenschmidt
Fix crash loading the gameplayabilities module
#jira UE-51693
Change 3723557 by Matt.Kuhlenschmidt
Fixed tooltip on viewport dpi scaling option
Change 3723870 by Lauren.Ridge
Fixing incorrect reset to default visibility, adding clear behavior to fields
Change 3723917 by Arciel.Rekman
Linux: fix compilation with glibc 2.26+ (UE-51699).
- Fixes compilation on Ubuntu 17.10 among others.
(Merging 3723489 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3723918 by Arciel.Rekman
Linux: do not test for popcnt presence unnecessarily (UE-51677).
(Merging 3723904 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3724229 by Arciel.Rekman
Fix FOutputDeviceStdOutput to use printf() on Unix platforms.
Change 3724261 by Arciel.Rekman
TestPAL: fix thread priority test (zero the counter).
Change 3724978 by Arciel.Rekman
Linux: fix priority calculation.
- Rlimit values are always positive, so this was completely broken when the RLIMIT_NICE is non-0.
Change 3725382 by Matt.Kuhlenschmidt
Guard against crashes and add more logging when actor creation fails.
Looks like it could be manual garbage collections triggered before conversion is complete so those have been removed
#jira UE-47464
Change 3725559 by Matt.Kuhlenschmidt
Added a setting to enable/disable high dpi support in editor. This currently only functions in Windows.
Moved some files around for better consistency
Change 3725640 by Arciel.Rekman
Fix Linux thread/process priorities.
- Should also speed up SCW on Linux by deprioritizing them less.
Change 3726101 by Matt.Kuhlenschmidt
Fix logic bug in USD child "kind" type resolving
Change 3726244 by Joe.Graf
Added an option to generate a minimal set of targets for cmake files
Added shader and config files to cmake file generation for searching within IDEs
Change 3726506 by Arciel.Rekman
Fix compile issue after DPI change.
Change 3726549 by Matt.Kuhlenschmidt
Remove unnecessary indirection to cached widgets in the hit test grid
Change 3726660 by Arciel.Rekman
Enable DPI switch on Linux.
Change 3726763 by Arciel.Rekman
Fix mismatching "noperspective" qualifier (UE-50807).
- Pull request #4080 by TTimo.
Change 3727080 by Michael.Trepka
Added support for editor's EnableHighDPIAwareness setting on Mac
Change 3727658 by Matt.Kuhlenschmidt
Fix shutdown crash if level editor is still referenced after the object system has been gc'd
#jira UE-51630
Change 3728270 by Matt.Kuhlenschmidt
Remove propertyeditor dependency from editorstyle
Change 3728291 by Arciel.Rekman
Linux: fix for a crash on a headless system (UE-51714).
- Preliminary change before merging to 4.18.
Change 3728293 by Arciel.Rekman
Linux: remove unneeded dependency on CEF.
- Old workaround should no longer be needed, while this dependency makes UE4 depend on a ton of external libs.
Change 3728524 by Michael.Trepka
Copy of CL 3725570
Removed Enable Fullscreen option from editor's Window menu on Mac. Windowed fullscreen mode is currently unavailable on Mac in editor mode as supporting it properly would require it to work with multiple spaces and split screen, which we currently don't handle (requested in UE-27240)
#jira UE-51709
Change 3728875 by Michael.Trepka
Fixed compile error in Mac SlateOpenGLContext.cpp
Change 3728880 by Matt.Kuhlenschmidt
Guard against invalid worlds in thumbnail renderers
Change 3728924 by Michael.Trepka
Don't defer MacApplication->CloseWindow() call. This should fix a rare problem with deferred call executing during Slate's PrepassWindowAndChildren call.
#jira UE-51711
Change 3729288 by Joe.Graf
Added the .idea/misc.xml file generation to speed up CLion indexing
Change 3729935 by Michael.Dupuis
#jira UE-51722: Hide from UI invalid enum values
Change 3730234 by Matt.Kuhlenschmidt
Fix "Game Gets Mouse Control" setting no longer functioning and instead the mouse was always captured.
#jira UE-51801
Change 3730349 by Michael.Dupuis
#jira UE-51324: Clear the UI selection when rebuilding the palette, as we destroyed all items and recreate them, so selection is on invalid item
Change 3730438 by Lauren.Ridge
Cleaning up material layering UI functions
Change 3730723 by Jamie.Dale
Fixed FastDecimalFormat::StringToNumber incorrectly reporting that number-like sequences that lacked digits had been parsed as numbers
#jira UE-51799
Change 3731008 by Lauren.Ridge
Changing Layers and Blends from proxy assets to real assets
Change 3731026 by Arciel.Rekman
libelf: make elf_end() visible (UE-51843).
- This repairs compilation for a case when CUDA is being used.
- Also added some missing files for ARM 32-bit.
Change 3731081 by Lauren.Ridge
New material layer test assets
Change 3731186 by Josh.Engebretson
Adding camera speed scalar setting and Toolbar UI to increase range on camera speed presets
#jira UE-50104
Change 3731188 by Mike.Erwin
Improve responsiveness of Open Asset dialog.
On large projects, there's a noticeable delay when opening and searching/filtering assets.
Stopwatch measurements on my machine (seconds for ~122,000 assets):
before with this CL
ctrl-P 1.4 0.45
search 1.8 0.55
CollectionManagerModule was the main culprit for search/filter slowness.
Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation.
Change 3731682 by Arciel.Rekman
UnrealEd: Allow unattended commandlets to rename/save packages.
Change 3732305 by Michael.Dupuis
#jira UE-48434 : Only register if the foliage type still has a valid mesh
Change 3732361 by Matt.Kuhlenschmidt
Fix two settings objects being created in the transient package with the same name
#jira UE-51891
Change 3732895 by Josh.Engebretson
https://jira.it.epicgames.net/browse/UE-51706
If a shared DDC is not being used, present a notification to the licensee with a link on how to setup a shared DDC.
Adds DDC notification events for check/put and query for whether a shared DDC is in use.
#jira UE-51706
Change 3733025 by Arciel.Rekman
UBT: make sure new clang versions are invoked.
Change 3733311 by Mike.Erwin
Fix Linux compile warning from CL 3731188
It didn't like mixing && and || without parentheses. Reworked logic to do one test at a time, put cheaper tests first to avoid calls to more expensive IsPluginFolder.
Change 3733658 by Josh.Engebretson
Add a missing #undef LOCTEXT_NAMESPACE
Change 3734003 by Arciel.Rekman
Fix Windows attempting to use printf %ls and crashing at that (UE-51934).
Change 3734039 by Michael.Trepka
Fixed a couple of merge issues in Mac ApplicationCore
Change 3734052 by Michael.Trepka
One more Mac ApplicationCore fix
Change 3734244 by Lauren.Ridge
Fix for accessing Slate window on render thread
Change 3734950 by Josh.Engebretson
Fixing clang warning
Change 3734978 by Jamie.Dale
Relaxed enum property importing to allow valid numeric values to be imported too
This was previously made more strict which caused a regression in Data Table importing
#jira UE-51848
Change 3734999 by Arciel.Rekman
Linux: add LTO support and more.
- Adds ability to use link-time opitimization (reusing current target property bAllowLTCG).
- Supports using llvm-ar and lld instead of ar/ranlib and ld.
- More build information printed (and in a better organized way).
- Native scripts updated to install packages with the appropriate tools on supported systems
- AutoSDKs updated to require a new toolchain (already checked in).
- Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089
Change 3735268 by Matt.Kuhlenschmidt
Added support for canvas based DPI scaling.
-Scene canvas is by default not scaled as this could severely impact any game using a canvas based UI
-The debug canvas for stats is always dpi scaled in editor and pie.
-Eliminated text scaling workaround now that the entire canvas is properly scaled
-Enabled canvas scaling in cascade UI
Change 3735329 by Matt.Kuhlenschmidt
Fix potential crash if an asset editor has an object deleted out from under it
#jira UE-51941
Change 3735502 by Arciel.Rekman
Fix compile issue (bShouldUpdateScreenPercentage).
Change 3735878 by Jamie.Dale
Updated FString::SanitizeFloat to allow you to specify the min number of fractional digits to have in the resultant string
This defaults to 1 as that was the old behavior of FString::SanitizeFloat, but can also be set to 0 to prevent adding .0 to whole numbers.
Change 3735881 by Jamie.Dale
JsonValue no longer stringifies whole numbers as floats
Change 3735884 by Jamie.Dale
Only allow enums to import integral values
Change 3735912 by Josh.Engebretson
Improving cook process error/warning handling including asset warning/error content browser links and manual dismiss for cook error notifications
#jira UE-48131
Change 3736280 by Matt.Kuhlenschmidt
Fix 0 dpi scale for canvases
#jira UE-51995
Change 3736298 by Matt.Kuhlenschmidt
Force focus of game viewports in vr mode
Change 3736374 by Jamie.Dale
Fixed some places where input chords were being used without testing that they had a valid key set
#jira UE-51799
Change 3738543 by Matt.Kuhlenschmidt
Better fix for edit condition crashes
#jira UE-51886
Change 3738603 by Lauren.Ridge
Copy over of drag and drop non-array onto array fix
Change 3739701 by Chris.Babcock
Fix crashlytics merge error
#jira UE-52064
#ue4
#android
[CL 3739980 by Matt Kuhlenschmidt in Main branch]
2017-11-06 18:22:01 -05:00
. Font ( FCoreStyle : : GetDefaultFontStyle ( " Regular " , 9 ) )
2015-08-19 16:36:07 -04:00
. Text ( InCreateData - > Action - > GetMenuDescription ( ) )
2014-03-14 14:13:41 -04:00
. HighlightText ( InArgs . _HighlightText )
]
] ;
}
FReply SDefaultGraphActionWidget : : OnMouseButtonDown ( const FGeometry & MyGeometry , const FPointerEvent & MouseEvent )
{
if ( MouseButtonDownDelegate . Execute ( ActionPtr ) )
{
return FReply : : Handled ( ) ;
}
return FReply : : Unhandled ( ) ;
}
//////////////////////////////////////////////////////////////////////////
class SGraphActionCategoryWidget : public SCompoundWidget
{
SLATE_BEGIN_ARGS ( SGraphActionCategoryWidget )
{ }
SLATE_ATTRIBUTE ( FText , HighlightText )
SLATE_EVENT ( FOnTextCommitted , OnTextCommitted )
SLATE_EVENT ( FIsSelected , IsSelected )
SLATE_ATTRIBUTE ( bool , IsReadOnly )
SLATE_END_ARGS ( )
TWeakPtr < FGraphActionNode > ActionNode ;
2015-06-24 14:03:33 -04:00
TAttribute < bool > IsReadOnly ;
2014-03-14 14:13:41 -04:00
public :
TWeakPtr < SInlineEditableTextBlock > InlineWidget ;
void Construct ( const FArguments & InArgs , TSharedPtr < FGraphActionNode > InActionNode )
{
ActionNode = InActionNode ;
2014-08-29 11:00:10 -04:00
FText CategoryTooltip ;
FString CategoryLink , CategoryExcerpt ;
2014-09-05 17:51:16 -04:00
FEditorCategoryUtils : : GetCategoryTooltipInfo ( * InActionNode - > GetDisplayName ( ) . ToString ( ) , CategoryTooltip , CategoryLink , CategoryExcerpt ) ;
2014-08-29 11:00:10 -04:00
TSharedRef < SToolTip > ToolTipWidget = IDocumentation : : Get ( ) - > CreateToolTip ( CategoryTooltip , NULL , CategoryLink , CategoryExcerpt ) ;
2015-06-24 14:03:33 -04:00
IsReadOnly = InArgs . _IsReadOnly ;
2014-03-14 14:13:41 -04:00
this - > ChildSlot
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. VAlign ( VAlign_Center )
[
SAssignNew ( InlineWidget , SInlineEditableTextBlock )
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3739701)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3358367 by tim.gautier
Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters
Change 3624848 by Jamie.Dale
Added a composite font for the editor (and Slate core)
This is defined in FLegacySlateFontInfoCache::GetDefaultFont and uses our default Roboto fonts (and the culture specific fallback fonts), and is now used as the default font for Slate and the editor.
This change removes all the manual TTF/OTF file references from the various Slate styles, as well as updating 200+ hard-coded font references to use the new default font.
This fixes various rendering issues with fonts in the editor when using different languages, and clears a big barrier for removing the legacy localized fallback font support.
Change 3654993 by Jamie.Dale
'Native' (now called 'FNativeFuncPtr') is now a function pointer that takes a UObject* context, rather than a UObject member function pointer
This avoids ambiguity when binding a native function pointer to a type that doesn't match the context pointer, as you could end up getting a function called with an incorrect 'this' pointer
Breaking changes:
- Native has been renamed to FNativeFuncPtr.
- The signature of a native function has changed (use the DECLARE_FUNCTION and DEFINE_FUNCTION macro pair).
- Use P_THIS if you were previously using the 'this' pointer in your native function.
Change 3699591 by Jamie.Dale
Added support for displaying and editing numbers in a culture correct way
Numeric input boxes in Slate will now display and accept numbers using the culture correct decimal separators. This is enabled by default, and can be disabled by setting "ShouldUseLocalizedNumericInput" to "False" in XEditorSettings.ini (for the editor), or XGameUserSettings.ini (for a game).
#jira UE-4028
Change 3719568 by Jamie.Dale
Allow platforms to override the default ICU timezone calculation
Change 3622366 by Bradut.Palas
#jira UE-46677
Don't allow OnLevelRemovedFromWorld to reset the transaction buffer if we're in PIE mode.
Also, remove one undo barrier in case the event was triggered in PIE mode or else we block the user from undoing previous actions.
Change 3622378 by Bradut.Palas
#jira UE-46590
we have a general bug with detecting the size of the last column, but the clamping prevents it from appearing with the other resize modes. The Content Browser is the only one to use fixed width.
The bug is that the size of the last element is incorrectly reported, after we drag back and forth.
Fixed by not reading the size real time, but reading it from the SlotInfo structure that is created earlier, which holds the correct value.
Change 3622552 by Jamie.Dale
Added support for per-culture sub-fonts within a composite font
This allows you to do things like create a Japanese specific Han sub-font to override the Han characters used in a CJK font (previously you needed to create a localized font asset to achieve this).
Change 3623170 by Jamie.Dale
Fixing warning
Change 3624846 by Jamie.Dale
Composite font cache optimizations
- Converted a typically small sized map to a sorted array + binary search.
- Converted the already sorted range array to use binary search.
- Contiguous ranges using the same typeface are now merged in the cache.
Change 3625576 by Cody.Albert
We now only set the widget tree to transient instead of passing the flag through StaticDuplicateObject. This was causing instanced subobjects to be flagged with RF_DuplicateTransient, preventing them from properly being duplicated when an array of instanced subobjects was modified.
#jira UE-47971
Change 3626057 by Matt.Kuhlenschmidt
Expose EUmgSequencePlayMode to blueprints
#jira UE-49255
Change 3626556 by Matt.Kuhlenschmidt
Fix window size and position adjustment not accounting for primary monitor not being a high DPI monitor when a secondary monitor is. Causes flickering and incorrect window positioning.
#jira UE-48922, UE-48957
Change 3627692 by Matt.Kuhlenschmidt
PR #3977: Source control submenu menu customization (Contributed by Kryofenix)
Change 3628600 by Arciel.Rekman
Added AutoCheckout to FAssetRenameManager for commandlet usage.
Change 3630561 by Richard.Hinckley
Deprecating the version of UFunctionalTestingManager::RunAllFunctionalTests that feature an unused bool parameter, replacing with a new version without that parameter.
Change 3630656 by Richard.Hinckley
Compile fix.
Change 3630964 by Arciel.Rekman
Fix CrashReporterClient headless build.
Change 3631050 by Matt.Kuhlenschmidt
Back out revision 9 from //UE4/Dev-Editor/Engine/Source/Runtime/Slate/Private/Widgets/Layout/SSplitter.cpp
Causes major problems with resizing splitters in editor
Change 3631140 by Arciel.Rekman
OpenAL: update Linux version to 1.18.1 (UETOOL-1253)
- Also remove a hack for RPATH and make it use a generic RPATH mechanism.
- Bulk of the change from Cengiz.Terzibas
#jira UETOOL-1253
Change 3632924 by Jamie.Dale
Added support for a catch-all fallback font within composite fonts
This allows you to provide broad "font of last resort" behavior on a per-composite font basis, in a way that can also work with different font styles.
Change 3633055 by Jamie.Dale
Fixed some refresh issues in the font editor
Change 3633062 by Jamie.Dale
Fixed localization commands being reported as unknown
Change 3633906 by Nick.Darnell
UMG - You can now store refrences to widgets in the same UserWidget. If you need to create links between widgets this is valuable. Will likely introduce new ways to utilize this in the future, for now just getting it working.
Change 3634070 by Arciel.Rekman
Display actually used values of material overrides.
Change 3634254 by Arciel.Rekman
Fix ResavePackages working poorly with projects on other drives (UE-49465).
#jira UE-49465
Change 3635985 by Matt.Kuhlenschmidt
Fixed typo in function name used by maps
PR #3975: Add tooltip to Arrays in Editor (Contributed by projectgheist)
Change 3636012 by Matt.Kuhlenschmidt
PR #3982: Unhide mouse cursor after using Ansel (Contributed by projectgheist)
Change 3636706 by Lauren.Ridge
Epic Friday: Save parameters to child or sibling instance functionality
Change 3638706 by Jamie.Dale
Added an improved Japanese font to the editor
This is only used when displaying Japanese text when the editor is set to Japanese, and uses a font with Japanese-style unified Han characters (our default fallback font uses Chinese-style unified Han characters).
#jira UE-33268
Change 3639438 by Arciel.Rekman
Linux: Repaired ARM server build (UE-49635).
- Made Steam* plugins compile.
- Disabled OpenEXR as the libs aren't compiled (need to be done separately).
(Edigrating CL 3639429 from Release-4.17 to Dev-Editor)
Change 3640625 by Matt.Kuhlenschmidt
PR #4012: FSlateApplication::ProcessReply use &Reply (Contributed by projectgheist)
Change 3640626 by Matt.Kuhlenschmidt
PR #4011: Remove space from filename (Contributed by projectgheist)
Change 3640697 by Matt.Kuhlenschmidt
PR #4010: PNG alpha fix (Contributed by mmdanggg2)
Change 3641137 by Jamie.Dale
Fixed an issue where a culture specific sub-font could produce incorrect measurements during a culture switch
It would fallback to the last resort font for a frame or two while the font cache flushed. This has it update the ranges immediately.
Change 3641351 by Jamie.Dale
Fixing incorrect weights on the Japanese sub-font
Change 3641356 by Jamie.Dale
Fixing inconsistent font sizes between CoreStyle and EditorStyle
Change 3641710 by Jamie.Dale
Fixed pure-virtual function call on UMulticastDelegateProperty
Change 3641941 by Lauren.Ridge
Adding a Parameter Details tab to the Material Editor so users can change default parameter details
Change 3644141 by Jamie.Dale
Added an improved Korean font to the editor
This is only used when displaying Korean text when the editor is set to Korean
Change 3644213 by Arciel.Rekman
Fix the side effects of a fix for UE-49465.
- Default materials were apparently not being found while building DDC (e.g. making an installed build), now they are
and we should not reset loaders on them lest we trigger HasDefaultMaterialsPostLoaded() assert later.
#jira UE-49465
Change 3644777 by Jamie.Dale
Reverting Korean editor font back to NanumGothic as NanumBarunGothic looked too squished
Change 3644879 by tim.gautier
QAGame: Optimized assets for Procedural Foliage testing
- Added camera bookmarks to Stations in QA-Foliage
- Renamed QA-FoliageTypeInst assets to ProcFoliage_Shape
- Fixed up redirectors
Change 3645109 by Matt.Kuhlenschmidt
PR #3990: Git plugin: fix status of renamed, removed, missing, untracked assets (Contributed by SRombauts)
Change 3645114 by Matt.Kuhlenschmidt
PR #3991: Git Plugin: Fix RunDumpToFile() leaking Process handles (Contributed by SRombauts)
Change 3645116 by Matt.Kuhlenschmidt
PR #3996: Git Plugin: run an "UpdateStatus" at "Connect" time to populate the Source Control cache (Contributed by SRombauts)
Change 3645118 by Matt.Kuhlenschmidt
PR #4005: Git Plugin: Expand the size of the Button "Initialize project with Git" (Contributed by SRombauts)
Change 3645876 by Arciel.Rekman
Linux: fix submenus of context menu not working (UE-47639).
- Change by icculus (Ryan Gordon).
- QA-ClickHUD seems to be not affected by this change (it is already broken alas).
#jira UE-47639
Change 3648088 by Jamie.Dale
Fixed some case-sensitivity issues with FText format argument names/pins
These were originally case-sensitive, but that was lost somewhere along the way. This change restores their original behavior.
#jira UE-47122
Change 3648097 by Jamie.Dale
Moved common macOS/iOS localization implementation into FApplePlatformMisc
#jira UE-49940
Change 3650858 by Arciel.Rekman
UBT: improve CodeLite project generator (UE-49400).
- PR #3987 submitted by yaakuro (Cengiz Terzibas).
#jira UE-49400
Change 3651231 by Arciel.Rekman
Linux: default to SM5 for Vulkan.
- Change by Timothee.Bessett.
Change 3653627 by Matt.Kuhlenschmidt
PR #4020: Source Control Submit Files now interprets Escape key as if the user clicked cancel (Contributed by SRombauts)
Change 3653628 by Matt.Kuhlenschmidt
PR #4022: Add New C++ Class dialog remember previously selected module. (Contributed by Koderz)
Change 3653984 by Jamie.Dale
Fixed some redundant string construction
Change 3658528 by Joe.Graf
UE-45141 - Added CMAKE_CXX_COMPILER and CMAKE_C_COMPILER settings to the generated CMake files
Change 3658594 by Jamie.Dale
Zipping in UAT now always uses UTF-8 encoding to prevent Unicode issues
#jira UE-27263
Change 3659643 by Michael.Trepka
Added a call to FCoreDelegates::ApplicationWillTerminateDelegate.Broadcast(); in Mac RequestExit() to match Windows behavior
#jira UETOOL-1238
Change 3661908 by Matt.Kuhlenschmidt
USD asset importing improvements
Change 3664100 by Matt.Kuhlenschmidt
Fix static analysis
Change 3664107 by Matt.Kuhlenschmidt
PR #4051: UE-49448: FPropertyChangedEvent to include TopLevelObjects (Contributed by projectgheist)
Change 3664125 by Matt.Kuhlenschmidt
PR #4036: Add missing GRAPHEDITOR_API (Contributed by projectgheist)
Change 3664340 by Jamie.Dale
PR #3648: Prevent GatherTextFromSource from failing the commandlet (Contributed by projectgheist)
Change 3664403 by Jamie.Dale
PR #3769: Fixes UE-46973 - Drag and Dropping Folders with Names (Contributed by LordNed)
Change 3664539 by Jamie.Dale
PR #3280: Added EditableText functionality (Contributed by projectgheist)
Change 3665433 by Alexis.Matte
When we finish importing morph target we must re-initialise the render resources since we now use GPU morph target.
#jira UE-50231
Change 3666747 by Cody.Albert
Change 3669280 by Jamie.Dale
PR #4060: UE-50455: Verify folder is newly created before removing from tree (Contributed by projectgheist)
Change 3669718 by Jamie.Dale
PR #4061: Clear Content Browser folder search box on escape key (Contributed by projectgheist)
Change 3670838 by Alexis.Matte
Fix crash when deleting a skeletal mesh LOD and the mouse is over the "reimport" button.
#jira UE-50387
Change 3671559 by Matt.Kuhlenschmidt
Update SimpleUI automation test ground truth
#jira UE-50325
Change 3671587 by Alexis.Matte
Fix fbx importer scale not always apply. A cache array was not reset when opening a fbx file.
#jira UE-50147
Change 3671730 by Jamie.Dale
Added PostInitInstance to UClass to allow class types to perform construction time initialization of their instances
Change 3672104 by Michael.Dupuis
#jira UE-50427: Update the volume visibility list of the editor viewport when changing the procedural foliage settings
Change 3674906 by Alexis.Matte
Make sure the export LOD option is taken in consideration when exporting a level or the current level selection
#jira UE-50248
Change 3674942 by Matt.Kuhlenschmidt
Fix static analysis
Change 3675401 by Alexis.Matte
-fix export animation, do not truncate the last frame anymore
-fix the import animation, there was a display issue in the progress bar. Also a floorToInt sometime truncate the last valid frame. We also have a better way to calculate the time increment we use to sample the fbx curves.
#jira UE-48231
Change 3675990 by Alexis.Matte
Remove morph target when doing a re-import, so morph will be remove if they do not exist anymore in the fbx.
This is to avoid driving random vertex with old morph target.
#jira UE-50391
Change 3676169 by Alexis.Matte
When we re-import with dialog the option, "Override Full Name" was set to false and save with the option dialog. We now not set it to false, since it was not use during re-import.
Change 3676396 by Alexis.Matte
Make all LOD 0 name consistent in staticmesh editor
#jira UE-49461
Change 3677730 by Cody.Albert
Enable locking of Persistent Level in Levels tab
#jira UE-50686
Change 3677838 by Jamie.Dale
Replaced broken version of Roboto Light
Change 3679619 by Alexis.Matte
Integrate GitHub pr #4029 to fix import fbx chunk material assignation.
#jira UE-50001
Change 3680093 by Alexis.Matte
Fix the skeletal mesh so the vertex color is part of the vertex equality like with the static mesh.
Change 3680931 by Arciel.Rekman
SlateDialogs: show image icon for *.tga (UE-25106).
- Also reworked the logic somewhat.
#jira UE-25106
Change 3681966 by Yannick.Lange
MaterialEditor post-process preview.
#jira UE-45307
Change 3682407 by Lauren.Ridge
Fixes for material editor compile errors
Change 3682628 by Lauren.Ridge
Content browser filters for Material Layers, Blends, and their instances
Change 3682725 by Lauren.Ridge
Adding filter assets and instance assets to Material Layers and Material Layer Blends. Turning Material Layering on by default
Change 3682921 by Lauren.Ridge
Fix for instance layers not initializing fully
Change 3682954 by Lauren.Ridge
Creating Material Layer Test Assets
Change 3683582 by Alexis.Matte
Fix static analysis build
Change 3683614 by Matt.Kuhlenschmidt
PR #4062: Git Plugin: Fix UE-44637: Deleting an asset is unsuccessful if the asset is marked for add (Contributed by SRombauts)
Change 3684130 by Lauren.Ridge
Allow visible parameter retrieval to correctly recurse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3686289 by Arciel.Rekman
Remove the pessimization (UE-23791).
Change 3686455 by Lauren.Ridge
Fixes for adding/removing a layer parameter from the parent not updating the child
Change 3686829 by Jamie.Dale
No longer include trailing whitespace in the justification calculation for soft-wrapped lines
#jira UE-50266
Change 3686970 by Lauren.Ridge
Making material parameter preview work for functions as well
Change 3687077 by Jamie.Dale
Fixed crash using FActorDetails with the struct details panel
Change 3687152 by Jamie.Dale
Fixed the row structure tag not appearing in the Content Browser for Data Table assets
The CDO is used to filter these tags, and the CDO was omiting that tag which caused it to be filtered for all Data Tables.
#jira UE-48691
Change 3687174 by Lauren.Ridge
Fix for material layer sub-parameters showing up in the default material parameters panel
Change 3688100 by Lauren.Ridge
Fixing static analysis error
Change 3688317 by Jamie.Dale
Fixed crash using the widget reflector in a cooked game
Editor-style isn't available in cooked games. Core-style should be used instead for the widget reflector.
Change 3689054 by Jamie.Dale
Reference Viewer can now show/copy references lists for nodes with multiple objects, or multiple selected nodes
#jira UE-45751
Change 3689513 by Jamie.Dale
Fixed justification bug with RTL text caused by CL# 3686829
Also implemented the same alignment fix for visually left-aligned RTL text.
#jira UE-50266
Change 3690231 by Lauren.Ridge
Added Material Layers Parameters Preview (all editing disabled) panel to the Material Editor
Change 3690234 by Lauren.Ridge
Adding Material Layers Function Parameter to Static Parameter Compare
Change 3690750 by Chris.Bunner
Potential nullptr crash.
Change 3690751 by Chris.Bunner
Fixed logic on overridden vector parameter retrieval for material instances checking a function owned parameter.
Change 3691010 by Jamie.Dale
Fixed some clipping issues that could occur with right-aligned text
FTextBlockLayout::OnPaint was passing an unscaled offset to SetVisibleRegion, and it also wasn't correctly adjusting the offset for RTL text with left-alignment (which becomes a visual right-alignment)
#jira UE-46760
Change 3691091 by Jamie.Dale
Renamed FTextBlockLayout to FSlateTextBlockLayout to reflect that it's a Slate specific type
Change 3691134 by Alexis.Matte
Make sure we instance also the collision mesh when exporting a level to fbx file.
#jira UE-51066
Change 3691157 by Lauren.Ridge
Fix for reset to default not refreshing sub-parameters
Change 3691192 by Jamie.Dale
Fixed Content Browser selection resetting when changing certain view settings
#jira UE-49611
Change 3691204 by Alexis.Matte
Remove fbx export file version 2010 compatibility. The 2018 fbx sdk refuse to export earlier then 2011.
#jira UE-51023
Change 3692335 by Lauren.Ridge
Setting displayed asset to equal filter asset if no instance has been selected
Change 3692479 by Jamie.Dale
Fixed whitespace
Change 3692508 by Alexis.Matte
Make sure we warn the user that there is nothing to export when exporting to fbx using "export selected" or "export All" from the file menu.
We also prevent the export dialog to show
#jira UE-50973
Change 3692639 by Jamie.Dale
Translation Editor now shows stale translations as "Untranslated"
Change 3692743 by Lauren.Ridge
Smaller blend icons, added icon size override to FObjectEntryBox
Change 3692830 by Alexis.Matte
Fix linux build
Change 3692894 by Lauren.Ridge
Tooltip on "Parent" in material layers
Change 3693141 by Jamie.Dale
Removed dead code
FastDecimalFormat made this redundant
Change 3693580 by Jamie.Dale
Added AlwaysSign number formatting option
#jira UE-10310
Change 3693784 by Jamie.Dale
Fixed assert extracting the number formatting rules for Arabic
It uses a character outside the BMP for its plus and minus sign, so we need these to be a string to handle that.
#jira UE-10310
Change 3694428 by Arciel.Rekman
Linux: make directory watch request a warning so they don't block cooking.
- See https://answers.unrealengine.com/questions/715206/cook-error-on-linux.html
Change 3694458 by Matt.Kuhlenschmidt
Made duplicate keybinding warning non-fatal
Change 3694496 by Alexis.Matte
fix static analysis build
Change 3694515 by Jamie.Dale
Added support for culture correct parsing of decimal numbers
#jira UE-4028
Change 3694621 by Jamie.Dale
Added a variant of FastDecimalFormat::StringToNumber that takes a string length
This can be useful if you want to convert a number from within a non-null terminated string
#jira UE-4028
Change 3694958 by Jamie.Dale
Added a parsed length output to FastDecimalFormat::StringToNumber to allow permissive parsing
You can test this rather than the result if you want to attempt to parse a number from a string that may have other data after it. This also fixes the sign-suffix causing the parsing to fail.
#jira UE-4028
Change 3695083 by Alexis.Matte
Optimisation of the morph target import
- We now compute only the normal for the shape the tangent are not necessary
- The async tasks are create when there is some available cpu thread to avoid filling the memory
- When we re-import the morph target are deleted in bulk avoiding to initialize the morph map for every morphs targets
#jira UE-50945
Change 3695122 by Jamie.Dale
GetCultureAgnosticFormattingRules no longer returns a copy
Change 3695835 by Arciel.Rekman
TestPAL: greatly expanded malloc test.
Change 3695918 by Arciel.Rekman
TestPAL: Added thread priority test.
Change 3696589 by Arciel.Rekman
TestPAL: tweak thread priorities test (better readability).
Change 3697345 by Alexis.Matte
Fix reorder of material when importing a LOD with new material
#jira UE-51135
Change 3699590 by Jamie.Dale
Updated SGraphPinNum to use a numeric editor
#jira UE-4028
Change 3699698 by Matt.Kuhlenschmidt
Fix crash opening the level viewport context menu if the actor-component selection is out of sync
#jira UE-48444
Change 3700158 by Arciel.Rekman
Enable packaging for Android Vulkan on Linux (UETOOL-1232).
- Change by Cengiz Terzibas
Change 3700224 by Arciel.Rekman
TestPAL: fixed a memory leak.
Change 3700775 by Cody.Albert
Don't need to initialize EnvironmentCubeMap twice.
Change 3700866 by Michael.Trepka
PR #3223: Remove unnecessary reallocation. (Contributed by foollbar)
#jira UE-41643
Change 3701132 by Michael.Trepka
Copy of CL 3671538
Fixed issues with editor's game mode in high DPI on Mac.
#jira UE-49947, UE-51063
Change 3701421 by Michael.Trepka
Fixed a crash in FScreenShotManager caused by an attempt to access a deleted FString in async lambda expression
Change 3701495 by Alexis.Matte
Fix fbx importer "import normals" option when mix with "mikkt" tangent build it was recomputing the normals instead of importing them.
#jira UE-UE-51359
Change 3702982 by Jamie.Dale
Cleaned up some localization setting names
These now have consistent names and avoid double negatives. This also fixes needing to restart the editor when changing the "ShouldUseLocalizedPropertyNames" setting.
Change 3703517 by Arciel.Rekman
TestPAL: improved thread test.
- Changed the counter to a normal variable to reduce possible contentions (threads used to share the counter in an early prototype, hence the usage of an atomic).
Change 3704378 by Michael.Trepka
Disable Zoom button on Mac if project requests a resizeable window without it.
#jira UE-51335
Change 3706316 by Jamie.Dale
Fixed the asset search suggestions list closing if you clicked on its scrollbar
#jira UE-28885
Change 3706855 by Alexis.Matte
Support importing animation that has some keys with negative time
#jira UE-51305
Change 3709634 by Matt.Kuhlenschmidt
PR #4146: Null access check on ForceLOD in FViewport::HighResScreenshot (Contributed by projectgheist)
Change 3711085 by Michael.Trepka
Reenabled UBT makefiles on Mac
Change 3713049 by Josh.Engebretson
The ConfigPropertyEditor now generates a unique runtime UClass. It uses the outer name on the property instead of a unique ID as a unique id would generate a new UClass every time (and these are RF_Standalone). I also removed some static qualifiers for Section and Property names which were incorrect.
#jira UE-51319
Change 3713144 by Lauren.Ridge
Fixing automated test error
#jira UE-50982
Change 3713395 by Alexis.Matte
Fix auto import mountpoint
#jira UE-51524
Change 3713881 by Michael.Trepka
Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets.
#jira UE-31093
Change 3714197 by Michael.Trepka
Send IMM key down event to the main window instead of Cocoa key window, as that's what the Slate's active window is. This solves problems with IMM not working in context menu text edit fields.
#jira UE-47915
Change 3714911 by Joe.Graf
Merge of cmake changes from Dev-Rendering
Change 3715973 by Michael.Trepka
Disable OS close button on Windows if project settings request that
#jira UE-45522
Change 3716390 by Lauren.Ridge
The color picker summoned when double-clicking vector3 nodes now has its intended "do not refresh until OK is clicked" behavior.
#jira UE-50916
Change 3716529 by Josh.Engebretson
Content Browser: Clamp "Assets to Load at Once Before Warning" so it cannot be set below 1
#jira UE-51341
Change 3716885 by Josh.Engebretson
Tracking transactions such as a duplication operation can modify a selection which differs from the initial one. Added package state tracking to restore unmodified state when necessary.
#jira UE-48572
Change 3716929 by Josh.Engebretson
Unshelved from pending changelist '3364093':
PR #3420: Exe's icons and properties (Contributed by projectgheist)
Change 3716937 by Josh.Engebretson
Unshelved from pending changelist '3647428':
PR #4026: Fixed memory leaks for pipe writes and added data pipe writes (Contributed by Hemofektik)
Change 3717002 by Josh.Engebretson
Fix FileReference/string conversion
Change 3717355 by Joe.Graf
Fixed CMake file generation on Windows including Engine/Source/ThirdParty source
Change 3718256 by Arciel.Rekman
TestPAL: slight mod to the malloc test.
- Touch the allocated memory to check actual resident usage.
Change 3718290 by Arciel.Rekman
BAFO: place descriptor after the allocation to save some VIRT memory.
- We're relying on passing correct "Size" argument to Free() anyway, and this modification makes use of that extra information to save on memory for the descriptor.
Change 3718508 by Michael.Trepka
Fixed vsnprintf on platforms that use our custom implementation in StandardPlatformString.cpp to ignore length modifier for certain types (floating point, pointer)
#jira UE-46148
Change 3718855 by Lauren.Ridge
Adding content browser favorite folders. Add or remove folders from the favorite list in the folder's right-click context menu, and hide or show the favorites list in the Content Browser options.
Change 3718932 by Cody.Albert
Update ActorSequence plugin loading phase to PreDefault
#jira UE-51612
Change 3719378 by tim.gautier
QAGame: Renamed multiTxt_Justification > UMG_TextJustification.
Added additional Text Widgets for testing
Change 3719413 by Lauren.Ridge
Resubmit of content browser favorites
Change 3719803 by Yannick.Lange
VREditor: Fix crash with null GEditor
#jira UE-50103
Change 3721127 by tim.gautier
QAGame: Fixed up a ton of redirectors within /Content and /Content/Materials
- Added M_ParamDefaults and MF_ParamDefaults
- Moved legacy MeshPaint materials into /Content/Materials/MeshPaint
- Renamed ColorPulse assets from MatFunction_ > MF_, moved into /Content/Materials/Functions
Change 3721255 by Alexis.Matte
Replace skeletal mesh import option "keep overlapping vertex" by 3 float thresholds allowing the user to control the welding thresholds.
#jira UE-51363
Change 3721594 by Lauren.Ridge
Material Blends now have plane mesh previews in their icons.
Change 3722072 by tim.gautier
QAGame: Updated MF_ParamDefaults - using red channel as roughness
Updated M_ParamDefaults - tweaked Scalar values
Change 3722180 by Michael.Trepka
Updated Xcode project generator to sort projects in the navigator by name (within folders) and also sort the list of schemes so that their order matches the order of projects in the navigator.
#jira UE-25941
Change 3722220 by Michael.Trepka
Fixed a problem with Xcode project generator not handling quoted preprocessor definitions correctly
#jira UE-40246
Change 3722806 by Lauren.Ridge
Fixing non-editor compiles
Change 3722914 by Alexis.Matte
Fbx importer: Add new attribute type(eSkeleton) for staticmesh socket import.
#jira UE-51665
Change 3723446 by Michael.Trepka
Copy of CL 3688862 from 4.18 + one more fix for a deadlock related to window resizing when using IME
Don't do anything in Mac window's windowWillResize: if we're simply chaning the z order of windows. This way we avoid a rare dead lock when hiding the window.
#jira UE-48257
Change 3723505 by Matt.Kuhlenschmidt
Fix duplicate actors being created for USD primitives that specify a custom actor class
Change 3723555 by Matt.Kuhlenschmidt
Fix crash loading the gameplayabilities module
#jira UE-51693
Change 3723557 by Matt.Kuhlenschmidt
Fixed tooltip on viewport dpi scaling option
Change 3723870 by Lauren.Ridge
Fixing incorrect reset to default visibility, adding clear behavior to fields
Change 3723917 by Arciel.Rekman
Linux: fix compilation with glibc 2.26+ (UE-51699).
- Fixes compilation on Ubuntu 17.10 among others.
(Merging 3723489 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3723918 by Arciel.Rekman
Linux: do not test for popcnt presence unnecessarily (UE-51677).
(Merging 3723904 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3724229 by Arciel.Rekman
Fix FOutputDeviceStdOutput to use printf() on Unix platforms.
Change 3724261 by Arciel.Rekman
TestPAL: fix thread priority test (zero the counter).
Change 3724978 by Arciel.Rekman
Linux: fix priority calculation.
- Rlimit values are always positive, so this was completely broken when the RLIMIT_NICE is non-0.
Change 3725382 by Matt.Kuhlenschmidt
Guard against crashes and add more logging when actor creation fails.
Looks like it could be manual garbage collections triggered before conversion is complete so those have been removed
#jira UE-47464
Change 3725559 by Matt.Kuhlenschmidt
Added a setting to enable/disable high dpi support in editor. This currently only functions in Windows.
Moved some files around for better consistency
Change 3725640 by Arciel.Rekman
Fix Linux thread/process priorities.
- Should also speed up SCW on Linux by deprioritizing them less.
Change 3726101 by Matt.Kuhlenschmidt
Fix logic bug in USD child "kind" type resolving
Change 3726244 by Joe.Graf
Added an option to generate a minimal set of targets for cmake files
Added shader and config files to cmake file generation for searching within IDEs
Change 3726506 by Arciel.Rekman
Fix compile issue after DPI change.
Change 3726549 by Matt.Kuhlenschmidt
Remove unnecessary indirection to cached widgets in the hit test grid
Change 3726660 by Arciel.Rekman
Enable DPI switch on Linux.
Change 3726763 by Arciel.Rekman
Fix mismatching "noperspective" qualifier (UE-50807).
- Pull request #4080 by TTimo.
Change 3727080 by Michael.Trepka
Added support for editor's EnableHighDPIAwareness setting on Mac
Change 3727658 by Matt.Kuhlenschmidt
Fix shutdown crash if level editor is still referenced after the object system has been gc'd
#jira UE-51630
Change 3728270 by Matt.Kuhlenschmidt
Remove propertyeditor dependency from editorstyle
Change 3728291 by Arciel.Rekman
Linux: fix for a crash on a headless system (UE-51714).
- Preliminary change before merging to 4.18.
Change 3728293 by Arciel.Rekman
Linux: remove unneeded dependency on CEF.
- Old workaround should no longer be needed, while this dependency makes UE4 depend on a ton of external libs.
Change 3728524 by Michael.Trepka
Copy of CL 3725570
Removed Enable Fullscreen option from editor's Window menu on Mac. Windowed fullscreen mode is currently unavailable on Mac in editor mode as supporting it properly would require it to work with multiple spaces and split screen, which we currently don't handle (requested in UE-27240)
#jira UE-51709
Change 3728875 by Michael.Trepka
Fixed compile error in Mac SlateOpenGLContext.cpp
Change 3728880 by Matt.Kuhlenschmidt
Guard against invalid worlds in thumbnail renderers
Change 3728924 by Michael.Trepka
Don't defer MacApplication->CloseWindow() call. This should fix a rare problem with deferred call executing during Slate's PrepassWindowAndChildren call.
#jira UE-51711
Change 3729288 by Joe.Graf
Added the .idea/misc.xml file generation to speed up CLion indexing
Change 3729935 by Michael.Dupuis
#jira UE-51722: Hide from UI invalid enum values
Change 3730234 by Matt.Kuhlenschmidt
Fix "Game Gets Mouse Control" setting no longer functioning and instead the mouse was always captured.
#jira UE-51801
Change 3730349 by Michael.Dupuis
#jira UE-51324: Clear the UI selection when rebuilding the palette, as we destroyed all items and recreate them, so selection is on invalid item
Change 3730438 by Lauren.Ridge
Cleaning up material layering UI functions
Change 3730723 by Jamie.Dale
Fixed FastDecimalFormat::StringToNumber incorrectly reporting that number-like sequences that lacked digits had been parsed as numbers
#jira UE-51799
Change 3731008 by Lauren.Ridge
Changing Layers and Blends from proxy assets to real assets
Change 3731026 by Arciel.Rekman
libelf: make elf_end() visible (UE-51843).
- This repairs compilation for a case when CUDA is being used.
- Also added some missing files for ARM 32-bit.
Change 3731081 by Lauren.Ridge
New material layer test assets
Change 3731186 by Josh.Engebretson
Adding camera speed scalar setting and Toolbar UI to increase range on camera speed presets
#jira UE-50104
Change 3731188 by Mike.Erwin
Improve responsiveness of Open Asset dialog.
On large projects, there's a noticeable delay when opening and searching/filtering assets.
Stopwatch measurements on my machine (seconds for ~122,000 assets):
before with this CL
ctrl-P 1.4 0.45
search 1.8 0.55
CollectionManagerModule was the main culprit for search/filter slowness.
Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation.
Change 3731682 by Arciel.Rekman
UnrealEd: Allow unattended commandlets to rename/save packages.
Change 3732305 by Michael.Dupuis
#jira UE-48434 : Only register if the foliage type still has a valid mesh
Change 3732361 by Matt.Kuhlenschmidt
Fix two settings objects being created in the transient package with the same name
#jira UE-51891
Change 3732895 by Josh.Engebretson
https://jira.it.epicgames.net/browse/UE-51706
If a shared DDC is not being used, present a notification to the licensee with a link on how to setup a shared DDC.
Adds DDC notification events for check/put and query for whether a shared DDC is in use.
#jira UE-51706
Change 3733025 by Arciel.Rekman
UBT: make sure new clang versions are invoked.
Change 3733311 by Mike.Erwin
Fix Linux compile warning from CL 3731188
It didn't like mixing && and || without parentheses. Reworked logic to do one test at a time, put cheaper tests first to avoid calls to more expensive IsPluginFolder.
Change 3733658 by Josh.Engebretson
Add a missing #undef LOCTEXT_NAMESPACE
Change 3734003 by Arciel.Rekman
Fix Windows attempting to use printf %ls and crashing at that (UE-51934).
Change 3734039 by Michael.Trepka
Fixed a couple of merge issues in Mac ApplicationCore
Change 3734052 by Michael.Trepka
One more Mac ApplicationCore fix
Change 3734244 by Lauren.Ridge
Fix for accessing Slate window on render thread
Change 3734950 by Josh.Engebretson
Fixing clang warning
Change 3734978 by Jamie.Dale
Relaxed enum property importing to allow valid numeric values to be imported too
This was previously made more strict which caused a regression in Data Table importing
#jira UE-51848
Change 3734999 by Arciel.Rekman
Linux: add LTO support and more.
- Adds ability to use link-time opitimization (reusing current target property bAllowLTCG).
- Supports using llvm-ar and lld instead of ar/ranlib and ld.
- More build information printed (and in a better organized way).
- Native scripts updated to install packages with the appropriate tools on supported systems
- AutoSDKs updated to require a new toolchain (already checked in).
- Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089
Change 3735268 by Matt.Kuhlenschmidt
Added support for canvas based DPI scaling.
-Scene canvas is by default not scaled as this could severely impact any game using a canvas based UI
-The debug canvas for stats is always dpi scaled in editor and pie.
-Eliminated text scaling workaround now that the entire canvas is properly scaled
-Enabled canvas scaling in cascade UI
Change 3735329 by Matt.Kuhlenschmidt
Fix potential crash if an asset editor has an object deleted out from under it
#jira UE-51941
Change 3735502 by Arciel.Rekman
Fix compile issue (bShouldUpdateScreenPercentage).
Change 3735878 by Jamie.Dale
Updated FString::SanitizeFloat to allow you to specify the min number of fractional digits to have in the resultant string
This defaults to 1 as that was the old behavior of FString::SanitizeFloat, but can also be set to 0 to prevent adding .0 to whole numbers.
Change 3735881 by Jamie.Dale
JsonValue no longer stringifies whole numbers as floats
Change 3735884 by Jamie.Dale
Only allow enums to import integral values
Change 3735912 by Josh.Engebretson
Improving cook process error/warning handling including asset warning/error content browser links and manual dismiss for cook error notifications
#jira UE-48131
Change 3736280 by Matt.Kuhlenschmidt
Fix 0 dpi scale for canvases
#jira UE-51995
Change 3736298 by Matt.Kuhlenschmidt
Force focus of game viewports in vr mode
Change 3736374 by Jamie.Dale
Fixed some places where input chords were being used without testing that they had a valid key set
#jira UE-51799
Change 3738543 by Matt.Kuhlenschmidt
Better fix for edit condition crashes
#jira UE-51886
Change 3738603 by Lauren.Ridge
Copy over of drag and drop non-array onto array fix
Change 3739701 by Chris.Babcock
Fix crashlytics merge error
#jira UE-52064
#ue4
#android
[CL 3739980 by Matt Kuhlenschmidt in Main branch]
2017-11-06 18:22:01 -05:00
. Font ( FCoreStyle : : GetDefaultFontStyle ( " Bold " , 9 ) )
2014-09-05 17:51:16 -04:00
. Text ( FEditorCategoryUtils : : GetCategoryDisplayString ( InActionNode - > GetDisplayName ( ) ) )
2014-03-14 14:13:41 -04:00
. ToolTip ( ToolTipWidget )
. HighlightText ( InArgs . _HighlightText )
. OnVerifyTextChanged ( this , & SGraphActionCategoryWidget : : OnVerifyTextChanged )
. OnTextCommitted ( InArgs . _OnTextCommitted )
. IsSelected ( InArgs . _IsSelected )
. IsReadOnly ( InArgs . _IsReadOnly )
]
] ;
}
// SWidget interface
2014-06-13 06:14:46 -04:00
virtual FReply OnDrop ( const FGeometry & MyGeometry , const FDragDropEvent & DragDropEvent ) override
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:00:50 -04:00
TSharedPtr < FGraphEditorDragDropAction > GraphDropOp = DragDropEvent . GetOperationAs < FGraphEditorDragDropAction > ( ) ;
if ( GraphDropOp . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-09-05 17:51:16 -04:00
GraphDropOp - > DroppedOnCategory ( ActionNode . Pin ( ) - > GetCategoryPath ( ) ) ;
2014-03-14 14:13:41 -04:00
return FReply : : Handled ( ) ;
}
return FReply : : Unhandled ( ) ;
}
2014-06-13 06:14:46 -04:00
virtual void OnDragEnter ( const FGeometry & MyGeometry , const FDragDropEvent & DragDropEvent ) override
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:00:50 -04:00
TSharedPtr < FGraphEditorDragDropAction > GraphDropOp = DragDropEvent . GetOperationAs < FGraphEditorDragDropAction > ( ) ;
if ( GraphDropOp . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2015-05-08 10:46:42 -04:00
GraphDropOp - > SetHoveredCategoryName ( ActionNode . Pin ( ) - > GetDisplayName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
2014-06-13 06:14:46 -04:00
virtual void OnDragLeave ( const FDragDropEvent & DragDropEvent ) override
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:00:50 -04:00
TSharedPtr < FGraphEditorDragDropAction > GraphDropOp = DragDropEvent . GetOperationAs < FGraphEditorDragDropAction > ( ) ;
if ( GraphDropOp . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2015-05-08 10:46:42 -04:00
GraphDropOp - > SetHoveredCategoryName ( FText : : GetEmpty ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
// End of SWidget interface
/** Callback for the SInlineEditableTextBlock to verify the text before commit */
bool OnVerifyTextChanged ( const FText & InText , FText & OutErrorMessage )
{
2021-04-08 14:32:07 -04:00
if ( InText . ToString ( ) . Len ( ) > = NAME_SIZE )
2014-03-14 14:13:41 -04:00
{
OutErrorMessage = LOCTEXT ( " CategoryNameTooLong_Error " , " Name too long! " ) ;
return false ;
}
return true ;
}
} ;
//////////////////////////////////////////////////////////////////////////
2020-09-24 00:43:27 -04:00
FString SGraphActionMenu : : LastUsedFilterText ;
2014-03-14 14:13:41 -04:00
void SGraphActionMenu : : Construct ( const FArguments & InArgs , bool bIsReadOnly /* = true*/ )
{
2023-03-21 19:49:22 -04:00
this - > SelectedSuggestionScore = TNumericLimits < float > : : Lowest ( ) ;
this - > SelectedSuggestionSourceIndex = INDEX_NONE ;
2024-04-03 20:04:53 -04:00
this - > SelectedAction = TSharedPtr < FGraphActionNode > ( ) ;
2014-03-14 14:13:41 -04:00
this - > bIgnoreUIUpdate = false ;
2015-01-26 17:51:00 -05:00
this - > bUseSectionStyling = InArgs . _UseSectionStyling ;
2024-04-05 20:46:03 -04:00
this - > bIsKeyboardNavigating = false ;
2021-06-23 17:51:32 -04:00
this - > bAllowPreselectedItemActivation = InArgs . _bAllowPreselectedItemActivation ;
2024-01-15 08:46:24 -05:00
this - > bAutomaticallySelectSingleAction = InArgs . _bAutomaticallySelectSingleAction ;
Fix BT decorator and service lists (and also some custom licensee graph implementations) put the first and second level category on the same level.
A very long time ago CL 2411381 introduced a change to make the default Base Indent Level of all Graph Action Menus "1", basically meaning that both "0" and "1" indent levels would be placed at the root of the menu. Presumably they've needed it, because in BPs, categories on the left side are custom headers, and they didn't want the children (functions, variables, etc) to have an extra indent.
However, they've made this change globally, basically breaking Graph Action Menus that didn't have category customization and needed the first level to be indented under the root level.
Some systems have overcome this by defining a custom expander with a Base Indent Level of 0 - getting back the original, expected behavior. That was however just hiding the underlying issue.
This change reverts back the Base Indent Level to 0, and sets it to 1 instead only for those menus, which have a customized category header. This should fix all graph menus where the second category level was not indented (i.e. BT Action Menu and Decorator Context Menu).
#rb aditya.ravichandran
#jira none
#ushell-cherrypick of 29515770 by kristof.morva1
[CL 29530311 by ben hoffman in ue5-main branch]
2023-11-07 15:20:10 -05:00
this - > DefaultRowExpanderBaseIndentLevel = InArgs . _DefaultRowExpanderBaseIndentLevel ;
2024-04-05 20:46:03 -04:00
this - > DisplayIndex = UE : : GraphEditor : : Private : : PREFERRED_TOP_INDEX ;
2014-03-14 14:13:41 -04:00
this - > bAutoExpandActionMenu = InArgs . _AutoExpandActionMenu ;
this - > bShowFilterTextBox = InArgs . _ShowFilterTextBox ;
this - > bAlphaSortItems = InArgs . _AlphaSortItems ;
2021-06-23 17:51:32 -04:00
this - > bSortItemsRecursively = InArgs . _SortItemsRecursively ;
2014-03-14 14:13:41 -04:00
this - > OnActionSelected = InArgs . _OnActionSelected ;
this - > OnActionDoubleClicked = InArgs . _OnActionDoubleClicked ;
this - > OnActionDragged = InArgs . _OnActionDragged ;
this - > OnCategoryDragged = InArgs . _OnCategoryDragged ;
this - > OnCreateWidgetForAction = InArgs . _OnCreateWidgetForAction ;
this - > OnCreateCustomRowExpander = InArgs . _OnCreateCustomRowExpander ;
2023-01-12 18:36:13 -05:00
this - > OnGetActionList = InArgs . _OnGetActionList ;
2014-03-14 14:13:41 -04:00
this - > OnCollectAllActions = InArgs . _OnCollectAllActions ;
2015-01-26 17:51:00 -05:00
this - > OnCollectStaticSections = InArgs . _OnCollectStaticSections ;
2014-03-14 14:13:41 -04:00
this - > OnCategoryTextCommitted = InArgs . _OnCategoryTextCommitted ;
this - > OnCanRenameSelectedAction = InArgs . _OnCanRenameSelectedAction ;
this - > OnGetSectionTitle = InArgs . _OnGetSectionTitle ;
2015-01-26 17:51:00 -05:00
this - > OnGetSectionToolTip = InArgs . _OnGetSectionToolTip ;
this - > OnGetSectionWidget = InArgs . _OnGetSectionWidget ;
2014-09-05 17:51:16 -04:00
this - > FilteredRootAction = FGraphActionNode : : NewRootNode ( ) ;
2019-07-17 17:17:45 -04:00
this - > OnActionMatchesName = InArgs . _OnActionMatchesName ;
this - > DraggedFromPins = InArgs . _DraggedFromPins ;
2021-02-03 14:57:28 -04:00
this - > GraphObj = InArgs . _GraphObj ;
2019-07-17 17:17:45 -04:00
2023-01-12 18:36:13 -05:00
// Default graph action list (also provides an empty source list to start with)
AllActions = MakeShared < FGraphActionListBuilderBase > ( ) ;
if ( OnGetActionList . IsBound ( ) )
{
// If we are obtaining a new action list at refresh time, ensure that the indirect collection delegate is unbound
if ( ! ensureMsgf ( ! OnCollectAllActions . IsBound ( ) , TEXT ( " The OnCollectAllActions delegate is bound, but will not be invoked, because OnGetActionList has also been bound and will be used to obtain the action list for this menu. To resolve this, one of these events should be removed from its construction. " ) ) )
{
OnCollectAllActions . Unbind ( ) ;
}
}
2014-03-14 14:13:41 -04:00
// If a delegate for filtering text is passed in, assign it so that it will be used instead of the built-in filter box
if ( InArgs . _OnGetFilterText . IsBound ( ) )
{
this - > OnGetFilterText = InArgs . _OnGetFilterText ;
}
TreeView = SNew ( STreeView < TSharedPtr < FGraphActionNode > > )
. TreeItemsSource ( & ( this - > FilteredRootAction - > Children ) )
. OnGenerateRow ( this , & SGraphActionMenu : : MakeWidget , bIsReadOnly )
. OnSelectionChanged ( this , & SGraphActionMenu : : OnItemSelected )
. OnMouseButtonDoubleClick ( this , & SGraphActionMenu : : OnItemDoubleClicked )
. OnContextMenuOpening ( InArgs . _OnContextMenuOpening )
. OnGetChildren ( this , & SGraphActionMenu : : OnGetChildrenForCategory )
. SelectionMode ( ESelectionMode : : Single )
2016-01-25 13:25:51 -05:00
. OnItemScrolledIntoView ( this , & SGraphActionMenu : : OnItemScrolledIntoView )
2019-05-29 11:33:11 -04:00
. OnSetExpansionRecursive ( this , & SGraphActionMenu : : OnSetExpansionRecursive )
. HighlightParentNodesForSelection ( true ) ;
2014-03-14 14:13:41 -04:00
this - > ChildSlot
[
SNew ( SVerticalBox )
// FILTER BOX
+ SVerticalBox : : Slot ( )
. AutoHeight ( )
[
SAssignNew ( FilterTextBox , SSearchBox )
// If there is an external filter delegate, do not display this filter box
. Visibility ( InArgs . _OnGetFilterText . IsBound ( ) ? EVisibility : : Collapsed : EVisibility : : Visible )
. OnTextChanged ( this , & SGraphActionMenu : : OnFilterTextChanged )
. OnTextCommitted ( this , & SGraphActionMenu : : OnFilterTextCommitted )
2021-04-29 19:32:06 -04:00
. DelayChangeNotificationsWhileTyping ( false )
2014-03-14 14:13:41 -04:00
]
// ACTION LIST
+ SVerticalBox : : Slot ( )
. Padding ( FMargin ( 0.0f , 2.0f , 0.0f , 0.0f ) )
. FillHeight ( 1.f )
[
SNew ( SScrollBorder , TreeView . ToSharedRef ( ) )
2014-04-02 18:09:23 -04:00
[
TreeView . ToSharedRef ( )
]
2014-03-14 14:13:41 -04:00
]
] ;
2015-06-04 10:34:10 -04:00
// When the search box has focus, we want first chance handling of any key down events so we can handle the up/down and escape keys the way we want
FilterTextBox - > SetOnKeyDownHandler ( FOnKeyDown : : CreateSP ( this , & SGraphActionMenu : : OnKeyDown ) ) ;
2014-03-14 14:13:41 -04:00
if ( ! InArgs . _ShowFilterTextBox )
{
FilterTextBox - > SetVisibility ( EVisibility : : Collapsed ) ;
}
// Get all actions.
RefreshAllActions ( false ) ;
2024-01-15 08:46:24 -05:00
if ( bAutomaticallySelectSingleAction )
{
TArray < TSharedPtr < FGraphActionNode > > ActionNodes ;
FilteredRootAction - > GetAllActionNodes ( ActionNodes ) ;
if ( ActionNodes . Num ( ) = = 1 )
{
OnItemSelected ( ActionNodes [ 0 ] , ESelectInfo : : Direct ) ;
}
}
2014-03-14 14:13:41 -04:00
}
void SGraphActionMenu : : RefreshAllActions ( bool bPreserveExpansion , bool bHandleOnSelectionEvent /*=true*/ )
{
2022-07-01 14:16:41 -04:00
TRACE_CPUPROFILER_EVENT_SCOPE ( SGraphActionMenu : : RefreshAllActions ) ;
2014-03-14 14:13:41 -04:00
// Save Selection (of only the first selected thing)
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
2024-04-03 20:04:53 -04:00
TSharedPtr < FGraphActionNode > CurrentSelectedAction = SelectedNodes . Num ( ) > 0 ? SelectedNodes [ 0 ] : nullptr ;
2014-03-14 14:13:41 -04:00
2023-01-12 18:36:13 -05:00
if ( OnGetActionList . IsBound ( ) )
{
// Obtain the source action list directly.
AllActions = OnGetActionList . Execute ( ) ;
}
else
2022-07-01 14:16:41 -04:00
{
TRACE_CPUPROFILER_EVENT_SCOPE ( SGraphActionMenu : : CollectAllActions ) ;
2023-01-12 18:36:13 -05:00
// Collect actions into our local list context.
AllActions - > Empty ( ) ;
OnCollectAllActions . ExecuteIfBound ( * AllActions ) ;
2022-07-01 14:16:41 -04:00
}
2014-03-14 14:13:41 -04:00
GenerateFilteredItems ( bPreserveExpansion ) ;
// Re-apply selection #0 if possible
2024-04-03 20:04:53 -04:00
if ( CurrentSelectedAction . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-07-28 16:56:10 -04:00
// Clear the selection, we will be re-selecting the previous action
TreeView - > ClearSelection ( ) ;
if ( bHandleOnSelectionEvent )
2014-03-14 14:13:41 -04:00
{
2024-04-03 20:04:53 -04:00
SelectItemByName ( * CurrentSelectedAction - > GetDisplayName ( ) . ToString ( ) , ESelectInfo : : OnMouseClick , CurrentSelectedAction - > SectionID , SelectedNodes [ 0 ] - > IsCategoryNode ( ) ) ;
2014-07-28 16:56:10 -04:00
}
else
{
// If we do not want to handle the selection, set it directly so it will reselect the item but not handle the event.
2024-04-03 20:04:53 -04:00
SelectItemByName ( * CurrentSelectedAction - > GetDisplayName ( ) . ToString ( ) , ESelectInfo : : Direct , CurrentSelectedAction - > SectionID , SelectedNodes [ 0 ] - > IsCategoryNode ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
}
2015-01-26 17:51:00 -05:00
void SGraphActionMenu : : GetSectionExpansion ( TMap < int32 , bool > & SectionExpansion ) const
{
}
void SGraphActionMenu : : SetSectionExpansion ( const TMap < int32 , bool > & InSectionExpansion )
{
for ( auto & PossibleSection : FilteredRootAction - > Children )
{
if ( PossibleSection - > IsSectionHeadingNode ( ) )
{
const bool * IsExpanded = InSectionExpansion . Find ( PossibleSection - > SectionID ) ;
if ( IsExpanded ! = nullptr )
{
TreeView - > SetItemExpansion ( PossibleSection , * IsExpanded ) ;
}
}
}
}
2014-03-14 14:13:41 -04:00
TSharedRef < SEditableTextBox > SGraphActionMenu : : GetFilterTextBox ( )
{
return FilterTextBox . ToSharedRef ( ) ;
}
void SGraphActionMenu : : GetSelectedActions ( TArray < TSharedPtr < FEdGraphSchemaAction > > & OutSelectedActions ) const
{
OutSelectedActions . Empty ( ) ;
2024-05-09 12:27:33 -04:00
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
for ( TSharedPtr < FGraphActionNode > & SelectedNode : SelectedNodes )
2014-03-14 14:13:41 -04:00
{
2024-05-09 12:27:33 -04:00
if ( SelectedNode . IsValid ( ) & & SelectedNode - > IsActionNode ( ) )
2014-03-14 14:13:41 -04:00
{
2024-05-09 12:27:33 -04:00
OutSelectedActions . Add ( SelectedNode - > Action ) ;
2014-03-14 14:13:41 -04:00
}
}
}
void SGraphActionMenu : : OnRequestRenameOnActionNode ( )
{
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
if ( SelectedNodes . Num ( ) > 0 )
{
2014-09-05 17:51:16 -04:00
if ( ! SelectedNodes [ 0 ] - > BroadcastRenameRequest ( ) )
2014-03-14 14:13:41 -04:00
{
TreeView - > RequestScrollIntoView ( SelectedNodes [ 0 ] ) ;
}
}
}
bool SGraphActionMenu : : CanRequestRenameOnActionNode ( ) const
{
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
if ( SelectedNodes . Num ( ) = = 1 & & OnCanRenameSelectedAction . IsBound ( ) )
{
return OnCanRenameSelectedAction . Execute ( SelectedNodes [ 0 ] ) ;
}
return false ;
}
FString SGraphActionMenu : : GetSelectedCategoryName ( ) const
{
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
2014-09-05 17:51:16 -04:00
return ( SelectedNodes . Num ( ) > 0 ) ? SelectedNodes [ 0 ] - > GetDisplayName ( ) . ToString ( ) : FString ( ) ;
2014-03-14 14:13:41 -04:00
}
void SGraphActionMenu : : GetSelectedCategorySubActions ( TArray < TSharedPtr < FEdGraphSchemaAction > > & OutActions ) const
{
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
for ( int32 SelectionIndex = 0 ; SelectionIndex < SelectedNodes . Num ( ) ; SelectionIndex + + )
{
if ( SelectedNodes [ SelectionIndex ] . IsValid ( ) )
{
GetCategorySubActions ( SelectedNodes [ SelectionIndex ] , OutActions ) ;
}
}
}
void SGraphActionMenu : : GetCategorySubActions ( TWeakPtr < FGraphActionNode > InAction , TArray < TSharedPtr < FEdGraphSchemaAction > > & OutActions ) const
{
if ( InAction . IsValid ( ) )
{
TSharedPtr < FGraphActionNode > CategoryNode = InAction . Pin ( ) ;
TArray < TSharedPtr < FGraphActionNode > > Children ;
CategoryNode - > GetLeafNodes ( Children ) ;
for ( int32 i = 0 ; i < Children . Num ( ) ; + + i )
{
TSharedPtr < FGraphActionNode > CurrentChild = Children [ i ] ;
if ( CurrentChild . IsValid ( ) & & CurrentChild - > IsActionNode ( ) )
{
2024-04-19 19:47:31 -04:00
OutActions . Add ( CurrentChild - > Action ) ;
2014-03-14 14:13:41 -04:00
}
}
}
}
2014-07-28 16:56:10 -04:00
bool SGraphActionMenu : : SelectItemByName ( const FName & ItemName , ESelectInfo : : Type SelectInfo , int32 SectionId /* = INDEX_NONE */ , bool bIsCategory /* = false*/ )
2014-03-14 14:13:41 -04:00
{
if ( ItemName ! = NAME_None )
{
TSharedPtr < FGraphActionNode > SelectionNode ;
TArray < TSharedPtr < FGraphActionNode > > GraphNodes ;
2014-09-05 17:51:16 -04:00
FilteredRootAction - > GetAllNodes ( GraphNodes ) ;
2014-03-14 14:13:41 -04:00
for ( int32 i = 0 ; i < GraphNodes . Num ( ) & & ! SelectionNode . IsValid ( ) ; + + i )
{
TSharedPtr < FGraphActionNode > CurrentGraphNode = GraphNodes [ i ] ;
2014-09-05 17:51:16 -04:00
FEdGraphSchemaAction * GraphAction = CurrentGraphNode - > GetPrimaryAction ( ) . Get ( ) ;
2014-03-14 14:13:41 -04:00
2014-07-28 16:56:10 -04:00
// If the user is attempting to select a category, make sure it's a category
if ( CurrentGraphNode - > IsCategoryNode ( ) = = bIsCategory )
{
if ( SectionId = = INDEX_NONE | | CurrentGraphNode - > SectionID = = SectionId )
{
if ( GraphAction )
{
if ( ( OnActionMatchesName . IsBound ( ) & & OnActionMatchesName . Execute ( GraphAction , ItemName ) ) | | GraphActionMenuHelpers : : ActionMatchesName ( GraphAction , ItemName ) )
{
SelectionNode = GraphNodes [ i ] ;
break ;
}
}
2014-09-17 16:32:28 -04:00
if ( CurrentGraphNode - > GetDisplayName ( ) . ToString ( ) = = FName : : NameToDisplayString ( ItemName . ToString ( ) , false ) )
2014-07-28 16:56:10 -04:00
{
SelectionNode = CurrentGraphNode ;
break ;
}
2014-03-14 14:13:41 -04:00
}
}
// One of the children may match
for ( int32 ChildIdx = 0 ; ChildIdx < CurrentGraphNode - > Children . Num ( ) & & ! SelectionNode . IsValid ( ) ; + + ChildIdx )
{
TSharedPtr < FGraphActionNode > CurrentChildNode = CurrentGraphNode - > Children [ ChildIdx ] ;
2024-04-19 19:47:31 -04:00
if ( FEdGraphSchemaAction * ChildGraphAction = CurrentChildNode - > Action . Get ( ) )
2014-03-14 14:13:41 -04:00
{
2014-07-28 16:56:10 -04:00
// If the user is attempting to select a category, make sure it's a category
if ( CurrentChildNode - > IsCategoryNode ( ) = = bIsCategory )
2014-03-14 14:13:41 -04:00
{
2014-07-28 16:56:10 -04:00
if ( SectionId = = INDEX_NONE | | CurrentChildNode - > SectionID = = SectionId )
2014-03-14 14:13:41 -04:00
{
2014-07-28 16:56:10 -04:00
if ( ChildGraphAction )
{
2015-01-29 04:21:37 -05:00
if ( ( OnActionMatchesName . IsBound ( ) & & OnActionMatchesName . Execute ( ChildGraphAction , ItemName ) ) | | GraphActionMenuHelpers : : ActionMatchesName ( ChildGraphAction , ItemName ) )
2014-07-28 16:56:10 -04:00
{
SelectionNode = GraphNodes [ i ] - > Children [ ChildIdx ] ;
2014-03-14 14:13:41 -04:00
2014-07-28 16:56:10 -04:00
break ;
}
}
2014-09-05 17:51:16 -04:00
else if ( CurrentChildNode - > GetDisplayName ( ) . ToString ( ) = = FName : : NameToDisplayString ( ItemName . ToString ( ) , false ) )
2014-07-28 16:56:10 -04:00
{
SelectionNode = CurrentChildNode ;
break ;
}
2014-03-14 14:13:41 -04:00
}
}
}
}
}
if ( SelectionNode . IsValid ( ) )
{
2015-02-16 10:38:14 -05:00
// Expand the parent nodes
for ( TSharedPtr < FGraphActionNode > ParentAction = SelectionNode - > GetParentNode ( ) . Pin ( ) ; ParentAction . IsValid ( ) ; ParentAction = ParentAction - > GetParentNode ( ) . Pin ( ) )
{
TreeView - > SetItemExpansion ( ParentAction , true ) ;
}
// Select the node
2014-03-14 14:13:41 -04:00
TreeView - > SetSelection ( SelectionNode , SelectInfo ) ;
TreeView - > RequestScrollIntoView ( SelectionNode ) ;
return true ;
}
}
else
{
TreeView - > ClearSelection ( ) ;
return true ;
}
return false ;
}
2015-05-08 10:46:42 -04:00
void SGraphActionMenu : : ExpandCategory ( const FText & CategoryName )
2014-03-14 14:13:41 -04:00
{
2015-05-08 10:46:42 -04:00
if ( ! CategoryName . IsEmpty ( ) )
2014-03-14 14:13:41 -04:00
{
TArray < TSharedPtr < FGraphActionNode > > GraphNodes ;
2014-09-05 17:51:16 -04:00
FilteredRootAction - > GetAllNodes ( GraphNodes ) ;
2014-03-14 14:13:41 -04:00
for ( int32 i = 0 ; i < GraphNodes . Num ( ) ; + + i )
{
2015-05-08 10:46:42 -04:00
if ( GraphNodes [ i ] - > GetDisplayName ( ) . EqualTo ( CategoryName ) )
2014-03-14 14:13:41 -04:00
{
GraphNodes [ i ] - > ExpandAllChildren ( TreeView ) ;
}
}
}
}
static bool CompareGraphActionNode ( TSharedPtr < FGraphActionNode > A , TSharedPtr < FGraphActionNode > B )
{
check ( A . IsValid ( ) ) ;
check ( B . IsValid ( ) ) ;
// First check grouping is the same
2014-09-05 17:51:16 -04:00
if ( A - > GetDisplayName ( ) . ToString ( ) ! = B - > GetDisplayName ( ) . ToString ( ) )
2014-03-14 14:13:41 -04:00
{
return false ;
}
#ROBOMERGE-AUTHOR: shaun.kime
Catching up 4.20 to Dev-Niagara as of CL 4111104
#rb none
#tests PC and PS4 auto-tests pass
Change 4075849 by Wyeth.Johnson
Metadata on location and velocity modules, new DI
Change 4076028 by Frank.Fella
Niagara - Fix an issue where the list of relevant scripts in the shared script view model could get out of sync when changing properties on an emitter such as interpolated spawning and gpu simulation. This could result in an emitter recompiling forever if it started as GPU and was then switched to CPU and then a force compile was requested since it would include the GPU script when determing the compile status, but it would never compile it.
#jira UE-59220
Change 4076925 by Frank.Fella
Niagara - Adding and removing pins from an assignment node wasn't correctly invalidating the graph which I broke with my crash fix 4058428 since I thought the refresh call would do that.
#jira UE-59249
Change 4076971 by Frank.Fella
Niagara - Made few changes to stack issue handling while fixing an issue where the stack error wouldn't change when the compile error changed.
+ Changed the unique identifier for stack issues to be automatically generated from a hash of the combined stack editor data key and the long description of the error.
+ Changed the stack issue unique identifier from an FName to an FString to avoid poluting the name table with lots of generated hash strings.
+ Encapsulated all of the stack issue data to validate the required inputs.
#jira UE-59251
Change 4076974 by Frank.Fella
Niagara - Minor change missed in last checkin.
Change 4076990 by Frank.Fella
Niagara - Fix the assignment node so that it uses a "Begin Defaults" node instead of a regular input node when it's hooking up linked defaults.
#jira UE-59224
Change 4077392 by jonathan.lindquist
Changing pin order
Change 4077426 by Wyeth.Johnson
transform position DI
Change 4077636 by Frank.Fella
Niagara - Fix an issue where the stack function input collection wasn't generating errors correctly due to data being cached between refreshes which became stale.
#jira UE-59269
Change 4078004 by jonathan.lindquist
Submitting progress on a module
Change 4078009 by jonathan.lindquist
changing a variable name in rotate around point
Change 4078043 by Frank.Fella
Niagara - Fix the stack function input so that it cleans up properly when removing pins from assignment nodes, also fix undo for the remove operation.
#jira UE-59271
Change 4078063 by Shaun.Kime
Fixing debug particle data texture usage
#tests n/a
Change 4079110 by jonathan.lindquist
Submitting a cone mask function
Change 4079161 by jonathan.lindquist
Adding a new cone mask module
Change 4079164 by jonathan.lindquist
Adding a description to the cone mask function
Change 4079166 by jonathan.lindquist
Submitting a new cone mask dynamic input
Change 4079988 by Yannick.Lange
Set persistend guid for if node input pins on creating a new output pin.
Change 4080531 by jonathan.lindquist
New cone based mask for curl noise contributions. Additional meta data descriptions for other inputs.
Change 4080541 by jonathan.lindquist
Exposing the cone axis variable
Change 4080544 by jonathan.lindquist
One more meta data tweak :D
Change 4081107 by Shaun.Kime
Fixing underlying GPU collision system after Rendering refactored to use the FSceneTexturesUniformParameters instead of individual textures. Note that GPU collision only works with the primary back buffer. We will need more work to support split-screen or PIP.
#tests Collsion test GPU now is functional, but we still get a few nondeterministic strays in different directions keeping me from turning it on at the moment
Change 4081111 by Shaun.Kime
Updating the compile GUID because the previous change adjusted generated code
#tests n/a
Change 4081231 by Shaun.Kime
Allowing several descriptions to be multiline, accessible by Shift + Enter.
#tests created descriptions for both module fields and modules themselves that were multi-line. confirmed UI was correct.
Change 4081552 by Jonathan.Lindquist
Additional tooltips/documentation
Change 4081566 by Jonathan.Lindquist
Changing split linear color's pin order
Change 4081646 by Shaun.Kime
Added tooltips to the parameter map get and set nodes that should grealy improve understanding.
#tests n/a
Change 4082769 by Yannick.Lange
Pins and parameters unique name on creation
Change 4082792 by Yannick.Lange
Fix: Adding a property pin to a Niagara Module Script map node creates a duplicate of that property in the Properties menu
#jira UE-58823
Change 4082851 by jonathan.lindquist
Ensuring that the latest version of this content is available for Simon
Change 4082875 by Yannick.Lange
Parameter, source and dest pins of a parameter map node have a subcategories. Only pins with the parameter subcategory will be found by the graph.
#jira UE-57692
Change 4083076 by Wyeth.Johnson
Gnomon asset for example content
Change 4083783 by Frank.Fella
Niagara - Fix issues with drag/drop
+ Don't allow the user to drop a module if the usage flags of the target script aren't supported.
+ Allow dragging to different scripts event if they are in different graphs, or different emitters.
+ Transfer rapid iteration paramters correctly when moving modules between scripts.
+ Fix undo for rapid iteration paramters when undoing a move.
#jira UE-59340
#jira UE-59401
Change 4083999 by Bradut.Palas
Improved functionality of module dependencies: intercategory module dependencies now work, module order is fixed.
#tests none
#jira UE-58200
Change 4084002 by Shaun.Kime
Validating modules reads and writes.
You cannot read/write from particles namespace in system and emitter scripts
You cannot write to user or NPC namespaces ever
You cannot write to system/emitter namespaces in particle scripts
#tests auto-tests pass
Change 4084419 by jonathan.lindquist
Changing default texture assignments to work with the new project directory.
Change 4084595 by jonathan.lindquist
Submitting a new material that will generate a 3d sphere on a sprite using world position offset and pixel depth offset.
Change 4084603 by Jonathan.Lindquist
New thumbnail
Change 4084607 by jonathan.lindquist
Submitting final variable settings for the skeletal mesh reproduction particle system
Change 4084649 by jonathan.lindquist
Finalizing sampling mesh code after exploring multiple approaches.
Change 4084746 by Frank.Fella
Niagara - When creating the render state in the niagara component, also send the dynamic data the same frame since the emitter might not actually tick the next frame.
#jira UE-57696
#tests engine tests.
Change 4085536 by Yannick.Lange
Fix assert attempting to add a Niagara emitter parameter to a system before tracking an emitter.
Also passes all graphs to the add button, to avoid any use of Graphs[0] in SNiagaraParameterMapView.
#jira UE-58832
Change 4085757 by Yannick.Lange
Prevent circular connections when trying to connect pins
#jira UE-55541
Change 4086086 by Bradut.Palas
Fixing static code analysis issues by moving the RefreshIssues call inside the FunctionCallNode nullcheck
#tests none
Change 4086155 by jonathan.lindquist
Updating meta data etc.
Change 4086965 by Olaf.Piesche
Fixing uniform buffer alignment and padding to 16 bytes for all vector types; bumping vec2 and vec3 uniforms to vec4, and adding component mask to code chunk for accesses to uniform chunks according to their initial type
OpenGL requires this since because adherence to the std140 memory layout is shaky at best when it comes to sub-16-byte vector types
Change 4086968 by Olaf.Piesche
Making division by 0xFFFFFFFF explicitly unsigned, because OpenGL otherwise assumes it's a signed int, just dividing by -1
Change 4086975 by Frank.Fella
Niagara - Renderer update fixes.
+ Trigger data object changed when adding, removing, and changing the enabled state of renderers so that the simulation updates.
+ Fix undo for changing the enabled state on renderers.
#jira UE-57696
#jira UE-59390
Change 4087008 by Frank.Fella
Niagara - When refreshing the sequencer tracks in the emitter/system editor don't set sequencer the time to 0. This fixes an issue where modifying data in the timeline and undo would reset the time to 0 when paused rather than resimulating.
#jira UE-59463
Change 4087030 by Shaun.Kime
Fixing when you can create certain pin types to prevent invalid types from appearing in the list.
#tests autotests pass on PC
Change 4087271 by jonathan.lindquist
Adding an option to clamp particles.velocity's magnitude.
Change 4087279 by Wyeth.Johnson
Comments and dependencies
Change 4087333 by Wyeth.Johnson
Bitmask useage flags on forces to adhere to standards, plus dependencies
Change 4087636 by Wyeth.Johnson
Age related dependencies on update modules
Change 4087702 by Shaun.Kime
Getting translation set up for Frank's rapid iteration parameter rework in support for default dynamic inputs
#tests n/a
Change 4087992 by jonathan.lindquist
Adding a limit force module
Change 4088872 by Yannick.Lange
Fix renaming variables will not work if the user is only changing capitalization.
#jira UE-59119
Change 4088891 by Yannick.Lange
Fix adding a new attribute makes it hidden in the attribute spreadsheet. Now shows the added attribute when doing a new capture.
#jira UE-57167
Change 4089072 by Yannick.Lange
Reorder parameter list categories
Change 4089164 by jonathan.lindquist
Adding a velocity clamp feature and an acceleration clamp
Change 4089953 by Bradut.Palas
Disabled modules no longer display errors.
Also, enabling/disabling modules is now registered with the Undo system
Also fixed the GUID generation for all issues, now issues are properly differentiated from each other on refresh.
#tests none
Change 4090194 by Shaun.Kime
Fixing auto tests after acceleration force defaulted to world instead of local
#tests all pass
Change 4090195 by Shaun.Kime
Cleaning up UI for code view
#tests n/a
Change 4090198 by jonathan.lindquist
Setting the fallback vector to 0,0,0
Change 4090430 by jonathan.lindquist
Removing a reciprocal operation from the node. Now we use a single divide. Also, I added another length calculation to provide the proper length of the input fallback vector. This is important for cases in which the user specifies that the fallback vector should be 0,0,0 or another unnormalized value. Previously, the fallback vector length always returned 1.
Change 4090512 by Shaun.Kime
Fix for crash during Jonathan's deletion of the Set node in SolveForcesInVelocity.
#tests n/a
Change 4090534 by jonathan.lindquist
New acceleration limit
Change 4090676 by Olaf.Piesche
GPU Spawning auto test
Change 4090770 by Shaun.Kime
Curl noise bug test case
Change 4090796 by Olaf.Piesche
Added missing abs for GPU sim
Change 4091368 by Bradut.Palas
Also removing issues from disabled input collections and renderer items
#tests none
Change 4091417 by Simon.Tovey
Making emitter local space a constant embeded directly into emitter and particle scripts.
Allows a lot of optimization and exposes the value to emitter scripts properly.
Change 4091727 by jonathan.lindquist
Exposing delta time as an advanced input and organizing the graph
Change 4091788 by Bradut.Palas
#jira UE-54678 fIxing issues with refresh of skeletal mesh details
#tests none
Change 4092040 by Frank.Fella
Niagara - Fix some issues with modify, transactions, and change ids which was causing assets to be dirty or modified on load, or were allowing internal operation to be undone.
+ Move some transactions from public utility functions into private functions called by menu items in the UNiagaraNodeWithDynamicPins.
+ Prevent a few modify calls in UNiagaraEmitter from marking the package dirty since they're sometimes called as a result of compiling and in the other cases earlier modifies would have already marked the package dirty.
+ In the system view model, don't create transactions when adding an emitter if the system view model is in emitter asset mode since the user should be able to undo it.
+ In the system toolkit when opening an emitter asset initialize, clean up, and propagate the rapid iteration parameters before copying the emitter to prevent the change ids from getting out of sync after the compile completes.
+ In the system toolkit when trying to see if an emitter has changed using the change ids, use the last synced id from the copied emitter instead of the original emitter since duplicating the emitter can change the id, and there's not way to set it externally.
#jira UE-59517
#jira UE-59566
Change 4092700 by jonathan.lindquist
Removed param groups. We're now using inline bools to enable or disable limits on velocity and acceleration
Change 4093032 by Shaun.Kime
Fixing display of errors
#tests now errors in compilation properly display
Change 4093172 by Shaun.Kime
Curl noise cpu/gpu test map
#tests added last known good
Change 4094156 by Damien.Pernuit
Fixed crash in the editor when opening a Niagara Emitter/Script containing outdated script functions.
Fixed incorrect type cast, FNiagaraFloat instead of FNiagaraInt32.
Change 4094515 by Tim.Gautier
Enabled Niagara + Niagara Extras in QAGame
Change 4094674 by jonathan.lindquist
submitting an example of variable defaults not working as intended
Change 4094712 by Damien.Pernuit
Niagara - Houdini:
Houdini Niagara Data Interface:
- Removed the GetCSVFloatValueByString function as String aren't currently supported by Niagara.
- Particles in the CSV file can now be updated over time (not just spawned)
- Added GetParticlePositionAtTime, GetParticleValueAtTime, GetParticleVectorValueAtTime returning a linearly interpolated value for a given particle at a given time.
- Added GetParticleIndexesAtTime for getting the previous/next row indexes and weight to access the values for a given particle at a given time and handle the interpolation of the values.
- Added GetCSVVectorValue for accessing a Vector value at a given row/col.
Houdini CSV Assets now looks for the following attributes in the CSV "Title" line:
- pos for position.
- id and # for particle ID.
- alive and life for calculating a particles LifeTime.
Change 4094932 by Frank.Fella
Niagara - Fix a few more issues where asset editors would open with their assets modified.
+ Fix rapid iteration parameter preparation so that it doesn't modify the parameter store if it doesn't change after syncing with the graphs and propagating from dependencies. This fixes the emitter editor allowing changes to be applied on open.
+ Refactor the change notification for the script tool kit so that it uses the graph change and property change messages to determine if any changes have been made and can be applied.
#jira UE-59517
#tests auto tests
Change 4094978 by Damien.Pernuit
Niagara - Houdini:
Houdini Niagara Data Interface:
- Since we can now update particles over time, renamed/modified most of the functions to make a clear distinction between row indexes (row) and particle ids (N)
- Replaced GetNumberOfPointsInCSV by GetNumberOfRowsInCSV and GetNumberOfParticlesInCSV
- Renamed GetParticleIndexesAtTime to GetRowIndexesForParticleAtTime and GetLastParticleIndexAtTime to GetLastRowIndexAtTime
- Fixed some DI Functions that were using floats for input parameter instead of using integers.
Change 4095428 by Damien.Pernuit
Niagara - Houdini:
Houdini Niagara Data Interface:
Fixed incorrect behavior of the GetLastRowIndexAtTime and GetParticleIndexesToSpawnAtTime functions due to supporting particle update over time.
Houdini CSV Asset:
Fixed missing UPropery for SpawnTimes and LifeValues array.
Change 4096355 by Damien.Pernuit
Houdini Niagara:
Fixed performance warning for UHoudiniCSV::GetParticleLifeAtTime()
Change 4096419 by Damien.Pernuit
Niagara - Houdini:
Houdini Niagara Data Interface:
Added GetParticleLifeAtTime for accessing a given particle's life at a given time value.
Fixed GetParticleVectorValueAtTime not bound properly.
Fixed GetRowIndexesForParticleAtTime returning incorrect values when the time value was past the particle's last update.
Change 4096466 by Damien.Pernuit
Niagara - Houdini:
- Added GetNumberOfColumnsInCSV to the Houdini Data Interface
- Added descriptions to the functions exposed by the DI
Change 4096528 by Damien.Pernuit
Niagara - Houdini:
Houdini CSV Asset:
- As the DI expects the values to be sorted by time, if it's not the case, the CSV importer will sort them on import.
- As the DI spawning functions relies on the particle IDs starting at zero and increment, the CSV importer will fix the particles IDs on import if it's not the case.
Change 4096838 by Yannick.Lange
Fix focus search box on add parameter menu
#jira UE-59502
Change 4097205 by Bradut.Palas
Fixes for metadata details in script toolkit (now the apply and compile buttons refresh and sort the metadata collection). The metadata functionality is fixed. Delete, add and modify work just as before, but the sorting isn't applied because refreshing the whole collection is skipped for internal changes.
#jira UE-58745
#jira UE-59589
#tests none
Change 4097593 by Shaun.Kime
Now generating compiler debug info for VM shaders just like the rest of Materials using the r.DumpShaderDebugInfo
#tests now properly generate data in a VM folder sibling to other generated debug shader data
Change 4097721 by Frank.Fella
Niagara - Make the lifetime of stack entries well defined so that we can safely remove delegate bindings and clear out pointers.
Change 4097962 by Bradut.Palas
Stack issues now update fix delegates on each refresh, even if the fix GUIDs don't change, to account for other possible changes in the graph. Had to introduce unique identifiers for fixes too, now the issue entry is using the same recycle mechanism for fixes that the base stack entry uses for issues.
#tests none
Change 4098063 by Frank.Fella
Niagara - Fix input initialization for drag/drop with a "Set Variables" node.
#jira UE-57699
Change 4098192 by Damien.Pernuit
Niagara - Houdini:
Houdini CSV Asset:
When importing the CSV file, the importer creates a list of the row indexes updating each particle.
This greatly improves performance when accessing data in large files with a lot of particles updating over time.
Change 4098406 by Damien.Pernuit
Niagara - Houdini:
Houdini Niagara Data Interface:
Added helper functions for accessing Color and Velocity values in the CSV file.
Houdini CSV Asset:
The importer now looks for the Color (Cd, color), Alpha (A, Alpha) and velocity (V) attributes.
Change 4099945 by Frank.Fella
Niagara - Fix op description tool tip and keyword searches in the graph add menu, fix and standardize tool tip handling for script objects in menus, and add support for keyword searches for user defined scripts to match the built in ops.
#jira UE-59402
Change 4100451 by Shaun.Kime
Fixing wyeth's torus error, which was caused by us not properly initializing defaults. We now initialize defaults in three waves in spawn scripts. Wave 1 are any straight up constants at the top of the spawn function. Wave 2 is inlined in spawn just before the function that needs them is called. Wave 3 is at the bottom of spawn in a section called HandleMissingDefaultValues.
Also updated the error and warning messages to be much clearer text.
#jira UE-59723, UE-59762
#tests auto-tests pass
Change 4100568 by Shaun.Kime
Removing the old compile debug file generation and now unified with the existing shader compiler workflow for the future.
If r.DumpShaderDebugInfo=1, make sure that we generate the assembly, ush, and params files in the Saved\ShaderDebugInfo\VM\<SYSTEM_NAME>\<EMITTER_NAME>\<SCRIPT_NAME_AND_USAGE_ID_IF_NONZERO>
#jira UE-59767
#tests auto-tests pass
Change 4100913 by jonathan.lindquist
changing the pin order
Change 4100932 by jonathan.lindquist
setting the input pin order on a, b and alpha
Change 4101546 by jonathan.lindquist
Submitting a dynamic input that returns the exec index as an int
Change 4101734 by Shaun.Kime
Fixing static analysis errors
#tests n/a
Change 4101736 by Shaun.Kime
Creating new last known good for GPU Functional Test auto-test
#tests n/a
Change 4102305 by Simon.Tovey
Fix for VM Crash
#codereivew Frank.Fella, Shaun.Kime, Olaf.Piesche
Change 4102552 by Yannick.Lange
Tooltip variable types
#jira UE-59520
Change 4102599 by Yannick.Lange
New variables in maps or parameter view will get the name Namespace.NewVariable. This is not an actual fix for UE-59633, but gives the user the incentive to rename variables.
#codereveiw Shaun.Kime
Change 4102752 by Yannick.Lange
Fix auto expanding all the sections for the niagara parameters list view.
#jira UE-59121
Change 4102779 by Yannick.Lange
Fix auto expanding all the sections for the niagara parameters list view. Fix incorrect comment changelist: 4102752
#jira UE-59121
Change 4103419 by Shaun.Kime
Fixing build issues
#tests n/a
Change 4103522 by Damien.Pernuit
Houdini - Niagara:
Big renaming pass on the Houdini CSV Assets and Data Interface to follow naming conventions:
Replaced the GetCSVXXX functions by GetXXXX (GetCSVPosition is now GetPosition)
Always use "row" instead of "line", "Point" instead of "Particle", "PointID" instead of "N" or "ID" etc.
Houdini Data Interface:
- Added the GetVectorValueEx and GetPointVectorValueAtTimeEx functions that allow the user to decide how the vector conversion from houdini to unreal's coordinate system is handled.
- Replaced the GetParticleLifeAtTime function by GetPointLife, that returns the life of a particle at spawn time.
- Added the GetPointType function returning the type of a given point.
Houdini CSV Asset:
- Added the editable SourceTitleRow UProperty.
Editing this will trigger a reimport of the source CSV file and might be used to fix/modify column titles in the file.
- Added support for "type" attributes.
- Removed the unused StringValues buffer and GetCSVStringValues() functions.
- Added assetTags so the Houdini CSV asset thumbnails show more infos on the CSV data.
- Added the "FindSourceCSV" asset action to browse to the source CSV file.
Change 4104008 by Shaun.Kime
Missing header in Monolithic builds
Fixed indent issues, was using spaces vs tabs
#jira UE-59705
Change 4105249 by Simon.Tovey
Fixes in VMM backend and propagation visitors to ensure proper optimization for VM external function calls.
also adding a visitor to strip empty stats scopes.
Change 4105250 by Simon.Tovey
Updated windows binaries for hlslcc
Change 4105283 by Yannick.Lange
Fix creating an input parameter node from an input pin.
#jira UE-57362
Change 4105509 by Yannick.Lange
Fix being able to drop parameters in the system view on incorrect execution categories.
Change 4105726 by Wyeth.Johnson
Fix detection of valid toolchain directories with Visual Studio 2017 desktop (change by Ben.Marsh)
Change 4105727 by Shaun.Kime
Fixing nightly build due to missing GetAssetTags definition due to mismatches in WITH_EDITORONLY_DATA
#tests n/a
Change 4106034 by Damien.Pernuit
Houdini-Niagara:
Houdini CSV Asset:
- Fixed build break due to GetAssetRegistryTags()
- Replaced the different hardcoded ColumnIndexes member variables by an array.
Change 4106254 by Frank.Fella
Niagara - Fix playback issues where completed systems wouldn't simulate again until you pressed play.
#jira UE-58616
#jira UE-58721
Change 4106617 by Frank.Fella
Niagara - Prevent crash on shutdown.
#jira UE-59516
Change 4106623 by Frank.Fella
Niagara - Fix static analysis warning for posible null dereference in UNiagaraScriptItemGroup
Change 4106983 by Shaun.Kime
Fix to prevent PS4 compiler warning during cook on ambiguous uses of AtomicAdd.
#tests doesn't cause cook errors now
Change 4106988 by Shaun.Kime
Resaved test assets with latest non-zero version
#tests cooking no longer complains about file versions
Change 4106992 by Shaun.Kime
Now when errors appear in a cook for Niagara GPU shaders, we see them in the same location as the cook log
#tests n/a
Change 4108852 by Simon.Tovey
Fix for transforms in emitter scripts.
Param->Dataset bindings weren't handling structs correctly.
Change 4109260 by Wyeth.Johnson
Normalize Vector dynamic input
Change 4109748 by Marcus.Wassmer
olaf.piesche: Fresh build of hlslcc for Mac
Change 4110624 by Rolando.Caloca
-fresh build of hlslcc for Linux
-fixed a warning in NiagaraStackModuleItem.cpp
Change 4111103 by Shaun.Kime
Fixing nightly build issues with redundant left and right side of &&
CI Issue:
d:\build\++ue4+dev-niagara+compile\sync\engine\plugins\fx\niagara\source\niagaraeditor\private\viewmodels\niagarasystemviewmodel.cpp(1425): warning V501: There are identical sub-expressions 'bStartedPlaying == false' to the left and to the right of the '&&' operator.
#tests auto-tests pass
Change 4111104 by Shaun.Kime
Fix for CI issue:
d:\build\++ue4+dev-niagara+compile\sync\engine\plugins\fx\niagara\source\niagaraeditor\private\viewmodels\stack\niagarastackscriptitemgroup.cpp(553): warning V595: The 'SourceModuleItem' pointer was utilized before it was verified against nullptr. Check lines: 553, 554.
#tests auto-tests pass
#ROBOMERGE-SOURCE: CL 4113881 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
[CL 4114750 by shaun kime in Staging-4.20 branch]
2018-06-05 20:16:37 -04:00
if ( A - > SectionID ! = B - > SectionID )
{
return false ;
}
2014-09-05 17:51:16 -04:00
if ( A - > HasValidAction ( ) & & B - > HasValidAction ( ) )
2014-03-14 14:13:41 -04:00
{
2015-08-19 16:36:07 -04:00
return A - > GetPrimaryAction ( ) - > GetMenuDescription ( ) . CompareTo ( B - > GetPrimaryAction ( ) - > GetMenuDescription ( ) ) = = 0 ;
2014-03-14 14:13:41 -04:00
}
2014-09-05 17:51:16 -04:00
else if ( ! A - > HasValidAction ( ) & & ! B - > HasValidAction ( ) )
2014-03-14 14:13:41 -04:00
{
return true ;
}
else
{
return false ;
}
}
template < typename ItemType , typename ComparisonType >
void RestoreExpansionState ( TSharedPtr < STreeView < ItemType > > InTree , const TArray < ItemType > & ItemSource , const TSet < ItemType > & OldExpansionState , ComparisonType ComparisonFunction )
{
check ( InTree . IsValid ( ) ) ;
// Iterate over new tree items
for ( int32 ItemIdx = 0 ; ItemIdx < ItemSource . Num ( ) ; ItemIdx + + )
{
ItemType NewItem = ItemSource [ ItemIdx ] ;
// Look through old expansion state
for ( typename TSet < ItemType > : : TConstIterator OldExpansionIter ( OldExpansionState ) ; OldExpansionIter ; + + OldExpansionIter )
{
const ItemType OldItem = * OldExpansionIter ;
// See if this matches this new item
if ( ComparisonFunction ( OldItem , NewItem ) )
{
// It does, so expand it
InTree - > SetItemExpansion ( NewItem , true ) ;
}
}
}
}
2023-03-21 19:49:22 -04:00
void SGraphActionMenu : : UpdateForNewActions ( int32 IdxStart )
{
check ( bAlphaSortItems & & bSortItemsRecursively ) ;
2024-04-03 20:04:53 -04:00
ScoreAndAddActions ( IdxStart ) ;
MarkActiveSuggestion ( ) ;
2023-03-21 19:49:22 -04:00
if ( ShouldExpandNodes ( ) )
{
// Expand all
FilteredRootAction - > ExpandAllChildren ( TreeView ) ;
}
TreeView - > RequestTreeRefresh ( ) ;
}
2014-03-14 14:13:41 -04:00
void SGraphActionMenu : : GenerateFilteredItems ( bool bPreserveExpansion )
{
2022-07-01 14:16:41 -04:00
TRACE_CPUPROFILER_EVENT_SCOPE ( SGraphActionMenu : : GenerateFilteredItems ) ;
2023-03-21 19:49:22 -04:00
SelectedSuggestionScore = TNumericLimits < float > : : Lowest ( ) ;
SelectedSuggestionSourceIndex = INDEX_NONE ;
2024-04-03 20:04:53 -04:00
SelectedAction = TSharedPtr < FGraphActionNode > ( ) ;
2023-03-21 19:49:22 -04:00
2014-03-14 14:13:41 -04:00
// First, save off current expansion state
TSet < TSharedPtr < FGraphActionNode > > OldExpansionState ;
if ( bPreserveExpansion )
{
TreeView - > GetExpandedItems ( OldExpansionState ) ;
}
// Clear the filtered root action
FilteredRootAction - > ClearChildren ( ) ;
2015-01-26 17:51:00 -05:00
// Collect the list of always visible sections if any, and force the creation of those sections.
if ( OnCollectStaticSections . IsBound ( ) )
{
TArray < int32 > StaticSectionIDs ;
OnCollectStaticSections . Execute ( StaticSectionIDs ) ;
for ( int32 i = 0 ; i < StaticSectionIDs . Num ( ) ; i + + )
{
FilteredRootAction - > AddSection ( 0 , StaticSectionIDs [ i ] ) ;
}
}
2024-04-03 20:04:53 -04:00
ScoreAndAddActions ( ) ;
2014-03-14 14:13:41 -04:00
2021-06-23 17:51:32 -04:00
FilteredRootAction - > SortChildren ( bAlphaSortItems , bSortItemsRecursively ) ;
2014-03-14 14:13:41 -04:00
TreeView - > RequestTreeRefresh ( ) ;
2024-04-03 20:04:53 -04:00
MarkActiveSuggestion ( ) ;
2014-03-14 14:13:41 -04:00
if ( ShouldExpandNodes ( ) )
{
// Expand all
FilteredRootAction - > ExpandAllChildren ( TreeView ) ;
}
else
{
2023-03-21 19:49:22 -04:00
// Get _all_ new nodes (flattened tree basically)
TArray < TSharedPtr < FGraphActionNode > > AllNodes ;
FilteredRootAction - > GetAllNodes ( AllNodes ) ;
2014-03-14 14:13:41 -04:00
// Expand to match the old state
RestoreExpansionState < TSharedPtr < FGraphActionNode > > ( TreeView , AllNodes , OldExpansionState , CompareGraphActionNode ) ;
}
}
// Returns true if the tree should be autoexpanded
bool SGraphActionMenu : : ShouldExpandNodes ( ) const
{
// Expand all the categories that have filter results, or when there are only a few to show
const bool bFilterActive = ! GetFilterText ( ) . IsEmpty ( ) ;
2023-01-12 18:36:13 -05:00
const bool bOnlyAFewTotal = AllActions - > GetNumActions ( ) < 10 ;
2014-03-14 14:13:41 -04:00
return bFilterActive | | bOnlyAFewTotal | | bAutoExpandActionMenu ;
}
bool SGraphActionMenu : : CanRenameNode ( TWeakPtr < FGraphActionNode > InNode ) const
{
2024-06-26 17:51:20 -04:00
if ( OnCanRenameSelectedAction . IsBound ( ) )
{
return OnCanRenameSelectedAction . Execute ( InNode ) ;
}
return false ;
2014-03-14 14:13:41 -04:00
}
void SGraphActionMenu : : OnFilterTextChanged ( const FText & InFilterText )
{
GenerateFilteredItems ( false ) ;
}
void SGraphActionMenu : : OnFilterTextCommitted ( const FText & InText , ETextCommit : : Type CommitInfo )
{
if ( CommitInfo = = ETextCommit : : OnEnter )
{
TryToSpawnActiveSuggestion ( ) ;
}
}
bool SGraphActionMenu : : TryToSpawnActiveSuggestion ( )
{
TArray < TSharedPtr < FGraphActionNode > > SelectionList = TreeView - > GetSelectedItems ( ) ;
if ( SelectionList . Num ( ) = = 1 )
{
// This isnt really a keypress - its Direct, but its always called from a keypress function. (Maybe pass the selectinfo in ?)
OnItemSelected ( SelectionList [ 0 ] , ESelectInfo : : OnKeyPress ) ;
return true ;
}
2024-04-03 20:04:53 -04:00
else if ( GetTotalLeafNodes ( ) = = 1 )
2014-03-14 14:13:41 -04:00
{
2024-04-03 20:04:53 -04:00
OnItemSelected ( GetFirstAction ( ) , ESelectInfo : : OnKeyPress ) ;
2014-03-14 14:13:41 -04:00
return true ;
}
return false ;
}
void SGraphActionMenu : : OnGetChildrenForCategory ( TSharedPtr < FGraphActionNode > InItem , TArray < TSharedPtr < FGraphActionNode > > & OutChildren )
{
if ( InItem - > Children . Num ( ) )
{
OutChildren = InItem - > Children ;
}
}
void SGraphActionMenu : : OnNameTextCommitted ( const FText & NewText , ETextCommit : : Type InTextCommit , TWeakPtr < FGraphActionNode > InAction )
{
if ( OnCategoryTextCommitted . IsBound ( ) )
{
OnCategoryTextCommitted . Execute ( NewText , InTextCommit , InAction ) ;
}
}
void SGraphActionMenu : : OnItemScrolledIntoView ( TSharedPtr < FGraphActionNode > InActionNode , const TSharedPtr < ITableRow > & InWidget )
{
2014-09-05 17:51:16 -04:00
if ( InActionNode - > IsRenameRequestPending ( ) )
2014-03-14 14:13:41 -04:00
{
InActionNode - > BroadcastRenameRequest ( ) ;
}
}
TSharedRef < ITableRow > SGraphActionMenu : : MakeWidget ( TSharedPtr < FGraphActionNode > InItem , const TSharedRef < STableViewBase > & OwnerTable , bool bIsReadOnly )
{
2015-01-26 17:51:00 -05:00
TSharedPtr < IToolTip > SectionToolTip ;
if ( InItem - > IsSectionHeadingNode ( ) )
{
if ( OnGetSectionToolTip . IsBound ( ) )
{
SectionToolTip = OnGetSectionToolTip . Execute ( InItem - > SectionID ) ;
}
}
2014-03-14 14:13:41 -04:00
// In the case of FGraphActionNodes that have multiple actions, all of the actions will
// have the same text as they will have been created at the same point - only the actual
// action itself will differ, which is why parts of this function only refer to InItem->Actions[0]
// rather than iterating over the array
// Create the widget but do not add any content, the widget is needed to pass the IsSelectedExclusively function down to the potential SInlineEditableTextBlock widget
2015-01-26 17:51:00 -05:00
TSharedPtr < STableRow < TSharedPtr < FGraphActionNode > > > TableRow ;
if ( InItem - > IsSectionHeadingNode ( ) )
{
TableRow = SNew ( SCategoryHeaderTableRow < TSharedPtr < FGraphActionNode > > , OwnerTable )
. ToolTip ( SectionToolTip ) ;
}
else
{
TableRow = SNew ( STableRow < TSharedPtr < FGraphActionNode > > , OwnerTable )
. OnDragDetected ( this , & SGraphActionMenu : : OnItemDragDetected )
2021-06-23 17:51:32 -04:00
. ShowSelection ( ! InItem - > IsSeparator ( ) )
. bAllowPreselectedItemActivation ( bAllowPreselectedItemActivation ) ;
2015-01-26 17:51:00 -05:00
}
TSharedPtr < SHorizontalBox > RowContainer ;
2015-06-17 16:02:37 -04:00
TableRow - > SetRowContent
2015-01-26 17:51:00 -05:00
(
SAssignNew ( RowContainer , SHorizontalBox )
) ;
2014-03-14 14:13:41 -04:00
TSharedPtr < SWidget > RowContent ;
2015-01-26 17:51:00 -05:00
FMargin RowPadding = FMargin ( 0 , 2 ) ;
2014-03-14 14:13:41 -04:00
if ( InItem - > IsActionNode ( ) )
{
2014-09-05 17:51:16 -04:00
check ( InItem - > HasValidAction ( ) ) ;
2014-03-14 14:13:41 -04:00
FCreateWidgetForActionData CreateData ( & InItem - > OnRenameRequest ( ) ) ;
2014-09-05 17:51:16 -04:00
CreateData . Action = InItem - > GetPrimaryAction ( ) ;
2014-03-14 14:13:41 -04:00
CreateData . HighlightText = TAttribute < FText > ( this , & SGraphActionMenu : : GetFilterText ) ;
CreateData . MouseButtonDownDelegate = FCreateWidgetMouseButtonDown : : CreateSP ( this , & SGraphActionMenu : : OnMouseButtonDownEvent ) ;
if ( OnCreateWidgetForAction . IsBound ( ) )
{
2015-02-09 11:38:25 -05:00
CreateData . IsRowSelectedDelegate = FIsSelected : : CreateSP ( TableRow . Get ( ) , & STableRow < TSharedPtr < FGraphActionNode > > : : IsSelected ) ;
2014-03-14 14:13:41 -04:00
CreateData . bIsReadOnly = bIsReadOnly ;
CreateData . bHandleMouseButtonDown = false ; //Default to NOT using the delegate. OnCreateWidgetForAction can set to true if we need it
RowContent = OnCreateWidgetForAction . Execute ( & CreateData ) ;
}
else
{
RowContent = SNew ( SDefaultGraphActionWidget , & CreateData ) ;
}
}
else if ( InItem - > IsCategoryNode ( ) )
{
TWeakPtr < FGraphActionNode > WeakItem = InItem ;
// Hook up the delegate for verifying the category action is read only or not
SGraphActionCategoryWidget : : FArguments ReadOnlyArgument ;
if ( bIsReadOnly )
{
ReadOnlyArgument . IsReadOnly ( bIsReadOnly ) ;
}
else
{
2024-06-26 17:51:20 -04:00
ReadOnlyArgument . IsReadOnly_Lambda ( [ WeakThis = this - > AsWeak ( ) , WeakItem ]
{
const TSharedPtr AsSharedWidget = WeakThis . Pin ( ) ;
if ( const SGraphActionMenu * Menu = static_cast < SGraphActionMenu * > ( AsSharedWidget . Get ( ) ) )
{
return ! Menu - > CanRenameNode ( WeakItem ) ;
}
return true ;
} ) ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
TSharedRef < SGraphActionCategoryWidget > CategoryWidget =
2014-03-14 14:13:41 -04:00
SNew ( SGraphActionCategoryWidget , InItem )
. HighlightText ( this , & SGraphActionMenu : : GetFilterText )
. OnTextCommitted ( this , & SGraphActionMenu : : OnNameTextCommitted , TWeakPtr < FGraphActionNode > ( InItem ) )
. IsSelected ( TableRow . Get ( ) , & STableRow < TSharedPtr < FGraphActionNode > > : : IsSelectedExclusively )
. IsReadOnly ( ReadOnlyArgument . _IsReadOnly ) ;
if ( ! bIsReadOnly )
{
InItem - > OnRenameRequest ( ) . BindSP ( CategoryWidget - > InlineWidget . Pin ( ) . Get ( ) , & SInlineEditableTextBlock : : EnterEditingMode ) ;
}
RowContent = CategoryWidget ;
}
else if ( InItem - > IsSeparator ( ) )
{
2015-01-26 17:51:00 -05:00
RowPadding = FMargin ( 0 ) ;
2014-03-14 14:13:41 -04:00
FText SectionTitle ;
if ( OnGetSectionTitle . IsBound ( ) )
{
SectionTitle = OnGetSectionTitle . Execute ( InItem - > SectionID ) ;
}
2015-01-26 17:51:00 -05:00
if ( SectionTitle . IsEmpty ( ) )
2014-03-14 14:13:41 -04:00
{
RowContent = SNew ( SVerticalBox )
. Visibility ( EVisibility : : HitTestInvisible )
2015-01-26 17:51:00 -05:00
+ SVerticalBox : : Slot ( )
2021-02-22 15:56:04 -04:00
. VAlign ( VAlign_Center )
2014-03-14 14:13:41 -04:00
// Add some empty space before the line, and a tiny bit after it
2021-02-22 15:56:04 -04:00
. Padding ( 0.0f , 1.f , 0.0f , 1.f )
2014-03-14 14:13:41 -04:00
[
2021-02-22 15:56:04 -04:00
SNew ( SSeparator )
2022-05-09 13:12:28 -04:00
. SeparatorImage ( FAppStyle : : Get ( ) . GetBrush ( " Menu.Separator " ) )
2021-02-22 15:56:04 -04:00
. Thickness ( 1.0f )
2015-01-26 17:51:00 -05:00
] ;
}
else
{
RowContent = SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. VAlign ( VAlign_Center )
[
2015-02-17 08:48:35 -05:00
SNew ( SRichTextBlock )
2015-01-26 17:51:00 -05:00
. Text ( SectionTitle )
2020-09-09 10:51:17 -04:00
. TransformPolicy ( ETextTransformPolicy : : ToUpper )
2022-05-09 13:12:28 -04:00
. DecoratorStyleSet ( & FAppStyle : : Get ( ) )
2020-09-09 10:51:17 -04:00
. TextStyle ( FAppStyle : : Get ( ) , " DetailsView.CategoryTextStyle " )
2015-01-26 17:51:00 -05:00
]
+ SHorizontalBox : : Slot ( )
2015-01-26 20:23:26 -05:00
. AutoWidth ( )
2015-01-26 17:51:00 -05:00
. VAlign ( VAlign_Center )
. HAlign ( HAlign_Right )
. Padding ( FMargin ( 0 , 0 , 2 , 0 ) )
[
OnGetSectionWidget . IsBound ( ) ? OnGetSectionWidget . Execute ( TableRow . ToSharedRef ( ) , InItem - > SectionID ) : SNullWidget : : NullWidget
] ;
2014-03-14 14:13:41 -04:00
}
}
TSharedPtr < SExpanderArrow > ExpanderWidget ;
if ( OnCreateCustomRowExpander . IsBound ( ) )
{
FCustomExpanderData CreateData ;
CreateData . TableRow = TableRow ;
CreateData . WidgetContainer = RowContainer ;
if ( InItem - > IsActionNode ( ) )
{
2014-09-05 17:51:16 -04:00
check ( InItem - > HasValidAction ( ) ) ;
CreateData . RowAction = InItem - > GetPrimaryAction ( ) ;
2014-03-14 14:13:41 -04:00
}
ExpanderWidget = OnCreateCustomRowExpander . Execute ( CreateData ) ;
}
else
{
2015-01-26 17:51:00 -05:00
ExpanderWidget =
SNew ( SExpanderArrow , TableRow )
Fix BT decorator and service lists (and also some custom licensee graph implementations) put the first and second level category on the same level.
A very long time ago CL 2411381 introduced a change to make the default Base Indent Level of all Graph Action Menus "1", basically meaning that both "0" and "1" indent levels would be placed at the root of the menu. Presumably they've needed it, because in BPs, categories on the left side are custom headers, and they didn't want the children (functions, variables, etc) to have an extra indent.
However, they've made this change globally, basically breaking Graph Action Menus that didn't have category customization and needed the first level to be indented under the root level.
Some systems have overcome this by defining a custom expander with a Base Indent Level of 0 - getting back the original, expected behavior. That was however just hiding the underlying issue.
This change reverts back the Base Indent Level to 0, and sets it to 1 instead only for those menus, which have a customized category header. This should fix all graph menus where the second category level was not indented (i.e. BT Action Menu and Decorator Context Menu).
#rb aditya.ravichandran
#jira none
#ushell-cherrypick of 29515770 by kristof.morva1
[CL 29530311 by ben hoffman in ue5-main branch]
2023-11-07 15:20:10 -05:00
. BaseIndentLevel ( DefaultRowExpanderBaseIndentLevel ) ;
2014-03-14 14:13:41 -04:00
}
RowContainer - > AddSlot ( )
. AutoWidth ( )
. VAlign ( VAlign_Fill )
. HAlign ( HAlign_Right )
[
ExpanderWidget . ToSharedRef ( )
] ;
RowContainer - > AddSlot ( )
2015-01-26 17:51:00 -05:00
. FillWidth ( 1.0 )
. Padding ( RowPadding )
2014-03-14 14:13:41 -04:00
[
RowContent . ToSharedRef ( )
] ;
return TableRow . ToSharedRef ( ) ;
}
FText SGraphActionMenu : : GetFilterText ( ) const
{
// If there is an external source for the filter, use that text instead
if ( OnGetFilterText . IsBound ( ) )
{
return OnGetFilterText . Execute ( ) ;
}
2019-07-17 17:17:45 -04:00
return FilterTextBox - > GetText ( ) ;
2014-03-14 14:13:41 -04:00
}
void SGraphActionMenu : : OnItemSelected ( TSharedPtr < FGraphActionNode > InSelectedItem , ESelectInfo : : Type SelectInfo )
{
if ( ! bIgnoreUIUpdate )
{
2015-03-27 11:43:37 -04:00
HandleSelection ( InSelectedItem , SelectInfo ) ;
2014-03-14 14:13:41 -04:00
}
}
void SGraphActionMenu : : OnItemDoubleClicked ( TSharedPtr < FGraphActionNode > InClickedItem )
{
if ( InClickedItem . IsValid ( ) & & ! bIgnoreUIUpdate )
{
if ( InClickedItem - > IsActionNode ( ) )
{
2024-04-19 19:47:31 -04:00
OnActionDoubleClicked . ExecuteIfBound ( { InClickedItem - > Action } ) ;
2014-03-14 14:13:41 -04:00
}
else if ( InClickedItem - > Children . Num ( ) )
{
TreeView - > SetItemExpansion ( InClickedItem , ! TreeView - > IsItemExpanded ( InClickedItem ) ) ;
}
}
}
FReply SGraphActionMenu : : OnItemDragDetected ( const FGeometry & MyGeometry , const FPointerEvent & MouseEvent )
{
// Start a function-call drag event for any entry that can be called by kismet
if ( MouseEvent . IsMouseButtonDown ( EKeys : : LeftMouseButton ) )
{
TArray < TSharedPtr < FGraphActionNode > > SelectedNodes = TreeView - > GetSelectedItems ( ) ;
if ( SelectedNodes . Num ( ) > 0 )
{
TSharedPtr < FGraphActionNode > Node = SelectedNodes [ 0 ] ;
// Dragging a ctaegory
if ( Node . IsValid ( ) & & Node - > IsCategoryNode ( ) )
{
if ( OnCategoryDragged . IsBound ( ) )
{
2014-09-05 17:51:16 -04:00
return OnCategoryDragged . Execute ( Node - > GetCategoryPath ( ) , MouseEvent ) ;
2014-03-14 14:13:41 -04:00
}
}
// Dragging an action
else
{
if ( OnActionDragged . IsBound ( ) )
{
TArray < TSharedPtr < FEdGraphSchemaAction > > Actions ;
GetSelectedActions ( Actions ) ;
return OnActionDragged . Execute ( Actions , MouseEvent ) ;
}
}
}
}
return FReply : : Unhandled ( ) ;
}
bool SGraphActionMenu : : OnMouseButtonDownEvent ( TWeakPtr < FEdGraphSchemaAction > InAction )
{
bool bResult = false ;
2024-09-16 20:03:07 -04:00
if ( ( ! bIgnoreUIUpdate ) & & InAction . IsValid ( ) & & OnActionSelected . IsBound ( ) )
2014-03-14 14:13:41 -04:00
{
2024-09-04 18:32:24 -04:00
OnActionSelected . Execute ( { InAction . Pin ( ) } , ESelectInfo : : OnMouseClick ) ;
bResult = true ;
2014-03-14 14:13:41 -04:00
}
return bResult ;
}
2014-10-30 12:29:36 -04:00
FReply SGraphActionMenu : : OnKeyDown ( const FGeometry & MyGeometry , const FKeyEvent & KeyEvent )
2014-03-14 14:13:41 -04:00
{
int32 SelectionDelta = 0 ;
2024-04-05 20:46:03 -04:00
bIsKeyboardNavigating = false ;
2014-03-14 14:13:41 -04:00
// Escape dismisses the menu without placing a node
2014-10-30 12:29:36 -04:00
if ( KeyEvent . GetKey ( ) = = EKeys : : Escape )
2014-03-14 14:13:41 -04:00
{
FSlateApplication : : Get ( ) . DismissAllMenus ( ) ;
return FReply : : Handled ( ) ;
}
2014-10-30 12:29:36 -04:00
else if ( ( KeyEvent . GetKey ( ) = = EKeys : : Enter ) & & ! bIgnoreUIUpdate )
2014-03-14 14:13:41 -04:00
{
return TryToSpawnActiveSuggestion ( ) ? FReply : : Handled ( ) : FReply : : Unhandled ( ) ;
}
2018-08-22 20:03:55 -04:00
else if ( ! FilterTextBox - > GetText ( ) . IsEmpty ( ) )
2014-03-14 14:13:41 -04:00
{
2018-08-22 20:03:55 -04:00
// Needs to be done here in order not to eat up the text navigation key events when list isn't populated
2024-04-03 20:04:53 -04:00
if ( GetTotalLeafNodes ( ) = = 0 )
2018-08-22 20:03:55 -04:00
{
return FReply : : Unhandled ( ) ;
}
2014-10-30 12:29:36 -04:00
if ( KeyEvent . GetKey ( ) = = EKeys : : Up )
2014-03-14 14:13:41 -04:00
{
2024-04-03 20:04:53 -04:00
SelectPreviousAction ( ) ;
2014-03-14 14:13:41 -04:00
}
2014-10-30 12:29:36 -04:00
else if ( KeyEvent . GetKey ( ) = = EKeys : : Down )
2014-03-14 14:13:41 -04:00
{
2024-04-03 20:04:53 -04:00
SelectNextAction ( ) ;
2014-03-14 14:13:41 -04:00
}
2018-12-10 19:16:09 -05:00
else if ( KeyEvent . GetKey ( ) = = EKeys : : PageUp )
2014-03-14 14:13:41 -04:00
{
2018-12-10 13:15:47 -05:00
const int32 NumItemsInAPage = 15 ; // arbitrary jump because we can't get at the visible item count from here
2024-04-03 20:04:53 -04:00
SelectPreviousAction ( NumItemsInAPage ) ;
2014-03-14 14:13:41 -04:00
}
2018-12-10 13:15:47 -05:00
else if ( KeyEvent . GetKey ( ) = = EKeys : : PageDown )
{
const int32 NumItemsInAPage = 15 ; // arbitrary jump because we can't get at the visible item count from here
2024-04-03 20:04:53 -04:00
SelectNextAction ( NumItemsInAPage ) ;
2018-12-10 13:15:47 -05:00
}
2019-01-18 12:31:49 -05:00
else if ( KeyEvent . GetKey ( ) = = EKeys : : Home & & KeyEvent . IsControlDown ( ) )
2018-12-10 13:15:47 -05:00
{
2024-04-03 20:04:53 -04:00
SelectFirstAction ( ) ;
2018-12-10 13:15:47 -05:00
}
2019-01-18 12:31:49 -05:00
else if ( KeyEvent . GetKey ( ) = = EKeys : : End & & KeyEvent . IsControlDown ( ) )
2018-12-10 13:15:47 -05:00
{
2024-04-03 20:04:53 -04:00
SelectLastAction ( ) ;
2018-12-10 13:15:47 -05:00
}
else
{
return FReply : : Unhandled ( ) ;
}
MarkActiveSuggestion ( ) ;
return FReply : : Handled ( ) ;
2014-03-14 14:13:41 -04:00
}
2015-06-04 10:34:10 -04:00
else
{
// When all else fails, it means we haven't filtered the list and we want to handle it as if we were just scrolling through a normal tree view
return TreeView - > OnKeyDown ( FindChildGeometry ( MyGeometry , TreeView . ToSharedRef ( ) ) , KeyEvent ) ;
}
2014-03-14 14:13:41 -04:00
return FReply : : Unhandled ( ) ;
}
void SGraphActionMenu : : MarkActiveSuggestion ( )
{
TGuardValue < bool > PreventSelectionFromTriggeringCommit ( bIgnoreUIUpdate , true ) ;
2024-04-03 20:04:53 -04:00
if ( SelectedAction . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2024-04-03 20:04:53 -04:00
TreeView - > SetSelection ( SelectedAction ) ;
2024-04-05 13:55:11 -04:00
int32 Idx = FilteredRootAction - > GetLinearizedIndex ( SelectedAction ) ;
2024-04-05 20:46:03 -04:00
TreeView - > SetScrollOffset ( FMath : : Max ( ( ( float ) Idx ) - ( float ) DisplayIndex , 0.f ) ) ;
2014-03-14 14:13:41 -04:00
}
else
{
TreeView - > ClearSelection ( ) ;
}
}
void SGraphActionMenu : : AddReferencedObjects ( FReferenceCollector & Collector )
{
2023-01-12 18:36:13 -05:00
for ( int32 CurTypeIndex = 0 ; CurTypeIndex < AllActions - > GetNumActions ( ) ; + + CurTypeIndex )
2014-03-14 14:13:41 -04:00
{
2024-04-19 19:47:31 -04:00
TSharedPtr < FEdGraphSchemaAction > Action = AllActions - > GetSchemaAction ( CurTypeIndex ) ;
Action - > AddReferencedObjects ( Collector ) ;
2014-03-14 14:13:41 -04:00
}
}
2019-03-25 14:40:23 -04:00
FString SGraphActionMenu : : GetReferencerName ( ) const
{
return TEXT ( " SGraphActionMenu " ) ;
}
2015-03-27 11:43:37 -04:00
bool SGraphActionMenu : : HandleSelection ( TSharedPtr < FGraphActionNode > & InSelectedItem , ESelectInfo : : Type InSelectionType )
2014-03-14 14:13:41 -04:00
{
bool bResult = false ;
if ( OnActionSelected . IsBound ( ) )
{
if ( InSelectedItem . IsValid ( ) & & InSelectedItem - > IsActionNode ( ) )
{
2024-04-19 19:47:31 -04:00
OnActionSelected . Execute ( { InSelectedItem - > Action } , InSelectionType ) ;
2014-03-14 14:13:41 -04:00
bResult = true ;
}
else
{
2015-03-27 11:43:37 -04:00
OnActionSelected . Execute ( TArray < TSharedPtr < FEdGraphSchemaAction > > ( ) , InSelectionType ) ;
2014-03-14 14:13:41 -04:00
bResult = true ;
}
}
return bResult ;
}
2016-01-25 13:25:51 -05:00
void SGraphActionMenu : : OnSetExpansionRecursive ( TSharedPtr < FGraphActionNode > InTreeNode , bool bInIsItemExpanded )
{
if ( InTreeNode . IsValid ( ) & & InTreeNode - > Children . Num ( ) )
{
TreeView - > SetItemExpansion ( InTreeNode , bInIsItemExpanded ) ;
for ( TSharedPtr < FGraphActionNode > Child : InTreeNode - > Children )
{
OnSetExpansionRecursive ( Child , bInIsItemExpanded ) ;
}
}
}
2024-04-03 20:04:53 -04:00
void SGraphActionMenu : : ScoreAndAddActions ( int32 StartingIndex )
2023-03-21 19:49:22 -04:00
{
// Trim and sanitized the filter text (so that it more likely matches the action descriptions)
FString TrimmedFilterString = FText : : TrimPrecedingAndTrailing ( GetFilterText ( ) ) . ToString ( ) ;
// Remember the last filter string to that external clients can access it
LastUsedFilterText = TrimmedFilterString ;
// Tokenize the search box text into a set of terms; all of them must be present to pass the filter
TArray < FString > FilterTerms ;
TrimmedFilterString . ParseIntoArray ( FilterTerms , TEXT ( " " ) , true ) ;
for ( FString & String : FilterTerms )
{
String = String . ToLower ( ) ;
}
// Generate a list of sanitized versions of the strings
TArray < FString > SanitizedFilterTerms ;
for ( int32 iFilters = 0 ; iFilters < FilterTerms . Num ( ) ; iFilters + + )
{
FString EachString = FName : : NameToDisplayString ( FilterTerms [ iFilters ] , false ) ;
EachString = EachString . Replace ( TEXT ( " " ) , TEXT ( " " ) ) ;
SanitizedFilterTerms . Add ( EachString ) ;
}
ensure ( SanitizedFilterTerms . Num ( ) = = FilterTerms . Num ( ) ) ; // Both of these should match !
2024-04-05 20:46:03 -04:00
const bool bRequiresFiltering = FilterTerms . Num ( ) > 0 & & ! bIsKeyboardNavigating ;
2023-03-21 19:49:22 -04:00
float BestMatchCount = SelectedSuggestionScore ;
int32 BestMatchIndex = SelectedSuggestionSourceIndex ;
// Get the schema of the graph that we are in so that we can correctly get the action weight
const UEdGraphSchema * ActionSchema = GraphObj ? GraphObj - > GetSchema ( ) : GetDefault < UEdGraphSchema > ( ) ;
check ( ActionSchema ) ;
bool bIsPartialBuild = StartingIndex ! = INDEX_NONE ;
const int32 NumActions = AllActions - > GetNumActions ( ) ;
for ( int32 CurTypeIndex = bIsPartialBuild ? StartingIndex : 0 ; CurTypeIndex < NumActions ; + + CurTypeIndex )
{
2024-04-19 19:47:31 -04:00
TSharedPtr < FEdGraphSchemaAction > CurrentAction = AllActions - > GetSchemaAction ( CurTypeIndex ) ;
2023-03-21 19:49:22 -04:00
// If we're filtering, search check to see if we need to show this action
bool bShowAction = true ;
float EachWeight = TNumericLimits < float > : : Lowest ( ) ;
2024-04-19 19:47:31 -04:00
const FString & SearchText = CurrentAction - > GetFullSearchText ( ) ;
2023-03-21 19:49:22 -04:00
for ( int32 FilterIndex = 0 ; ( FilterIndex < FilterTerms . Num ( ) ) & & bShowAction ; + + FilterIndex )
{
const bool bMatchesTerm = ( SearchText . Contains ( FilterTerms [ FilterIndex ] , ESearchCase : : CaseSensitive ) | | ( SearchText . Contains ( SanitizedFilterTerms [ FilterIndex ] , ESearchCase : : CaseSensitive ) = = true ) ) ;
bShowAction = bMatchesTerm ;
}
if ( ! bShowAction )
{
continue ;
}
2024-04-03 20:04:53 -04:00
bool bAddedAndSelected = false ;
2023-03-21 19:49:22 -04:00
if ( bRequiresFiltering )
{
// Get the 'weight' of this in relation to the filter
2024-04-19 19:47:31 -04:00
EachWeight = ActionSchema - > GetActionFilteredWeight ( * CurrentAction , FilterTerms , SanitizedFilterTerms , DraggedFromPins ) ;
2023-03-21 19:49:22 -04:00
// If this action has a greater relevance than others, cache its index.
if ( EachWeight > BestMatchCount )
{
BestMatchCount = EachWeight ;
BestMatchIndex = CurTypeIndex ;
2024-04-03 20:04:53 -04:00
// as our currently best scoring entry, add and select the node:
if ( bIsPartialBuild )
{
SelectedAction = FilteredRootAction - > AddChildAlphabetical ( CurrentAction ) ;
}
else
{
SelectedAction = FilteredRootAction - > AddChild ( CurrentAction ) ;
}
bAddedAndSelected = true ;
2023-03-21 19:49:22 -04:00
}
}
2024-04-03 20:04:53 -04:00
if ( ! bAddedAndSelected ) // if the node was not added and selected, then just add it to the root:
2023-03-21 19:49:22 -04:00
{
2024-04-03 20:04:53 -04:00
if ( bIsPartialBuild )
{
FilteredRootAction - > AddChildAlphabetical ( CurrentAction ) ;
}
else
{
FilteredRootAction - > AddChild ( CurrentAction ) ;
}
2023-03-21 19:49:22 -04:00
}
}
2024-04-03 20:04:53 -04:00
SelectedSuggestionScore = BestMatchCount ;
SelectedSuggestionSourceIndex = BestMatchIndex ;
2023-03-21 19:49:22 -04:00
}
2024-04-03 20:04:53 -04:00
void SGraphActionMenu : : SelectPreviousAction ( int32 Num )
2023-03-21 19:49:22 -04:00
{
2024-04-03 20:04:53 -04:00
// search backwards Num entries for a previous action, stop if we reach the first action:
2024-04-05 20:46:03 -04:00
bIsKeyboardNavigating = true ;
2024-04-03 20:04:53 -04:00
int32 SelectedIndex = INDEX_NONE ;
const TArray < TSharedPtr < FGraphActionNode > > & CurrentFilteredActionNodes = GetFilteredActionNodes ( & SelectedIndex ) ;
SelectedIndex = FMath : : Max ( 0 , SelectedIndex - Num ) ;
SelectedAction = CurrentFilteredActionNodes . Num ( ) > 0 ? CurrentFilteredActionNodes [ SelectedIndex ] : TSharedPtr < FGraphActionNode > ( ) ; ;
2024-04-05 20:46:03 -04:00
int32 NextIndex = DisplayIndex - Num ;
DisplayIndex = NextIndex < UE : : GraphEditor : : Private : : PREFERRED_TOP_INDEX ? UE : : GraphEditor : : Private : : PREFERRED_BOTTOM_INDEX : NextIndex ; // if we bump below 2, loop over to 10, causing a scroll
2024-04-03 20:04:53 -04:00
}
void SGraphActionMenu : : SelectNextAction ( int32 Num )
{
// search forwards Num entries for a next action, stop if we reach the first action:
2024-04-05 20:46:03 -04:00
bIsKeyboardNavigating = true ;
2024-04-03 20:04:53 -04:00
int32 SelectedIndex = INDEX_NONE ;
const TArray < TSharedPtr < FGraphActionNode > > & CurrentFilteredActionNodes = GetFilteredActionNodes ( & SelectedIndex ) ;
SelectedIndex = FMath : : Min ( CurrentFilteredActionNodes . Num ( ) - 1 , SelectedIndex + Num ) ;
SelectedAction = CurrentFilteredActionNodes . Num ( ) > 0 ? CurrentFilteredActionNodes [ SelectedIndex ] : TSharedPtr < FGraphActionNode > ( ) ; ;
2024-04-05 20:46:03 -04:00
int32 NextIndex = DisplayIndex + Num ;
DisplayIndex = NextIndex > UE : : GraphEditor : : Private : : PREFERRED_BOTTOM_INDEX ? UE : : GraphEditor : : Private : : PREFERRED_TOP_INDEX : NextIndex ; // if we bump below 2, loop over to 10, causing a scroll
2024-04-03 20:04:53 -04:00
}
void SGraphActionMenu : : SelectFirstAction ( )
{
2024-04-05 20:46:03 -04:00
bIsKeyboardNavigating = true ;
DisplayIndex = UE : : GraphEditor : : Private : : PREFERRED_TOP_INDEX ;
2024-04-03 20:04:53 -04:00
SelectedAction = GetFirstAction ( ) ;
}
void SGraphActionMenu : : SelectLastAction ( )
{
2024-04-05 20:46:03 -04:00
bIsKeyboardNavigating = true ;
DisplayIndex = UE : : GraphEditor : : Private : : PREFERRED_TOP_INDEX ;
2024-04-03 20:04:53 -04:00
// find the last unfiltered action:
const TArray < TSharedPtr < FGraphActionNode > > & CurrentFilteredActionNodes = GetFilteredActionNodes ( ) ;
SelectedAction = CurrentFilteredActionNodes . Num ( ) > 0 ? CurrentFilteredActionNodes . Last ( ) : TSharedPtr < FGraphActionNode > ( ) ;
}
TSharedPtr < FGraphActionNode > SGraphActionMenu : : GetFirstAction ( )
{
const TArray < TSharedPtr < FGraphActionNode > > & Nodes = GetFilteredActionNodes ( ) ;
return Nodes . Num ( ) > 0 ? FilteredActionNodes [ 0 ] : TSharedPtr < FGraphActionNode > ( ) ;
}
const TArray < TSharedPtr < FGraphActionNode > > & SGraphActionMenu : : GetFilteredActionNodes ( int32 * OutSelectedIndex )
{
// We could cache this, but for now I'm calculating it every time it is requested - this
// possibility of caching is the reason none of these methods are const
2023-03-21 19:49:22 -04:00
FilteredActionNodes . Reset ( ) ;
FilteredRootAction - > GetLeafNodes ( FilteredActionNodes ) ;
2024-04-03 20:04:53 -04:00
ensureMsgf ( GetTotalLeafNodes ( ) = = FilteredActionNodes . Num ( ) , TEXT ( " FilteredActionNodes and GetTotalLeafNodes should match " ) ) ;
// find selected item's leaf index:
if ( OutSelectedIndex & & SelectedAction )
2023-03-21 19:49:22 -04:00
{
2024-04-03 20:04:53 -04:00
for ( int32 Idx = 0 ; Idx < FilteredActionNodes . Num ( ) ; + + Idx )
2023-03-21 19:49:22 -04:00
{
2024-04-03 20:04:53 -04:00
if ( FilteredActionNodes [ Idx ] = = SelectedAction )
2023-03-21 19:49:22 -04:00
{
2024-04-03 20:04:53 -04:00
* OutSelectedIndex = Idx ;
2023-03-21 19:49:22 -04:00
}
}
}
2024-04-03 20:04:53 -04:00
return FilteredActionNodes ;
2023-03-21 19:49:22 -04:00
}
2024-04-03 20:04:53 -04:00
int32 SGraphActionMenu : : GetTotalLeafNodes ( ) const
{
return FilteredRootAction - > GetTotalLeafNodes ( ) ;
}
2014-03-14 14:13:41 -04:00
/////////////////////////////////////////////////////
# undef LOCTEXT_NAMESPACE