Commit Graph

31 Commits

Author SHA1 Message Date
Dan Hertzka
f3092790eb Window menu refactor & polish
- Window menu is now sectioned and labeled based on the current editor. There's now a local workspace root member in FTabManager and a workspace category in FAssetEditorToolkit (both are FWorkspaceItem objects). Individual editors attach their local category to the tab manager's local root. Workflow app modes have their own category members that are swapped out when the mode changes.

- Finally, the AssetEditorCategory of FWorkspaceMenuStructure has been removed entirely.

- Replaced the AddMenuSeparator() call in FTabManager::PopulateSpawnerMenu_Helper() with a section of the same title as the workspace category.

- Tab spawner menu entries for the local editor now properly show the icon of the associated tab. To accomplish this it was necessary to change FWorkflowTabFactory::TabIcon to be an FSlateIcon instead of an FSlateBrush*. All factory instances have been updated accordingly.

- Added & updated lots of icons! (those missing will be TTP'd)

- The nomad tab spawner section (named "General" in the menu) has been largely compressed into the Developer Tools submenu, which has also been organized into sections for readability.

- Unreal frontend options were also moved into a context menu within the General section

- Moved all experimental tools to their own section of the Window menu. When they're no longer experimental they should register as nomads in the appropriate category

- Undo history now under Edit menu

[CL 2324285 by Dan Hertzka in Main branch]
2014-10-09 12:34:55 -04:00
Matt Kuhlenschmidt
e57e60f87c Fix mac shutdown crash
[CL 2322672 by Matt Kuhlenschmidt in Main branch]
2014-10-08 10:39:04 -04:00
Andrew Rodham
5918e93771 Added setting to allow for 'transparent' box selection in perspective viewports.
Enabling this setting will allow marquee box selections in perspective viewports to select actors even if they are fully occluded by other actors.

This addresses TTP#333837 - Editor: Need an option for perspective view marquee select to allow selection of occluded actors.

[CL 2298131 by Andrew Rodham in Main branch]
2014-09-15 10:05:47 -04:00
Thomas Sarkanen
62bbb5644f Exposed different Blueprint editor contexts for tutorials
Added new GetToolkitContextFName() function to IToolKit, most implementations of which return GetToolkitFName().
Tutorials button now exposes a different context depending on the type of Blueprint being edited. Updated BP-editor derived classes so that 'downstream' editors (e.g. Persona) are not affected.

Also edited padding & icon for tutorials.

[CL 2297866 by Thomas Sarkanen in Main branch]
2014-09-15 05:19:37 -04:00
Andrew Rodham
43d5a83e80 Fixed crash when hot-reloading the Level Editor
This addresses TTP#344926 - CRITICAL: Regression: EDITOR: Crash: Reload Level Editor

#codereview Robert.Manuszewski

[CL 2295194 by Andrew Rodham in Main branch]
2014-09-12 11:38:00 -04:00
Thomas Sarkanen
8dc16308f3 Added tutorials button in top bar of editor & sub-editors
Icon is only visible if content is available for the editor in question.
Split editor settings into two groups - one is persistent settings and one is progress/state.
Tutorials record their dismissed state, so users can permenantly disable the 'nag' for a particular tutorial.
Tutorial content now solidifies when the mouse is hovered over it, so it can be made easier to read.
Fixed crash on startup if an intro tutorial was displaying rich text.
Also fixed crash for TTP# 345094, where a zero-length tutorial was being accessed.

[CL 2275934 by Thomas Sarkanen in Main branch]
2014-08-28 06:22:40 -04:00
Michael Trepka
861d4d7c08 Make sure bCanBeRecompiled in FLevelEditorModule is initialized before being used
[CL 2275042 by Michael Trepka in Main branch]
2014-08-27 16:19:15 -04:00
Matt Kuhlenschmidt
b66a5ea328 Added back missing "Draw Brush Polys" setting
[CL 2270696 by Matt Kuhlenschmidt in Main branch]
2014-08-25 12:46:23 -04:00
Matt Kuhlenschmidt
273ea3d32a Consolidated the settings buttons in the toolbar into one button.
[CL 2270589 by Matt Kuhlenschmidt in Main branch]
2014-08-25 11:26:25 -04:00
Mark Satterthwaite
ed3cefe4bb Refactored MultiBox and TabManager to support presenting the currently active window menu as the global main menu on Mac OS X.
- On Mac OS X we hide the per-window menu bar.
- MultiBlocks have a type so that the Mac-specific menu creation code can generate the proper native widget.
- The menu builder can now be asked for the constructed MultiBox so that on menu creation it can be set on the TabManager.
- That allows the TabManager to be told to update the current global menu bar when the tab or window focus changes.
- A window activation delegate has been added to SWindow to permit this.
- Widgets that used to live in the LevelEditor menu bar have been hoisted into the window titlebar on OS X as on that platform there's no menu bar anymore.
- There's limited support for parsing custom widgets in the menu MultiBlock in order to support the platform list in the File->Package... sub-menu, this is sufficient for now but is quite fragile.
- We can support custom Slate widgets inside native Mac menus should we ever need to - but it is tricky.

reviewedby michael.trepka, nick.atamas

[CL 2228398 by Mark Satterthwaite in Main branch]
2014-07-23 09:04:48 -04:00
Marc Audy
494f22bb33 Add the ability to link to object class documentation throughout the UI
[CL 2226010 by Marc Audy in Main branch]
2014-07-21 17:31:27 -04:00
Bob Tellez
48e2c32a7c UE4: When running with WorldAssets, the open level dialog has been changed back to a popup. The inline menus don't work as envisioned and it causes problems on other platforms with native menus (Mac)
[CL 2122618 by Bob Tellez in Main branch]
2014-06-30 19:03:07 -04:00
Nick Darnell
32fe5f15c8 Extensibility - Adding an event plugin authors can hook in the level editor module to capture when the tab manager is changed (OnTabManagerChanged). After that event it's safe to call GetLevelEditorTabManager and register your tab spawner from a plugin.
[CL 2116828 by Nick Darnell in Main branch]
2014-06-25 12:49:26 -04:00
Andrew Rodham
ba3528c9d4 Made it possible for asset editors to maintain their own FEditorModeTools lists
Breaking changes include:
    * Rename of GEditorModeTools -> GLevelEditorModeTools to signify that it applies only to the level editor modes
    * Addition of FEditorModeRegistry, responsible for managing and creating new editor modes. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type.
    * Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients
    * Added ability to specify an FEditorModeTools when creating an FEditorViewport

Moved component vizualiser manager handling outside of individual editor modes, and into FLevelEditorViewportClient. This should make it easier to transplant in future.

This work addresses TTP#334640 - EDITOR: Investigate making editor modes a per-'editor' concept

Reviewed by Michael Noland, Matt Kuhlenschmidt

[CL 2109245 by Andrew Rodham in Main branch]
2014-06-18 10:16:16 -04:00
Ben Marsh
f89c8c6b2d Disable the 'recompile level editor' button for promoted builds. It should only be enabled if the build is compiled locally.
#codereview Michael.Trepka

[CL 2100379 by Ben Marsh in Main branch]
2014-06-10 10:32:29 -04:00
Jamie Dale
0cfe5f0651 Added PlatformInfo to DesktopPlatform and improved the editors Supported Platform UI
TTP# 337136 - SETTINGS: Target Platform settings polish
TTP# 337652 - EDITOR: Limit Project supported Android icons down to 1
TTP# 337650 - EDITOR: There is only 1 icon for Apple for Project Supported Platforms

DesktopPlatform now contains a static array of FPlatformInfo. This can be used to query UE4 about its available platforms, even when they're not available as a target platform.

FPlatformInfo contains the information required by the editor (such as a localized display name and icon), as well as whether a platform is a variation ("flavor") of another, and if so, whether the flavor affects the build output (eg, Win32 or Win64), or the cook output (eg, Android_XYZ). This lets the editor build up nested menus for the "Package Project" and "Cook Project" options, rather than just showing everything as a flat list.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2095796 by Jamie Dale in Main branch]
2014-06-05 12:13:44 -04:00
Barnabas McManners
abc3cde3c4 Alt + Shift + R now brings up the reference viewer for the currently selected asset in the level editor and asset editor
#TTP 331416 - UE4: Would like to be able to set a hotkey to open the Reference viewer similar to "find in content browser"

