Commit Graph

44 Commits

Author SHA1 Message Date
James Golding
131420beb5 Remove Matinee related headers from Engine.h, and add only where needed
#codereview matt.kuhlenschmidt

[CL 2081832 by James Golding in Main branch]
2014-05-22 06:52:28 -04:00
James Golding
a0cbafe73a First pass removing several headers from Engine.h
[CL 2080322 by James Golding in Main branch]
2014-05-21 10:00:58 -04:00
Richard TalbotWatkin
96915d342b Put guard in place to prevent brushes from being dragged into locked levels.
#ttp 334902 - EDITOR: Level Browser: Allowed to add bsp geometry brushes to locked levels
#branch UE4
#proj Editor.LevelEditor, Editor.UnrealEd
#add Added checks for whether the current level is locked in SLevelViewport::OnDrop (creating a Slate notification if so, instead of placing the object).  Doing this here also eliminates the multiple identical notifications which otherwise occur when dragging Actors into a locked level.
#add Had to make a special case of FBrushBuilderDragDropOp::OnDrop which is responsible for adding a dragged brush.  The notification will already have occurred from the change above.  This just inhibits the actual creation of the brush.
#reviewedby Chris.Wood

[CL 2079297 by Richard TalbotWatkin in Main branch]
2014-05-20 15:15:36 -04:00
Max Preussner
c9d85971be Editor: refactored FLayoutService to be INI file agnostic; moved Editor layout from EditorUserSettings.ini to EditorLayout.ini
I also added code to retain backwards compatibility. Existing settings from EditorUserSettings.ini will be migrated to EditorLayout.ini

#CodeReview: nick.atamas, matt.kuhlenschmidt

[CL 2074798 by Max Preussner in Main branch]
2014-05-15 17:34:02 -04:00
Max Preussner
ec6a8c3453 PIE: Temp fix for PIE not remembering last executed play mode
[CL 2073259 by Max Preussner in Main branch]
2014-05-14 14:55:43 -04:00
Richard TalbotWatkin
09a13a1cf9 Fixed crash after recompiling level editor.
#ttp 335187 - CRITICAL: EDITOR: CRASH: Recompiling level editor
#branch UE4
#proj Editor.LevelEditor
#add Added calls in FLevelEditorModule::ShutdownModule to unregister the FEditorViewportCommands and FLevelViewportCommands so that they are re-registered correctly upon ModuleStart again.
#reviewedby Chris.Wood

[CL 2072984 by Richard TalbotWatkin in Main branch]
2014-05-14 14:49:57 -04:00
Dmitriy Dyomin
c6d6f9446d World Browser UX improvements
Splitted World Browser views into three independent windows, each window can be summoned from a hierarchy view or details view toolbar
World composition can now be toggled through WorldSettings - bEnableWorldComposition. Once enabled persistent level will be treated as a world root. No more '?worldcompistion' parameter workarounds. 'Open World' command was removed, as levels saved with world composition enabled can be open through 'Open Level' command.
Added bEnableWorldOriginRebasing parameter to WorldSettings, which contols whether world origin shifting should be used

[CL 2072584 by Dmitriy Dyomin in Main branch]
2014-05-14 02:16:14 -04:00
Jamie Dale
1d7854cf4a The move/save pivot options for brushes are now only available for ortho viewports
TTP# 333271 - UE4 Editor - "Move Pivot" brush functionality not working

They don't work for perspective viewports, however you need to be able to reset the pivot point in any viewport type.

ReviewedBy Andrew.Rodham, Max.Preussner

[CL 2070203 by Jamie Dale in Main branch]
2014-05-12 08:41:06 -04:00
Martin Mittring
b46c3baa21 * added ... to tell user where a dialog opens
[CL 2067526 by Martin Mittring in Main branch]
2014-05-08 17:58:25 -04:00
Graeme Thornton
e1700afed8 First pass of changes to remove GRHIFeatureLevel, allowing for multiple scenes with different feature levels to exist. First step towards dynamic mobile preview in the editor.
#ttp 331829 - Mobile Preview in Editor
#proj Engine
#branch UE4

#summary First pass of changes to remove GRHIFeatureLevel, allowing for multiple scenes with different feature levels to exist. First step towards dynamic mobile preview in the editor.

