diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs index a5caf78dd..61fbad0ec 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs @@ -131,6 +131,9 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions foreach (var childViewModel in Items) childViewModel.Update(); + + if (IsRootGroup) + ((DisplayConditionsViewModel) Parent).DisplayStartHint = !Items.Any(); } } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsView.xaml b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsView.xaml index 68c8ef8f9..14f88f21f 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsView.xaml +++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsView.xaml @@ -15,161 +15,146 @@ - - - - - Unleash Artemis's true potential - Start using conditions to dynamically show and hide groups and layers + + + + + + + + + Display conditions + + - - - - - - - - - - - - - - Display conditions - - - - - - - - - - - - - - - - - - - - - - - - - - - Configure how the layer should act while the conditions above are met - - - - - - - - - - - - - - - - - Continue repeating the main segment of the timeline while the condition is met - - - - - - REPEAT - - - - - - - Only play the timeline once when the condition is met - - - - - - ONCE - - - - - - - - - - - - - Configure how the layer should act when the conditions above are no longer met - - - - - - - - - - - - - - - - When conditions are no longer met, finish the the current run of the main timeline - - - - - - FINISH - - - - - - - When conditions are no longer met, skip to the end segment of the timeline - - - - - - SKIP TO END - - - - - + + + + - + + + + + + + + + + + + + + + + + + + Configure how the layer should act while the conditions above are met + + + + + + + + + + + + + + + + + Continue repeating the main segment of the timeline while the condition is met + + + + + + REPEAT + + + + + + + Only play the timeline once when the condition is met + + + + + + ONCE + + + + + + + + + + + + + Configure how the layer should act when the conditions above are no longer met + + + + + + + + + + + + + + + + When conditions are no longer met, finish the the current run of the main timeline + + + + + + FINISH + + + + + + + When conditions are no longer met, skip to the end segment of the timeline + + + + + + SKIP TO END + + + + + + \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs index 5392d0f52..6e9d1f6f1 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs @@ -12,7 +12,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions private readonly IDisplayConditionsVmFactory _displayConditionsVmFactory; private readonly IProfileEditorService _profileEditorService; private RenderProfileElement _renderProfileElement; - private int _transitionerIndex; + private bool _displayStartHint; public DisplayConditionsViewModel(IProfileEditorService profileEditorService, IDisplayConditionsVmFactory displayConditionsVmFactory) { @@ -20,13 +20,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions _displayConditionsVmFactory = displayConditionsVmFactory; } - public int TransitionerIndex + public bool DisplayStartHint { - get => _transitionerIndex; - set => SetAndNotify(ref _transitionerIndex, value); + get => _displayStartHint; + set => SetAndNotify(ref _displayStartHint, value); } - public RenderProfileElement RenderProfileElement { get => _renderProfileElement; @@ -89,8 +88,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions ActiveItem.Update(); // Only show the intro to conditions once, and only if the layer has no conditions - if (TransitionerIndex != 1) - TransitionerIndex = ActiveItem.Items.Any() ? 1 : 0; + DisplayStartHint = !ActiveItem.Items.Any(); } } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsTabViewModel.cs index 3ff720cd0..aacae4bbd 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsTabViewModel.cs @@ -23,9 +23,11 @@ namespace Artemis.UI.Screens.Settings.Tabs.Devices protected override void OnActivate() { // Take it off the UI thread to avoid freezing on tab change - Task.Run(() => + Task.Run(async () => { Items.Clear(); + await Task.Delay(200); + var instances = _surfaceService.ActiveSurface.Devices.Select(d => _settingsVmFactory.CreateDeviceSettingsViewModel(d)).ToList(); foreach (var deviceSettingsViewModel in instances) Items.Add(deviceSettingsViewModel); diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsTabViewModel.cs index 6cb8de565..50d3cce86 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsTabViewModel.cs @@ -23,10 +23,16 @@ namespace Artemis.UI.Screens.Settings.Tabs.Plugins protected override void OnActivate() { // Take it off the UI thread to avoid freezing on tab change - Items.Clear(); - var instances = _pluginService.GetAllPluginInfo().Select(p => _settingsVmFactory.CreatePluginSettingsViewModel(p.Instance)).ToList(); - foreach (var pluginSettingsViewModel in instances) - Items.Add(pluginSettingsViewModel); + Task.Run(async () => + { + Items.Clear(); + await Task.Delay(200); + + var instances = _pluginService.GetAllPluginInfo().Select(p => _settingsVmFactory.CreatePluginSettingsViewModel(p.Instance)).ToList(); + foreach (var pluginSettingsViewModel in instances) + Items.Add(pluginSettingsViewModel); + }); + } } } \ No newline at end of file