1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-12 13:28:33 +00:00

Merge branch 'master' into feature/workshop

This commit is contained in:
Robert 2023-07-22 09:45:57 +02:00
commit 0e077e31b3
6 changed files with 24 additions and 41 deletions

View File

@ -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();
}
}

View File

@ -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)

View File

@ -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>

View File

@ -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))

View File

@ -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

View File

@ -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;