mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-12 13:28:33 +00:00
Merge branch 'development'
This commit is contained in:
commit
552879ca77
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<PreserveCompilationContext>false</PreserveCompilationContext>
|
||||
@ -43,14 +45,14 @@
|
||||
<PackageReference Include="LiteDB" Version="5.0.16" />
|
||||
<PackageReference Include="McMaster.NETCore.Plugins" Version="1.4.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="RGB.NET.Presets" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="RGB.NET.Layout" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="RGB.NET.Presets" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
||||
<PackageReference Include="SkiaSharp" Version="$(SkiaSharpVersion)" />
|
||||
<PackageReference Include="System.Buffers" Version="4.5.1" />
|
||||
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
|
||||
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using SkiaSharp;
|
||||
using System.Text;
|
||||
using SkiaSharp;
|
||||
|
||||
namespace Artemis.Core.ColorScience;
|
||||
|
||||
@ -36,4 +37,14 @@ public readonly record struct ColorSwatch
|
||||
/// The <see cref="ColorType.DarkMuted" /> component.
|
||||
/// </summary>
|
||||
public SKColor DarkMuted { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Override the record ToString method,
|
||||
/// so we get a cleaner datamodel viewer
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override string? ToString()
|
||||
{
|
||||
return base.ToString();
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using EmbedIO;
|
||||
@ -15,7 +16,7 @@ public class PluginsModule : WebModuleBase
|
||||
|
||||
internal PluginsModule(string baseRoute) : base(baseRoute)
|
||||
{
|
||||
_pluginEndPoints = new Dictionary<string, Dictionary<string, PluginEndPoint>>();
|
||||
_pluginEndPoints = new Dictionary<string, Dictionary<string, PluginEndPoint>>(comparer: StringComparer.InvariantCultureIgnoreCase);
|
||||
}
|
||||
|
||||
internal void AddPluginEndPoint(PluginEndPoint registration)
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<PreserveCompilationContext>false</PreserveCompilationContext>
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
@ -16,11 +18,11 @@
|
||||
<None Remove=".gitignore" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
@ -15,11 +17,11 @@
|
||||
<None Remove=".gitignore" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
@ -10,18 +12,18 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="DynamicData" Version="7.13.1" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="2.0.0-rc1" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="$(FluentAvaloniaVersion)" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="2.0.1" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="SkiaSharp" Version="$(SkiaSharpVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj" />
|
||||
|
||||
@ -225,7 +225,7 @@ public class DataModelPickerButton : TemplatedControl
|
||||
|
||||
private void PathValidationChanged(object? sender, EventArgs e)
|
||||
{
|
||||
Dispatcher.UIThread.InvokeAsync(UpdateValueDisplay, DispatcherPriority.DataBind);
|
||||
Dispatcher.UIThread.InvokeAsync(UpdateValueDisplay, DispatcherPriority.Background);
|
||||
}
|
||||
|
||||
private void UpdateValueDisplay()
|
||||
|
||||
@ -197,9 +197,12 @@ public class DeviceVisualizer : Control
|
||||
|
||||
private void DevicePropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (Device != null)
|
||||
BitmapCache.Remove(Device);
|
||||
Dispatcher.UIThread.Invoke(SetupForDevice, DispatcherPriority.Background);
|
||||
Dispatcher.UIThread.Invoke(async () =>
|
||||
{
|
||||
if (Device != null)
|
||||
BitmapCache.Remove(Device);
|
||||
await SetupForDevice();
|
||||
}, DispatcherPriority.Background);
|
||||
}
|
||||
|
||||
private void DeviceUpdated(object? sender, EventArgs e)
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
using System;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Styling;
|
||||
|
||||
namespace Artemis.UI.Shared;
|
||||
|
||||
internal class NoInputTextBox : TextBox, IStyleable
|
||||
internal class NoInputTextBox : TextBox
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
@ -19,5 +20,6 @@ internal class NoInputTextBox : TextBox, IStyleable
|
||||
// Don't call the base method on purpose
|
||||
}
|
||||
|
||||
Type IStyleable.StyleKey => typeof(TextBox);
|
||||
/// <inheritdoc />
|
||||
protected override Type StyleKeyOverride => typeof(TextBox);
|
||||
}
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net7.0-windows10.0.17763.0</TargetFramework>
|
||||
@ -21,18 +23,18 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Win32" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Win32" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" />
|
||||
<PackageReference Include="Microsoft.Win32" Version="2.0.1" />
|
||||
<PackageReference Include="Microsoft.Windows.Compatibility" Version="7.0.3" />
|
||||
<PackageReference Include="RawInput.Sharp" Version="0.1.1" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
<PackageReference Include="SkiaSharp.Vulkan.SharpVk" Version="2.88.3" />
|
||||
<PackageReference Include="SkiaSharp.Vulkan.SharpVk" Version="$(SkiaSharpVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj" />
|
||||
|
||||
@ -36,11 +36,6 @@ internal class Program
|
||||
return AppBuilder.Configure<App>()
|
||||
.UsePlatformDetect()
|
||||
.LogToTrace()
|
||||
.With(new Win32PlatformOptions
|
||||
{
|
||||
UseWindowsUIComposition = true,
|
||||
CompositionBackdropCornerRadius = 8f
|
||||
})
|
||||
.UseReactiveUI();
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
@ -15,28 +17,26 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="11.0.0" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="DryIoc.dll" Version="5.4.0" />
|
||||
<PackageReference Include="DynamicData" Version="7.13.1" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="2.0.0-rc1" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="$(FluentAvaloniaVersion)" />
|
||||
<PackageReference Include="Flurl.Http" Version="3.2.4" />
|
||||
<PackageReference Include="Live.Avalonia" Version="1.3.1" />
|
||||
<PackageReference Include="Markdown.Avalonia.Tight" Version="11.0.0-d1" />
|
||||
<PackageReference Include="Markdown.Avalonia.Tight" Version="11.0.0" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="2.0.1" />
|
||||
<PackageReference Include="Octopus.Octodiff" Version="2.0.261" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="RGB.NET.Layout" Version="2.0.0-prerelease.83" />
|
||||
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
||||
<PackageReference Include="RGB.NET.Core" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="RGB.NET.Layout" Version="$(RGBDotNetVersion)" />
|
||||
<PackageReference Include="SkiaSharp" Version="$(SkiaSharpVersion)" />
|
||||
<PackageReference Include="Splat.DryIoc" Version="14.6.8" />
|
||||
<PackageReference Include="System.Reactive" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -2,13 +2,16 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:aedit="https://github.com/avaloniaui/avaloniaedit"
|
||||
xmlns:controls="clr-namespace:Artemis.UI.Controls"
|
||||
xmlns:logs="clr-namespace:Artemis.UI.Screens.Debugger.Logs"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Debugger.Logs.LogsDebugView"
|
||||
x:DataType="logs:LogsDebugViewModel">
|
||||
<ScrollViewer Name="LogsScrollViewer" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
|
||||
<SelectableTextBlock Inlines="{CompiledBinding Lines}" FontFamily="Consolas" SizeChanged="Control_OnSizeChanged"></SelectableTextBlock>
|
||||
<SelectableTextBlock
|
||||
Inlines="{CompiledBinding Lines}"
|
||||
FontFamily="Consolas"
|
||||
SizeChanged="Control_OnSizeChanged"
|
||||
SelectionBrush="{StaticResource TextControlSelectionHighlightColor}"
|
||||
/>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
@ -10,50 +10,17 @@ namespace Artemis.UI.Screens.Debugger.Logs;
|
||||
|
||||
public partial class LogsDebugView : ReactiveUserControl<LogsDebugViewModel>
|
||||
{
|
||||
private int _lineCount;
|
||||
|
||||
public LogsDebugView()
|
||||
{
|
||||
_lineCount = 0;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
Dispatcher.UIThread.Post(() => LogsScrollViewer.ScrollToEnd(), DispatcherPriority.ApplicationIdle);
|
||||
}
|
||||
|
||||
// private void OnTextChanged(object? sender, EventArgs e)
|
||||
// {
|
||||
// if (LogTextEditor.ExtentHeight == 0)
|
||||
// return;
|
||||
//
|
||||
// int linesAdded = LogTextEditor.LineCount - _lineCount;
|
||||
// double lineHeight = LogTextEditor.ExtentHeight / LogTextEditor.LineCount;
|
||||
// double outOfScreenTextHeight = LogTextEditor.ExtentHeight - LogTextEditor.VerticalOffset - LogTextEditor.ViewportHeight;
|
||||
// double outOfScreenLines = outOfScreenTextHeight / lineHeight;
|
||||
//
|
||||
// //we need this help distance because of rounding.
|
||||
// //if we scroll slightly above the end, we still want it
|
||||
// //to scroll down to the new lines.
|
||||
// const double GRACE_DISTANCE = 1d;
|
||||
//
|
||||
// //if we were at the bottom of the log and
|
||||
// //if the last log event was 5 lines long
|
||||
// //we will be 5 lines out sync.
|
||||
// //if this is the case, scroll down.
|
||||
//
|
||||
// //if we are more than that out of sync,
|
||||
// //the user scrolled up and we should not
|
||||
// //mess with anything.
|
||||
// if (_lineCount == 0 || linesAdded + GRACE_DISTANCE > outOfScreenLines)
|
||||
// {
|
||||
// Dispatcher.UIThread.Post(() => LogTextEditor.ScrollToEnd(), DispatcherPriority.ApplicationIdle);
|
||||
// _lineCount = LogTextEditor.LineCount;
|
||||
// }
|
||||
// }
|
||||
private void Control_OnSizeChanged(object? sender, SizeChangedEventArgs e)
|
||||
{
|
||||
if (!(LogsScrollViewer.Extent.Height - LogsScrollViewer.Offset.Y - LogsScrollViewer.Bounds.Bottom <= 60))
|
||||
|
||||
@ -7,7 +7,9 @@ using ReactiveUI;
|
||||
using Serilog.Events;
|
||||
using Serilog.Formatting.Display;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Text;
|
||||
using Avalonia.Controls.Documents;
|
||||
using Avalonia.Media;
|
||||
|
||||
@ -54,7 +56,6 @@ public class LogsDebugViewModel : ActivatableViewModelBase
|
||||
_formatter.Format(logEvent, writer);
|
||||
string line = writer.ToString();
|
||||
|
||||
|
||||
Lines.Add(new Run(line.TrimEnd('\r', '\n') + '\n')
|
||||
{
|
||||
Foreground = logEvent.Level switch
|
||||
|
||||
@ -63,12 +63,7 @@ public partial class VisualEditorView : ReactiveUserControl<VisualEditorViewMode
|
||||
private void UpdateZoomBorderBackground()
|
||||
{
|
||||
if (ZoomBorder.Background is VisualBrush visualBrush)
|
||||
{
|
||||
visualBrush.DestinationRect = new RelativeRect(ZoomBorder.OffsetX * -1, ZoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute);
|
||||
// Workaround
|
||||
// This fixes an issue where the container is not invalidated, which leaves behind a 'smear' since Avalonia 11 rc1, check if still required later
|
||||
ZoomBorder.InvalidateVisual();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -48,11 +48,6 @@ public partial class SurfaceEditorView : ReactiveUserControl<SurfaceEditorViewMo
|
||||
private void UpdateZoomBorderBackground()
|
||||
{
|
||||
if (ContainerZoomBorder.Background is VisualBrush visualBrush)
|
||||
{
|
||||
visualBrush.DestinationRect = new RelativeRect(ContainerZoomBorder.OffsetX * -1, ContainerZoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute);
|
||||
// Workaround
|
||||
// This fixes an issue where the container is not invalidated, which leaves behind a 'smear' since Avalonia 11 rc1, check if still required later
|
||||
ContainerZoomBorder.InvalidateVisual();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -136,6 +136,10 @@ public class SurfaceEditorViewModel : ActivatableViewModelBase, IMainScreenViewM
|
||||
_saving = true;
|
||||
_rgbService.SaveDevices();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_windowService.ShowExceptionDialog("Failed to update device positions", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_saving = false;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
@ -8,14 +9,14 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.0-rc1.1" />
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="$(AvaloniaVersion)" />
|
||||
<PackageReference Include="DryIoc.dll" Version="5.4.0" />
|
||||
<PackageReference Include="NoStringEvaluating" Version="2.5.2" />
|
||||
<PackageReference Include="ReactiveUI" Version="18.4.26" />
|
||||
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
|
||||
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
||||
<PackageReference Include="SkiaSharp" Version="$(SkiaSharpVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -71,7 +71,7 @@ public class EnumSwitchNode : Node
|
||||
|
||||
foreach (Enum enumValue in Enum.GetValues(enumType).Cast<Enum>())
|
||||
{
|
||||
InputPin pin = CreateOrAddInputPin(typeof(object), enumValue.ToString().Humanize(LetterCasing.Sentence));
|
||||
InputPin pin = CreateOrAddInputPin(typeof(object), enumValue.Humanize(LetterCasing.Sentence));
|
||||
pin.PinConnected += OnInputPinConnected;
|
||||
pin.PinDisconnected += OnInputPinDisconnected;
|
||||
_inputPins[enumValue] = pin;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\Artemis.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
|
||||
8
src/Artemis.props
Normal file
8
src/Artemis.props
Normal file
@ -0,0 +1,8 @@
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<AvaloniaVersion>11.0.0</AvaloniaVersion>
|
||||
<FluentAvaloniaVersion>2.0.0</FluentAvaloniaVersion>
|
||||
<RGBDotNetVersion>2.0.0-prerelease.83</RGBDotNetVersion>
|
||||
<SkiaSharpVersion>2.88.3</SkiaSharpVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -21,6 +21,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.VisualScripting", "
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.WebClient.Updating", "Artemis.WebClient.Updating\Artemis.WebClient.Updating.csproj", "{7C8C6F50-0CC8-45B3-B608-A7218C005E4B}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{44482312-142F-44A4-992C-0AF0F26BAE54}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Artemis.props = Artemis.props
|
||||
Artemis.sln.DotSettings = Artemis.sln.DotSettings
|
||||
Artemis.sln.DotSettings.user = Artemis.sln.DotSettings.user
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user