#change Added GMaxRHIFeature level which contains the highest supported feature level on this machine
#change Added a cvar "r.FeatureLevelPreview" which, when set to 1, enables a feature level selection in the quick settings menu. Not wired up to anything at the minute
#change Added a feature level variable to FScene, which is currently initialized to whatever GRHIFeatureLevel is. Accessed with GetFeatureLevel()
#change Added a helper accessor GetFeatureLevel() to FSceneView which gets the feature level from the relevant scene. Purely to reduce the amount of typing needed to get to a feature level
#change Many changes across the renderer to try and read the current feature level from the view or scene. Not everything is done yet, but this is almost all of the "easy" stuff. As there is still just a global feature level in the engine, nothing should change.

[CL 2066905 by Graeme Thornton in Main branch]
2014-05-08 09:05:50 -04:00
Mikolaj Sieluzycki
45c031d576 #ttp 331438 UE4: PlatformMath refactor
#proj core
#branch UE4
#summary Rename Trunc, Round, Floor, Ceil to TruncToInt, RoundToInt, FloorToInt, CeilToInt. Added *ToFloat versions. Repeated for FGenericPlatformMath and all derived classes for all platforms wherever applicable. Corrected comment in Fractional and added Frac() which does HLSL-style fractional (x - floor(x)). Checked for compilation on all projects (with cooking levels wherever applicable). Didn't change Fractional to Frac, this will be done in second commit.
#codereview robert.manuszewski

[CL 2064306 by Mikolaj Sieluzycki in Main branch]
2014-05-06 06:26:25 -04:00
Jamie Dale
d628c5477e You can now use an actor picker to choose which actor to attach to
TTP# 279062 - ROCKET: TASK: PUNTABLE: Viewports: "Drag to Attach" feature

Moved FEdModePicker out of the Private section of the PropertyEditor module, and into its own module so that it can be shared between the PropertyEditor and LevelEditor modules. Also renamed it to FEdModeActorPicker.

Added a way to filter FEdModeActorPicker by checking the actor directly (this complements the class type check it already had).

Added an actor picker button next to the scene outliner in the "Attach To" menu on actors. This is also mapped to the Alt+A command.

Built and tested in unity and non-unity.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2060928 by Jamie Dale in Main branch]
2014-05-01 06:52:47 -04:00
Nick Darnell
10d3cd7e77 UMG - Checkpointing more work to try and get a main menu system working. Adding a slider. Root creation is now possible. Can sort of delete, super buggy. Less polling, more active function calls for most things.
[CL 2060671 by Nick Darnell in Main branch]
2014-04-30 20:35:16 -04:00
Richard Hinckley
638b4c5dff Quick fix for unusual CamOrthoZoom bug, where the editor crashes upon level load due to 0.0 zoom value.
[CL 2060439 by Richard Hinckley in Main branch]
2014-04-30 17:14:30 -04:00
Andrew Brown
c542aedf84 Renamed 'simple' stats to 'engine'
#ttp 306334 - ROCKET: TASK: PUNTABLE: Stats: FN: Make diagnostic stats discoverable and available in the UI (don't require console to toggle)

#branch UE4

[CL 2058689 by Andrew Brown in Main branch]
2014-04-29 09:55:53 -04:00
Andrew Rodham
8c08120774 Added folder filtering support to the scene outliner
This allows the filtering of any actors that are part of the specified folder.

This addresses TTP#331604 - EDITOR: Scene Outliner: Folders will appear in the drop down when you try to move them, and TTP#331640 - EDITOR: Scene Outliner: In the 'Move to Folder" sub menu the "Create New" tooltip is incorrect

Also fixed not being able to move attached actors to a folder

Reviewed by Matt Kuhlenschmidt

[CL 2058587 by Andrew Rodham in Main branch]
2014-04-29 05:59:53 -04:00
Andrew Brown
b145f1d79e Simple and Group Stat Exec commands can now be triggered from the level viewport Show menu directly.
#ttp 306334 - ROCKET: TASK: PUNTABLE: Stats: FN: Make diagnostic stats discoverable and available in the UI (don't require console to toggle)

#branch UE4

