#ttp 341701 - MAIN: EDITOR: CRASH: Editor crashes when searching for a nonexistant reparent class
#branch UE4
#change Very timing specific, the crash actually occurs (in the example) between pressing 's' then 'd' as the 's' search sets bPendingSetExpansionStates to true, then before it can refresh the list the search is updated with 'd' which will result in zero matches, however the bPendingSetExpansionStates flag is still set to true so it tries to expand something that isn't there. This change just resets the flag whenever the list is refreshed.
#change Also modified the code so it doesn't do the 'Find' if it doesn't need to, and threw in a check incase this happens again.
reviewed by Richard.TalbotWatkin
[CL 2229638 by Andrew Brown in Main branch]
#Branch UE4
#Proj UnrealEd, ClassViewer
- enabling dynamic class loading requested by Marc Audy after encountering usability issues with the class picker dialog
- the change to the class viewer expansion map was an issue encountered once the dynamic class loading was enabled, the TSharedPtr<FString> key was hashing the container and not the string value which resulted in expansion state restoration failing and a minor bloating of the map class.
#codereview Marc.Audy, Richard.TalbotWatkin
[CL 2220513 by Ben Cosh in Main branch]
#ttp 338730 - EDITOR: Class Viewer: TreeView hierarchy in the Class Viewer can get broken
#branch UE4
#proj Editor.ClassViewer
#add Added an SClassViewer::bPendingSetExpansionStates member whose purpose is to ensure that the tree view expansion state is synched with the SClassViewer copy the following tick. This is necessary in order to update child's expansion state when it is changed in the OnGetChildren callback (because otherwise the STreeView will clear the pending refresh flags before they have a chance to be dealt with). Now OnGetChildren just sets this flag and forces a sync of the expansion state on the next tick, via SetExpansionStatesInTree.
#add Added an OnExpansionChanged callback to allow the local expansion state cache to remain in sync with that of the STreeView.
#add ExpandRootNodes now sets an entry in the ExpansionStateMap (as it should), so that SetExpansionStatesInTree will recurse beyond the root nodes correctly.
#reviewedby Chris.Wood
[CL 2217231 by Richard TalbotWatkin in Main branch]
#add Added a checkbox to deprecate a Blueprint, the Blueprint will no longer be placeable, children classes can no longer be made of it (or any of it's children) and no new variables can be designated in Blueprints of the BP type.
#change AddSubMenu will now take the tooltip as an FText attribute so the tooltip can be hooked up to a function
#ttp 304153 - LICENSEE: K2: Add support for deprecating a blueprint class
[CL 2181415 by Michael Schoell in Main branch]
Added new blackboard view based on MyBlueprint.
Class viewer can now optionally display "Display Names" for classes (this is used to make the names of blackboard entries more friendly).
SPropertyEditorEditInline now displays the class type icon as well as its name.
Blackboard entry details customization now hides the header for entries, so one level of expansion is no longer necessary.
Removed pointer to 'view' in the blackboard debugger & replaced with delegates where appropriate.
Fixed crash issue also mentioned here: https://github.com/EpicGames/UnrealEngine/pull/212
Added new detail customization used to display only the selected entry in the current blackboard.
Fixed crash when running services with no Blackboard (prevent access of NULL blackboard component).
TTP# 337669 - Behaviour Tree Editor: Integrate Blackboard debugging display with Blackboard Editor
reviewed by Andrew.Brown, Lukasz.Furman
[CL 2113798 by Thomas Sarkanen in Main branch]
#ttp 338336 - CRITICAL: EDITOR: Convert Actor: Crash: Selecting DefaultPhysicsVolume as type
#branch UE4
#proj Editor.ClassViewer, Editor.UnrealEd
#remove Removed useless code in UEditorEngine::AddActor which asserted due to no UModel being associated with the ABrush CDO.
#add Made the condition more specific as to whether Brush type classes are added to the list in ClassViewer::Helpers::AddChildren_Tree and AddChildren_List, so that notplaceable ones are omitted.
#reviewedby Chris.Wood
[CL 2110230 by Richard TalbotWatkin in Main branch]
There is now a consistent set of methods for module loading, unloading and lookup that all behave in the same expected way.
- renamed GetModuleInterface to GetModule and made it not assert
- removed GetModuleInterfaceRef
- namespace enums to enum classes, NULL to nullptr
- moved important public methods to the top, so they're easier to discover
- added missing & improved existing documentation
- cleaned up existing use cases
[CL 2109936 by Max Preussner in Main branch]
This is a subset of changes (compiler warning fixes needed to compile Linux editor) from pull request 185 by sbc100, 3dluvr, wshearn, abarbu et al: https://github.com/EpicGames/UnrealEngine/pull/185
- Initialization order fixes
- Missing virtual destructors in classes with virtual funcs.
- Missing newlines at the end of file
#codereview Robert.Manuszewski
[CL 2085576 by Dmitry Rekman in Main branch]
Contributed by UE4Linux community.
#codereview Mieszko.Zielinski, Michael.Schoell, Maciej.Mroz, Michael.Trepka, Justin.Sargent, Steve.Robb
[CL 2070232 by Dmitry Rekman in Main branch]
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)
Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()
Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine
[CL 2057118 by Max Preussner in Main branch]
* Extending the signature of a few kismet utility methods to make it more extensible.
* Now generating a list of template widgets (currrently still components). Able to safely build a hierarchy and then clone that into new objects without GLEO problems.
* Adding vertical and horrizontal boxes to UMG.
[CL 2052277 by Nick Darnell in Main branch]