diff --git a/src/Artemis.Core/DryIoc/Factories/LoggerFactory.cs b/src/Artemis.Core/DryIoc/Factories/LoggerFactory.cs index ba5e90db7..3aaa23f08 100644 --- a/src/Artemis.Core/DryIoc/Factories/LoggerFactory.cs +++ b/src/Artemis.Core/DryIoc/Factories/LoggerFactory.cs @@ -13,7 +13,10 @@ internal class LoggerFactory : ILoggerFactory internal static readonly ILogger Logger = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.File(Path.Combine(Constants.LogsFolder, "Artemis log-.log"), + fileSizeLimitBytes: 5 * 1024 * 1024, + rollOnFileSizeLimit: true, rollingInterval: RollingInterval.Day, + retainedFileCountLimit: 14, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] [{SourceContext}] {Message:lj}{NewLine}{Exception}") .WriteTo.Console() #if DEBUG diff --git a/src/Artemis.UI.Shared/Controls/ProfileConfigurationIcon.axaml.cs b/src/Artemis.UI.Shared/Controls/ProfileConfigurationIcon.axaml.cs index 9ad64cbf8..dd652f0d8 100644 --- a/src/Artemis.UI.Shared/Controls/ProfileConfigurationIcon.axaml.cs +++ b/src/Artemis.UI.Shared/Controls/ProfileConfigurationIcon.axaml.cs @@ -50,8 +50,8 @@ public partial class ProfileConfigurationIcon : UserControl, IDisposable { Dispatcher.UIThread.Post(() => { - Stream? stream = ConfigurationIcon.GetIconStream(); - if (stream == null) + Stream? stream = ConfigurationIcon?.GetIconStream(); + if (stream == null || ConfigurationIcon == null) Content = new MaterialIcon {Kind = MaterialIconKind.QuestionMark}; else LoadFromBitmap(ConfigurationIcon, stream); diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index e16e751b5..4dea86a84 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -44,28 +44,4 @@ - - - - - - - - - - - - - - - - - ProfileListEntryView.axaml - Code - - - StartupWizardView.axaml - Code - - \ No newline at end of file diff --git a/src/Artemis.UI/Routing/Routes.cs b/src/Artemis.UI/Routing/Routes.cs index cacfab87c..d2709888a 100644 --- a/src/Artemis.UI/Routing/Routes.cs +++ b/src/Artemis.UI/Routing/Routes.cs @@ -16,6 +16,7 @@ public static class Routes public static List ArtemisRoutes = new() { new RouteRegistration("home"), + #if DEBUG new RouteRegistration("workshop") { Children = new List() @@ -26,6 +27,7 @@ public static class Routes new RouteRegistration("layouts/{entryId:guid}") } }, + #endif new RouteRegistration("surface-editor"), new RouteRegistration("settings") { diff --git a/src/Artemis.UI/Screens/ProfileEditor/Panels/Properties/PropertiesViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/Panels/Properties/PropertiesViewModel.cs index 46228ff84..9ed832d8c 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/Panels/Properties/PropertiesViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/Panels/Properties/PropertiesViewModel.cs @@ -111,7 +111,6 @@ public class PropertiesViewModel : ActivatableViewModelBase } public RenderProfileElement? ProfileElement => _profileElement?.Value; - public Layer? Layer => _profileElement?.Value as Layer; public ILayerProperty? LayerProperty => _layerProperty?.Value; public bool SuspendedEditing => _suspendedEditing?.Value ?? false; @@ -133,26 +132,27 @@ public class PropertiesViewModel : ActivatableViewModelBase private void UpdatePropertyGroups() { - if (ProfileElement == null) + RenderProfileElement? profileElement = ProfileElement; + if (profileElement == null) { PropertyGroupViewModels.Clear(); return; } ObservableCollection viewModels = new(); - if (Layer != null) + if (profileElement is Layer layer) { // Add base VMs - viewModels.Add(GetOrCreatePropertyViewModel(Layer.General, null, null)); - viewModels.Add(GetOrCreatePropertyViewModel(Layer.Transform, null, null)); + viewModels.Add(GetOrCreatePropertyViewModel(layer.General, null, null)); + viewModels.Add(GetOrCreatePropertyViewModel(layer.Transform, null, null)); // Add brush VM if the brush has properties - if (Layer.LayerBrush?.BaseProperties != null) - viewModels.Add(GetOrCreatePropertyViewModel(Layer.LayerBrush.BaseProperties, Layer.LayerBrush, null)); + if (layer.LayerBrush?.BaseProperties != null) + viewModels.Add(GetOrCreatePropertyViewModel(layer.LayerBrush.BaseProperties, layer.LayerBrush, null)); } // Add effect VMs - foreach (BaseLayerEffect layerEffect in ProfileElement.LayerEffects.OrderBy(e => e.Order)) + foreach (BaseLayerEffect layerEffect in profileElement.LayerEffects.OrderBy(e => e.Order)) { if (layerEffect.BaseProperties != null) viewModels.Add(GetOrCreatePropertyViewModel(layerEffect.BaseProperties, null, layerEffect)); diff --git a/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml b/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml index c2c394214..378f37b64 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml +++ b/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabView.axaml @@ -45,7 +45,7 @@ - + Enable Mica effect @@ -56,7 +56,7 @@ - + diff --git a/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs index ca707b9e3..110c948e8 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/GeneralTabViewModel.cs @@ -20,6 +20,7 @@ using Artemis.UI.Shared.Services.Builders; using Avalonia.Threading; using DryIoc; using DynamicData; +using FluentAvalonia.Interop; using ReactiveUI; using Serilog.Events; @@ -95,6 +96,7 @@ public class GeneralTabViewModel : ActivatableViewModelBase public ReactiveCommand ShowDataFolder { get; } public bool IsAutoRunSupported => _autoRunProvider != null; + public bool IsWindows11 => OSVersionHelper.IsWindows11(); public ObservableCollection LayerBrushDescriptors { get; } public ObservableCollection GraphicsContexts { get; } diff --git a/src/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs b/src/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs index 3e666815b..039cc2404 100644 --- a/src/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs +++ b/src/Artemis.UI/Screens/Sidebar/SidebarViewModel.cs @@ -39,11 +39,13 @@ public class SidebarViewModel : ActivatableViewModelBase SidebarScreen = new SidebarScreenViewModel(MaterialIconKind.Abacus, ROOT_SCREEN, "", null, new ObservableCollection() { new(MaterialIconKind.HomeOutline, "Home", "home"), + #if DEBUG new(MaterialIconKind.TestTube, "Workshop", "workshop", null, new ObservableCollection { new(MaterialIconKind.FolderVideo, "Profiles", "workshop/profiles/1", "workshop/profiles"), new(MaterialIconKind.KeyboardVariant, "Layouts", "workshop/layouts/1", "workshop/layouts"), }), + #endif new(MaterialIconKind.Devices, "Surface Editor", "surface-editor"), new(MaterialIconKind.SettingsOutline, "Settings", "settings") }); diff --git a/src/Artemis.UI/Styles/Artemis.axaml b/src/Artemis.UI/Styles/Artemis.axaml index a121ec71b..3b700ecdc 100644 --- a/src/Artemis.UI/Styles/Artemis.axaml +++ b/src/Artemis.UI/Styles/Artemis.axaml @@ -12,7 +12,7 @@ - + diff --git a/src/Artemis.props b/src/Artemis.props index 8bbeacbcb..a03be36cb 100644 --- a/src/Artemis.props +++ b/src/Artemis.props @@ -1,8 +1,8 @@ - 11.0.1 - 2.0.0 - 2.0.0-prerelease.83 + 11.0.2 + 2.0.1 + 2.0.0-prerelease.94 2.88.3 \ No newline at end of file