Commit Graph

28 Commits

Author SHA1 Message Date
Andrew Rodham
8ff0d8b98b Added config migration path for newer versions of the engine.
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).

EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.

Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)

GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.

This addresses UETOOL-270 (Most editor preferences should be project-agnostic)

[CL 2517558 by Andrew Rodham in Main branch]
2015-04-20 10:12:55 -04:00
Michael Noland
6ffb9862ef Property Editor: Added support for passing in a command list when creating a details view that can be queried by customizations [UE-13643]
#codereview matt.kuhlenschmidt

[CL 2507937 by Michael Noland in Main branch]
2015-04-10 02:12:33 -04:00
Marc Audy
46d32553c4 Allow property node to be overriden as read-only
#codereview Matt.Kuhlenschmidt

[CL 2478684 by Marc Audy in Main branch]
2015-03-13 12:41:11 -04:00
Saul Abreu
79a26091bf Fixed behavior on FString::ParseIntoArray (muliple delimiters overload) functionality to support optionally culling empty strings. Greatly simplified implementation logic. Output parameter now properly named and taken by reference.
#codereview Steve.Robb, Robert.Manuszewski

[CL 2466824 by Saul Abreu in Main branch]
2015-03-02 15:51:37 -05:00
Matt Kuhlenschmidt
70bb7b8685 Display the components tree under the details panel name and search bar
[CL 2407878 by Matt Kuhlenschmidt in Main branch]
2015-01-15 16:59:07 -05:00
Steve Robb
0756ef15b9 Delegate comparisons deprecated, lots of other associated code deprecated, and lots of warning fixups:
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.

#codereview robert.manuszewski

[CL 2400883 by Steve Robb in Main branch]
2015-01-08 09:29:27 -05:00
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev branch ----
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.

While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
    1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
        - Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
    2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.

- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
    - Examples include animation, async operations that update periodically, progress updates, loading bars, etc.

- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.

- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
    - There are THREE ways to unregister an active tick:
        1. Return EActiveTickReturnType::StopTicking from the active tick function
        2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
        3. Destroy the widget responsible for the active tick

- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
    - The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)

- The FCurveSequence API has been updated to work with the active tick system
    - Playing a curve sequence now requires that you pass the widget being animated by the sequence
    - The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
    - GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.

[CL 2391669 by Dan Hertzka in Main branch]
2014-12-17 16:07:57 -05:00
Michael Schoell
0e318b55ba Can set default values on local function variables.
Details view supports displaying UProperties from external UStruct's that are not a property of a UObject.

#jira UE-2246 - BP: Local function variables need to support default values

[CL 2383580 by Michael Schoell in Main branch]
2014-12-10 10:57:36 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Ben Marsh
959cfa782d Add missing copyright notices to source files.
[CL 2379212 by Ben Marsh in Main branch]
2014-12-06 19:14:20 -05:00
Andrew Brown
f744ff99da Details panel can now display those properties whose group matches the search criteria
#jira UE-1281 : The details panel doesnt search through parameter group names

#branch UE4

#add Added a new details filter button. This is enabled by default, if the user want to turn off category filtering they need to disable it from the eye menu

[CL 2364762 by Andrew Brown in Main branch]
2014-11-19 06:38:05 -05:00
Dmitry Rekman
a9584f2e61 Fixing || and && being in the same scope.
Not changing the existing behavior, although unsure whether it matches the intent in some cases.
Rule of thumb: when || and && are in the same scope, they are evaluated as if && was in parentheses
   E.g.
      Pointer && Pointer->Foo() || Pointer->Bar()
    is evaluated as
     (Pointer && Pointer->Foo()) || Pointer->Bar()

(I fixed such cases in changelists before this one as they were certainly unsafe).

#codereview Nicholas.Davies, Matt.Kuhlenschmidt, Gareth.Martin, Daniel.Wright, Mike.Beach, Maciej.Mroz, Simon.Tovey, Michael.Schoell

[CL 2362986 by Dmitry Rekman in Main branch]
2014-11-17 23:35:09 -05:00
Chris Gagnon
0e6d657c3d Refactor to unify keyboard and controller input and focus.
Native controller navigation support.

