mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Profile editor - Add indicator for timeline editor- and normal-mode
This commit is contained in:
parent
8728599dcc
commit
472bcccdb6
@ -227,6 +227,12 @@ namespace Artemis.UI.Shared.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler PixelsPerSecondChanged;
|
event EventHandler PixelsPerSecondChanged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs when the suspend editing boolean is changed
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
event EventHandler SuspendEditingChanged;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Occurs when the profile preview has been updated
|
/// Occurs when the profile preview has been updated
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -112,6 +112,9 @@ namespace Artemis.UI.Shared.Services
|
|||||||
get => _suspendEditing;
|
get => _suspendEditing;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
|
if (_suspendEditing == value)
|
||||||
|
return;
|
||||||
|
|
||||||
_suspendEditing = value;
|
_suspendEditing = value;
|
||||||
if (value)
|
if (value)
|
||||||
{
|
{
|
||||||
@ -123,6 +126,8 @@ namespace Artemis.UI.Shared.Services
|
|||||||
if (SelectedProfileConfiguration != null)
|
if (SelectedProfileConfiguration != null)
|
||||||
_profileService.RenderForEditor = true;
|
_profileService.RenderForEditor = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OnSuspendEditingChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,6 +510,7 @@ namespace Artemis.UI.Shared.Services
|
|||||||
public event EventHandler? SelectedDataBindingChanged;
|
public event EventHandler? SelectedDataBindingChanged;
|
||||||
public event EventHandler? CurrentTimeChanged;
|
public event EventHandler? CurrentTimeChanged;
|
||||||
public event EventHandler? PixelsPerSecondChanged;
|
public event EventHandler? PixelsPerSecondChanged;
|
||||||
|
public event EventHandler? SuspendEditingChanged;
|
||||||
public event EventHandler? ProfilePreviewUpdated;
|
public event EventHandler? ProfilePreviewUpdated;
|
||||||
|
|
||||||
protected virtual void OnSelectedProfileChanged(ProfileConfigurationEventArgs e)
|
protected virtual void OnSelectedProfileChanged(ProfileConfigurationEventArgs e)
|
||||||
@ -537,6 +543,11 @@ namespace Artemis.UI.Shared.Services
|
|||||||
PixelsPerSecondChanged?.Invoke(this, EventArgs.Empty);
|
PixelsPerSecondChanged?.Invoke(this, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual void OnSuspendEditingChanged()
|
||||||
|
{
|
||||||
|
SuspendEditingChanged?.Invoke(this, EventArgs.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual void OnProfilePreviewUpdated()
|
protected virtual void OnProfilePreviewUpdated()
|
||||||
{
|
{
|
||||||
ProfilePreviewUpdated?.Invoke(this, EventArgs.Empty);
|
ProfilePreviewUpdated?.Invoke(this, EventArgs.Empty);
|
||||||
|
|||||||
@ -444,6 +444,28 @@
|
|||||||
Width="319" />
|
Width="319" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
<!-- Suspended overlay -->
|
||||||
|
<Border Grid.Row="0"
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
Grid.RowSpan="2"
|
||||||
|
Panel.ZIndex="3"
|
||||||
|
Background="#CD353535"
|
||||||
|
Visibility="{Binding SuspendedEditing, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}">
|
||||||
|
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Margin="16">
|
||||||
|
<materialDesign:PackIcon Kind="TimerOffOutline" Width="150" Height="150" HorizontalAlignment="Center" />
|
||||||
|
<TextBlock Style="{StaticResource MaterialDesignHeadline4TextBlock}" TextWrapping="Wrap" HorizontalAlignment="Center" Margin="0 10">
|
||||||
|
Timeline suspended
|
||||||
|
</TextBlock>
|
||||||
|
<TextBlock Style="{StaticResource MaterialDesignBody1TextBlock}" TextWrapping="Wrap" HorizontalAlignment="Center" TextAlignment="Center">
|
||||||
|
The profile is currently running in normal mode and the timeline cannot be edited.
|
||||||
|
</TextBlock>
|
||||||
|
<TextBlock Style="{StaticResource MaterialDesignBody2TextBlock}" TextWrapping="Wrap" HorizontalAlignment="Center" TextAlignment="Center">
|
||||||
|
Press <Run Text="F5" FontWeight="Bold"/> to toggle between editor mode and normal mode. Auto-switching can be disabled in the options menu.
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
</materialDesign:DialogHost>
|
</materialDesign:DialogHost>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@ -122,6 +122,8 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties
|
|||||||
set => ProfileEditorService.CurrentTime = TimeSpan.FromSeconds(value / ProfileEditorService.PixelsPerSecond);
|
set => ProfileEditorService.CurrentTime = TimeSpan.FromSeconds(value / ProfileEditorService.PixelsPerSecond);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool SuspendedEditing => ProfileEditorService.SuspendEditing;
|
||||||
|
|
||||||
public int PropertyTreeIndex
|
public int PropertyTreeIndex
|
||||||
{
|
{
|
||||||
get => _propertyTreeIndex;
|
get => _propertyTreeIndex;
|
||||||
@ -190,6 +192,7 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties
|
|||||||
|
|
||||||
ProfileEditorService.SelectedProfileElementChanged += SelectedProfileEditorServiceOnSelectedProfileElementChanged;
|
ProfileEditorService.SelectedProfileElementChanged += SelectedProfileEditorServiceOnSelectedProfileElementChanged;
|
||||||
ProfileEditorService.CurrentTimeChanged += ProfileEditorServiceOnCurrentTimeChanged;
|
ProfileEditorService.CurrentTimeChanged += ProfileEditorServiceOnCurrentTimeChanged;
|
||||||
|
ProfileEditorService.SuspendEditingChanged += ProfileEditorServiceOnSuspendEditingChanged;
|
||||||
ProfileEditorService.SelectedDataBindingChanged += ProfileEditorServiceOnSelectedDataBindingChanged;
|
ProfileEditorService.SelectedDataBindingChanged += ProfileEditorServiceOnSelectedDataBindingChanged;
|
||||||
ProfileEditorService.PixelsPerSecondChanged += ProfileEditorServiceOnPixelsPerSecondChanged;
|
ProfileEditorService.PixelsPerSecondChanged += ProfileEditorServiceOnPixelsPerSecondChanged;
|
||||||
|
|
||||||
@ -200,6 +203,7 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties
|
|||||||
{
|
{
|
||||||
ProfileEditorService.SelectedProfileElementChanged -= SelectedProfileEditorServiceOnSelectedProfileElementChanged;
|
ProfileEditorService.SelectedProfileElementChanged -= SelectedProfileEditorServiceOnSelectedProfileElementChanged;
|
||||||
ProfileEditorService.CurrentTimeChanged -= ProfileEditorServiceOnCurrentTimeChanged;
|
ProfileEditorService.CurrentTimeChanged -= ProfileEditorServiceOnCurrentTimeChanged;
|
||||||
|
ProfileEditorService.SuspendEditingChanged -= ProfileEditorServiceOnSuspendEditingChanged;
|
||||||
ProfileEditorService.SelectedDataBindingChanged -= ProfileEditorServiceOnSelectedDataBindingChanged;
|
ProfileEditorService.SelectedDataBindingChanged -= ProfileEditorServiceOnSelectedDataBindingChanged;
|
||||||
ProfileEditorService.PixelsPerSecondChanged -= ProfileEditorServiceOnPixelsPerSecondChanged;
|
ProfileEditorService.PixelsPerSecondChanged -= ProfileEditorServiceOnPixelsPerSecondChanged;
|
||||||
|
|
||||||
@ -230,6 +234,11 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties
|
|||||||
NotifyOfPropertyChange(nameof(TimeCaretPosition));
|
NotifyOfPropertyChange(nameof(TimeCaretPosition));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ProfileEditorServiceOnSuspendEditingChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
NotifyOfPropertyChange(nameof(SuspendedEditing));
|
||||||
|
}
|
||||||
|
|
||||||
private void ProfileEditorServiceOnPixelsPerSecondChanged(object sender, EventArgs e)
|
private void ProfileEditorServiceOnPixelsPerSecondChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
NotifyOfPropertyChange(nameof(TimeCaretPosition));
|
NotifyOfPropertyChange(nameof(TimeCaretPosition));
|
||||||
|
|||||||
@ -326,7 +326,6 @@ namespace Artemis.UI.Screens.ProfileEditor
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
_profileEditorService.SuspendEditing = !message.IsFocused;
|
_profileEditorService.SuspendEditing = !message.IsFocused;
|
||||||
ProfileViewModel.SuspendedEditing = !message.IsFocused;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -34,7 +34,6 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
private PanZoomViewModel _panZoomViewModel;
|
private PanZoomViewModel _panZoomViewModel;
|
||||||
private Layer _previousSelectedLayer;
|
private Layer _previousSelectedLayer;
|
||||||
private int _previousTool;
|
private int _previousTool;
|
||||||
private bool _suspendedEditing;
|
|
||||||
|
|
||||||
public ProfileViewModel(IProfileEditorService profileEditorService,
|
public ProfileViewModel(IProfileEditorService profileEditorService,
|
||||||
IRgbService rgbService,
|
IRgbService rgbService,
|
||||||
@ -119,11 +118,7 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
set => SetAndNotify(ref _canApplyToLayer, value);
|
set => SetAndNotify(ref _canApplyToLayer, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SuspendedEditing
|
public bool SuspendedEditing => _profileEditorService.SuspendEditing;
|
||||||
{
|
|
||||||
get => _suspendedEditing;
|
|
||||||
set => SetAndNotify(ref _suspendedEditing, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnInitialActivate()
|
protected override void OnInitialActivate()
|
||||||
{
|
{
|
||||||
@ -148,6 +143,7 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
|
|
||||||
_rgbService.DeviceAdded += RgbServiceOnDevicesModified;
|
_rgbService.DeviceAdded += RgbServiceOnDevicesModified;
|
||||||
_rgbService.DeviceRemoved += RgbServiceOnDevicesModified;
|
_rgbService.DeviceRemoved += RgbServiceOnDevicesModified;
|
||||||
|
_profileEditorService.SuspendEditingChanged += ProfileEditorServiceOnSuspendEditingChanged;
|
||||||
_profileEditorService.SelectedProfileChanged += OnSelectedProfileChanged;
|
_profileEditorService.SelectedProfileChanged += OnSelectedProfileChanged;
|
||||||
_profileEditorService.SelectedProfileElementChanged += OnSelectedProfileElementChanged;
|
_profileEditorService.SelectedProfileElementChanged += OnSelectedProfileElementChanged;
|
||||||
_profileEditorService.SelectedProfileElementSaved += OnSelectedProfileElementSaved;
|
_profileEditorService.SelectedProfileElementSaved += OnSelectedProfileElementSaved;
|
||||||
@ -160,6 +156,7 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
_coreService.FrameRendered -= OnFrameRendered;
|
_coreService.FrameRendered -= OnFrameRendered;
|
||||||
_rgbService.DeviceAdded -= RgbServiceOnDevicesModified;
|
_rgbService.DeviceAdded -= RgbServiceOnDevicesModified;
|
||||||
_rgbService.DeviceRemoved -= RgbServiceOnDevicesModified;
|
_rgbService.DeviceRemoved -= RgbServiceOnDevicesModified;
|
||||||
|
_profileEditorService.SuspendEditingChanged -= ProfileEditorServiceOnSuspendEditingChanged;
|
||||||
_profileEditorService.SelectedProfileChanged -= OnSelectedProfileChanged;
|
_profileEditorService.SelectedProfileChanged -= OnSelectedProfileChanged;
|
||||||
_profileEditorService.SelectedProfileElementChanged -= OnSelectedProfileElementChanged;
|
_profileEditorService.SelectedProfileElementChanged -= OnSelectedProfileElementChanged;
|
||||||
_profileEditorService.SelectedProfileElementSaved -= OnSelectedProfileElementSaved;
|
_profileEditorService.SelectedProfileElementSaved -= OnSelectedProfileElementSaved;
|
||||||
@ -214,6 +211,13 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
|
|
||||||
private void UpdateCanSelectEditTool()
|
private void UpdateCanSelectEditTool()
|
||||||
{
|
{
|
||||||
|
if (SuspendedEditing)
|
||||||
|
{
|
||||||
|
CanApplyToLayer = false;
|
||||||
|
CanSelectEditTool = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (_profileEditorService.SelectedProfileElement is Layer layer)
|
if (_profileEditorService.SelectedProfileElement is Layer layer)
|
||||||
{
|
{
|
||||||
CanApplyToLayer = true;
|
CanApplyToLayer = true;
|
||||||
@ -229,6 +233,11 @@ namespace Artemis.UI.Screens.ProfileEditor.Visualization
|
|||||||
ActivateToolByIndex(2);
|
ActivateToolByIndex(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ProfileEditorServiceOnSuspendEditingChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
NotifyOfPropertyChange(nameof(SuspendedEditing));
|
||||||
|
}
|
||||||
|
|
||||||
#region Buttons
|
#region Buttons
|
||||||
|
|
||||||
private void ActivateToolByIndex(int value)
|
private void ActivateToolByIndex(int value)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user