Commit Graph

65 Commits

Author SHA1 Message Date
Chris Wood
8a112d6140 PushMenu() now respects QueryPopupMethod(). All menus now support reusing windows.
UE-14641 - Fix PushMenu() to use QueryPopupMethod()

Pretty big refactor
Adds IMenu as way to identify menus. Replaces referring to menus as SWindows.
Lots of uses of PushMenu() fixed up to match new API

#codereview Nick.Atamas

[CL 2579277 by Chris Wood in Main branch]
2015-06-05 20:19:33 -04:00
Frank Fella
35f5f6b1ca UMG - Sequencer - Fix an issue where modifying the active animation wouldn't change the preview widgets.
[CL 2530403 by Frank Fella in Main branch]
2015-04-29 12:06:57 -04:00
Ben Marsh
68adcd439c Fix CIS (shadow variables)
#codereview Frank.Fella

[CL 2525304 by Ben Marsh in Main branch]
2015-04-24 20:56:57 -04:00
Frank Fella
13bec92086 Sequencer - Add an object to mange various selections in sequencer.
+ Add the FSequencerSelection class and move all selection functionality there.
+ Add the concept of an active selection which is used to determine what to delete when the user hits the delete key.

[CL 2524575 by Frank Fella in Main branch]
2015-04-24 13:04:32 -04:00
Andrew Rodham
5194f5cfc0 Fixed some windows not gaining focus when opened
On mac, window activation is not guaranteed syncronously when a window is created, thus any code that opened a window, then immediately opened some focus-sensitive operation, may fail.

I've fixed up three of the most common cases (SAssetView::ItemScrolledIntoView, STextEntryPopup and STextComboPopup) so they register an active tick to focus the widget when the window gains focus (optionally controllable from the .AutoFocus() argument)

This addresses UE-12929.

[CL 2521062 by Andrew Rodham in Main branch]
2015-04-22 10:34:02 -04:00
Frank Fella
3677ce3653 UMG - Sequencer - Fix cases where changing widgets position and size in a canvas through the designer in auto-key mode didn't generate keyframes.
+ Change the UMGObjectBindingManager to track slots the same way the FWidgetAnimationBindings do where the Guid is associated with the slot's content.
+ Fix the WidgetBlueprintEditorUtils.ImportPropertiesFromText to call pre-change callbacks so that sequencer can handle them.
+ Update the STransformHandle so that it sets slot offsets through a utility function which calls the correct change callbacks so that sequencer can handle them.

[CL 2514457 by Frank Fella in Main branch]
2015-04-16 12:28:21 -04:00
Frank Fella
88a1baa53f UMG - Sequencer - Make animation binding names less confusing.
+ For slots display the name of the widget in the slot and the panels name instead of the slot name.
+ Update the display name for the binding when the object's name changes.

[CL 2507310 by Frank Fella in Main branch]
2015-04-09 16:42:27 -04:00
Frank Fella
c00d46a975 UMG - Make sequencer animation selection more consistent.
+ Update the preview widgets whenever the selected animation changes.
+ Start with no animation selected so that the initial widget states are shown.
+ Clear the sequencer when no animation is selected in the animation tab.

Jira: UE-12583

[CL 2493799 by Frank Fella in Main branch]
2015-03-27 10:41:55 -04:00
Frank Fella
948342ed65 Sequencer - Fix a hang when zooming to a zero sized section.
+ Guard agains an infinate loop in the time slider controller.
+ Don't zoom to zero sized sections in Sequencer.

Fixes UE-11677

[CL 2490004 by Frank Fella in Main branch]
2015-03-24 18:45:10 -04:00
Frank Fella
e8b3b2ab6b Sequencer - Fix an issue where an animation would become unusable if you undid the first keyframe addition.
Jira: UE-6365

[CL 2453655 by Frank Fella in Main branch]
2015-02-20 14:18:57 -05:00
Saul Abreu
a2401dfada Fixed sequencer data structures that were persisting FTexts instead of FStrings as UProperties, causing them to be gathered for localization. Ultimately they are turned into FText, but that is done at the appropriate time.
[CL 2449360 by Saul Abreu in Main branch]
2015-02-17 17:48:38 -05:00
Frank Fella
a68ec2ab9b Sequencer - Add a view to sequencer which uses a curve editor to show keyframes.
[CL 2447276 by Frank Fella in Main branch]
2015-02-16 11:59:08 -05:00
Dan Hertzka
1ce19a5ffa Full rename of the Slate "active tick" system to "active timer"
[CL 2394301 by Dan Hertzka in Main branch]
2014-12-19 17:44:49 -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
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Frank Fella
c0408228de Sequencer - Add support for snapping, and different snapping options.
#codereview matt.kuhlenschmidt

[CL 2377933 by Frank Fella in Main branch]
2014-12-05 14:03:51 -05:00
Jamie Dale
d21cff33f7 Fixed code relying on SLATE_TEXT_ARGUMENT for STextEntryPopup
Made sure everything was using FText rather than FString.

[CL 2373660 by Jamie Dale in Main branch]
2014-12-02 08:37:25 -05:00
Mikolaj Sieluzycki
d43e69c4b9 Prepare cpp files for header cleanup.
#codereview Robert.Manuszewski

[CL 2356854 by Mikolaj Sieluzycki in Main branch]
2014-11-12 04:43:54 -05:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Matt Kuhlenschmidt
303d89cd30 Fix a crash clicking on a breadcrumb trail in Sequencer after creating a new animation in UMG
[CL 2292840 by Matt Kuhlenschmidt in Main branch]
2014-09-10 15:39:10 -04:00
Matt Kuhlenschmidt
aaf49c522d Sequencer - A couple of selection bugs and undo fixes
[CL 2292453 by Matt Kuhlenschmidt in Main branch]
2014-09-10 12:30:42 -04:00
Matt Kuhlenschmidt
ecf951a932 Added ability to animate slate render transforms in sequencer
[CL 2291025 by Matt Kuhlenschmidt in Main branch]
2014-09-09 12:34:52 -04:00
Nick Darnell
7f7c2d28b3 UMG - Still experimental but removing the experimental flag and always loading UMG.
[CL 2254931 by Nick Darnell in Main branch]
2014-08-13 14:04:16 -04:00
Matt Kuhlenschmidt
c9e6d019a8 UMG - Animation setup overhaul. You can now create multiple animations. Each animation will create a variable which you can use to Play/Stop animations at runtime in a widget blueprint graph
[CL 2253547 by Matt Kuhlenschmidt in Main branch]
2014-08-12 16:34:22 -04:00
Michael Trepka
5bd6255fde More Clang compile warning fixes
[CL 2237347 by Michael Trepka in Main branch]
2014-07-30 14:51:27 -04:00