#change
DECLARE_STATS_GROUP û Added additional param GroupCategory, for subfolder use in the UI. Fixedup all Stats Group usage so the category is now propagated through where it needs to be.
Currently all Group stats have the Category æAdvancedÆ, and all engine stats have the Category æSimpleÆ û this is just to differentiate them for now, better categories will come along in future.
Modified FindOrAddMetaData as it now broadcasts a delegate (via a TaskGraph) whenever a new stat meta data is added û this was needed as not all the stat groups are æregisteredÆ when the level viewports are created (they are drip loaded), so the viewports need to listen for any additions thereafter...
GroupDescription is displayed as a tooltip in the UI for the stat entry and we may want to localize these.
RenderStats & RenderGroupedWithHierarchy: Modified so that it now takes the viewport that it should render to as a param (which is also used to determine if each stat should be visible).
Removed StatsEnabled delegate in favour of StatCheckEnabled, StatEnabled, StatDisabled, StatDisableAll for more finite usage and feedback when toggling them.
Modified FHUDGroupManager HandleCommand It now uses the new delegates to work out whether it needs to enable or disable for the current viewport, so itÆs more involved than a simple toggle, itÆs more ôis the stat enabled for the current viewport, and is it enabled for any viewportö delegate querying so it can react accordingly.

Added struct FSimpleStatFuncs: Which contains info on each æSimple StatÆ such as; name, category, description, renderfunc, togglefunc and the side of the viewport it should be rendered to
ExecSimpleStat û Calls Exec for a registered Simple Stat, ensuring the correct viewport is set
IsSimpleStat û Checks to see if a stat is a registered Simple Stat or not
SetSimpleStat û Sets the state of a specified Simple Stats
SetSimpleStats - Sets the state of the specified Simple Stats
RenderSimpleStats û Renders the Simple Stats if they are enabled, and have Render functions assigned.
Each Exec function had the code it executes which itÆs toggled and rendered into functions

Added FStatUnitData & FStatHitchesData: Moved all the globals/static variables used when enabling Stat Unit/Hitches into a struct as itÆs now used by multiple viewports and they needed their own copies. Also moved their draw functions here too.

FSceneViewport:
SwapStatCommands û Exchanges the enabled stats between two viewports, this is so when PIEing the stats which were enabled on the Level Viewport (if playing in active viewport only) get transposed to the Game Viewport, and then restored when PIE ends.
SEditorViewport:
ToggleStatCommand û Called when a stat is enabled/disabled from the UI
IsStatCommandVisible û Checks to see if a stat command should appear as visible in the UI
SEditorViewportViewMenu:
GenerateViewMenuContent û Made protected and virtual so it could be called externally.
FLevelViewportCommands: Added the code needed to generate commands for each of the Stat menu entries, however because not all stats are registered when this happens, it also creates some delegates to listen out for others that are registered later
Destructor û Needed to reset delegates
HandleNewGroupStat û Creates the new group stat commands
HandleNewStat û Creates the new stat command
FindStatIndex û Looks for where a stat should be inserted in the menu in order to maintain alphabetical order
SLevelViewport:
Modified the code so that the states of all the SimpleStats are saved so they can be restored next time the editor is ran (previously just handled FPS).
OnFloatingButtonClicked û Called whenever any of the level viewports floating buttons are clicked in order to correctly set the ælastÆ viewport global
OnToggleAllStatCommands û Called when the user selects æHide AllÆ from the viewport.
ToggleStatCommand û Called when the user selects any other stat option from the viewport.
BindStatCommand û Used to bind the menu action to the command name (used by delegate)

Added SLevelEditorViewportViewMenu (extends SEditorViewportViewMenu), and overrode GenerateViewMenuContent so that OnFloatingButtonClicked can be called whenever the menu is clicked on. This is also called during GenerateOptionsMenu, GenerateCameraMenu, GenerateShowMenu & OnToggleMaximize
Added global ptr GStatProcessingViewportClient (sim to Current, Last) used to keep track of which viewport the stat should be applied too (only valid within the scope of the Exec call).