[CL 2345039 by Chris Gagnon in Main branch]
2014-10-30 12:29:36 -04:00
Dan Oconnor
b26a182a0d Adding PropertiesInOrderDisplayed accessor, Property Highlighting, ShowAllAdvancedProperties, Displayed Properties Changed delegate, Custom Layout disabling, property whitelisting to details view. Used by Diff and Merge tools.
Merge tool highlighting improved, now uses property paths.

[CL 2338733 by Dan Oconnor in Main branch]
2014-10-23 13:16:13 -04:00
Nick Darnell
4549a97d5c UMG - Refactoring the slate color customization to play nice with bindings. Adding a new property existenion system to the details panel. Allows for special case additions to be added to the property after it's customization has been used. Now used for bindings. User widgets now have foreground color and color and opacity support.
[CL 2328816 by Nick Darnell in Main branch]
2014-10-14 13:37:45 -04:00
Matt Kuhlenschmidt
7c319a3ab9 Fix crash when blueprints attempt to recompile an asset and refresh a details panel while the details panel is in the middle of an operation such as an array add
[CL 2316715 by Matt Kuhlenschmidt in Main branch]
2014-10-01 18:30:54 -04:00
Michael Noland
d01f8b5283 Core: Remove unused bChangesTopology member from FPropertyChangedEvent and removed most uses, in preparation for deprecating the three-argument constructor
#codereview matt.kuhlenschmidt

[CL 2304635 by Michael Noland in Main branch]
2014-09-19 19:00:52 -04:00
Matt Kuhlenschmidt
7cd380b314 Added instanced property type customization
#codereview nick.darnell

[CL 2286372 by Matt Kuhlenschmidt in Main branch]
2014-09-05 11:50:56 -04:00
Max Preussner
f167dce37e Slate: Moved TestSuite and ColorPicker into new module AppFramework
The AppFramework module is intended to be used for compound widgets and UI related classes that are too specific (not basic enough) for Slate, but also not Editor specific (reusable in non-Editor applications and games). The test suite has been moved in its entirety for now, but core widget specific test classes will eventually be split off and moved back into Slate, so that they can live alongside of their corresponding widgets.

Other changes:
- moved to "include what you use" scheme for SColorPicker
- broke out color picker related widgets that may be reusable
- added forward declarations to reduce header include dependencies

#CodeReview: saul.abreu

[CL 2275496 by Max Preussner in Main branch]
2014-08-27 20:35:19 -04:00
Dan Oconnor
8d4e6501fd #UE4 CDO view reintroduced to merge tool, replaced set of strings with set of fnames
[CL 2258440 by Dan Oconnor in Main branch]
2014-08-15 17:19:11 -04:00
Dan Oconnor
6f59271a54 #UE4 Improved view of CDO in diff view, can now cycle through the differences, toggle filtering of properties that differ
[CL 2253582 by Dan Oconnor in Main branch]
2014-08-12 16:54:27 -04:00
Matt Kuhlenschmidt
1ad8b4fcd5 UMG Sequencer keying:
- Added ability to key into UMG animations via the details panel
- Fixed some undo/redo issues in sequencer related to autokey
- Fixed auto-key causing property migration

[CL 2231142 by Matt Kuhlenschmidt in Main branch]
2014-07-24 23:52:28 -04:00
Matt Kuhlenschmidt
6387890456 Fix children of struct properties in the blueprint editor not always passing visibility tests
- Refactored IsPropertyVisible delegate to pass in a parent property pointer so complex visibility tests with struct parents can be performed

[CL 2115458 by Matt Kuhlenschmidt in Main branch]
2014-06-24 13:07:20 -04:00
Maciej Mroz
feab845825 Fix for Node Expansion in StructureDetailView
#codereview Matt.Kuhlenschmidt

[CL 2109235 by Maciej Mroz in Main branch]
2014-06-18 10:01:08 -04:00
Maciej Mroz
ee4beb6e18 StructureDetailsView refactored, custom name added.
[CL 2109013 by Maciej Mroz in Main branch]
2014-06-18 04:45:09 -04:00