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