#branch UE4

#proj Editor.UnrealEd
#proj Editor.LevelEditor

#add Added new global UICommand ViewReferences, bound to Alt + Shift + R.

#add Implemented the new UICommand in the AssetEditorToolkit and the LevelEditorr. This means that most of the editor is covered by this hotkey. Hitting it in an asset editor brings it up for the current asset, hitting it in the level editor brings it up for the selected asset.

#Further work: Further work is required to modify the content browsers uses of view references, for now it is deemed to be too much work for this task.

#reviewedby Chris.Wood

[CL 2088247 by Barnabas McManners in Main branch]
2014-05-29 17:40:21 -04:00
Jamie Dale
c730fdef83 Added support for choosing which platforms your project will target
TTP# 332489 - TOOLS FEATURE: Editor: Allow user to designate which platforms a project is designed for; warn user when deploying to platforms that will result in a bad time

There is now a "Target Platforms" tab in the project settings which allows you to choose which platforms your project will target. This information is stored inside the .uproject file.

If you try and launch, cook, or package for a project that isn't on the supported list, then you'll see a suppressible warning notifying you that the project may not run as expected. This is also conveyed to you via a warning icon next to platforms which aren't set as a target.

Additionally the target platform icons are shown in the tooltip on the "Open Project" dialog, as well as in the tab area of the level editor.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2088161 by Jamie Dale in Main branch]
2014-05-29 17:37:19 -04:00
Marc Audy
1281bea0c7 Shadow variable fixes
[CL 2085770 by Marc Audy in Main branch]
2014-05-29 17:14:20 -04:00
Bob Tellez
d21e695542 UE4: Added open level asset pickers to replace the existing open level dialog. The existing dialog is still accessible via File->Open Level->Open Other Level...
[CL 2083284 by Bob Tellez in Main branch]
2014-05-29 16:50:13 -04:00
Matt Kuhlenschmidt
9fbcefd1df Fixed sequencer not opening once it has been closed (world centric bug)
Removed ISequencerInternals interface as it was not necessary and confusing.

[CL 2082317 by Matt Kuhlenschmidt in Main branch]
2014-05-22 16:10:01 -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
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
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