FViewportClient:
Moved global ESoundShowFlags enum list into this class.
FCommonViewportClient:
Destructor û Needed to reset GStatProcessingViewportClient
FLevelEditorViewportClient
SetCurrentViewport û moved code responsible for setting the global æcurrentÆ viewport ptr into a func
SetLastKeyViewport û moved the code responsible for settings the global ælastÆ viewport ptr into a func
UGameViewportClient:
Destructor û Needed to cleanup delegate usage.
FViewportClient & FLevelEditorViewportClient & UGameViewportClient*
GetStatUnitData û The viewports copy of the variables needed when running the Stat Unit Exec
GetStatHitchesData û The viewports copy of the variables needed when running the Stat Hitches Exec
GetEnabledStats û Gets a list of all the stats which are enabled for the viewport
SetEnabledStats û Sets a list of all the stats which should be enabled for the viewport
IsStatEnabled û Checks to see if a specific stat is enabled for the viewport
SetStatEnabled û Sets a specifics stats state to enabled or disabled
GetSoundShowFlags û Gets which flags are enabled for the Stat Sounds Exec
SetSoundShowFlags û Sets which flags are enabled for the Stat Sounds Exec
HandleViewportStatCheckEnabled (delegate) û checks to see if a specific stat is enabled on this viewport
HandleViewportStatEnabled (delegate) û enables a specific stat for the viewport
HandleViewportStatDisabled (delegate) û disables a specific stat for the viewport
HandleViewportStatDisableAll (delegate) û disables all stats for the viewport
*FViewportClient has dummy virtual funcs and LevelEditor/Game both have the same implementations, the only differences is the GameViewports member variables are static so that the stat info persists between runs.

FLevelEditorViewportInstanceSettings deprecated bShowFPS in favour of an EnabledStats array (so we can track the state of all stats, not just FPS).
Added new config var bSaveSimpleStats: if enabled, restores previously enabled level viewport simple stats the next time the editor runs (defaults to false).

Modified FillShowFlagMenu so that thereÆs just one func and you specify where (if any) youÆd like a separator to occur.
Added FillShowStatsSubMenus so that menus can be generated which have submenus
Added the Stats sub menu to the View menu

Modified Execs so that the GStatProcessingViewportClient is set to the correct default viewport (if it wasnÆt specified), and clears again after itÆs been processed
HandleStatCommand now takes World and ViewportClient as params too û needed when Execs enabled other Execs so the world/viewport persists.
SetAverageUnitTimes û Added as a Setter func for GetAverageUnitTimes (moved code out of Stat Unit renderer and modified so that it only updates once per frame).

Stripped out all unneeded globals

[CL 2058522 by Andrew Brown in Main branch]
2014-04-29 04:04:27 -04:00
Max Preussner
b63129a60c Slate: Refactored core Slate implementation into SlateCore module in preparation for UMG.
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]
2014-04-26 15:07:24 -04:00
Andrew Rodham
5737351568 Fixed placed classes appearing in the level editor menu as "Class Class"
The actor class type name is now preferred over the factory name in the case of classes.

Reviewed by Tom Sarkanen, Matt Kuhlenschmidt

[CL 2056262 by Andrew Rodham in Main branch]
2014-04-25 04:58:10 -04:00
Andrew Copland
305450f042 Correct a copy and paste mistake that caused the translation for "45" to be overridden with "90"
#ttp 333401 EDITOR: 45 degree rotation button has incorrect label
#proj Editor
#branch UE4
#codereview Thomas.Sarkanen

[CL 2055479 by Andrew Copland in Main branch]
2014-04-24 10:59:00 -04:00
Mikolaj Sieluzycki
bbcea54981 #ttp 303393 UObject improvement: Remove header groups
#proj core
#branch UE4
#summary Removed header groups, removed some redundant includes and replaced with forward declarations. Fixed compilation errors.

[CL 2055361 by Mikolaj Sieluzycki in Main branch]
2014-04-24 08:49:31 -04:00
Marc Audy
2b32ba4197 Fix issues with using mouse for touch and Simulate mode
TTP #332927

[CL 2054475 by Marc Audy in Main branch]
2014-04-23 20:18:25 -04:00
Robert Manuszewski
86174fbbdf Back out changelist 2054304
[CL 2054447 by Robert Manuszewski in Main branch]
2014-04-23 20:18:11 -04:00
Mikolaj Sieluzycki
e9351fe5de #ttp 303393 UObject improvement: Remove header groups
#proj core
#branch UE4
#summary Removed header groups, removed some redundant includes and replaced with forward declarations. Fixed compilation errors.

[CL 2054304 by Mikolaj Sieluzycki in Main branch]
2014-04-23 20:15:15 -04:00
Joe Conley
b0751548d7 Fix non-unity build
[CL 2048834 by Joe Conley in Main branch]
2014-04-23 19:22:33 -04:00