mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Meta - Updated Nuget packages
Settings - Changed where panels start scrolling Home - Clip cards to bounds Sidebar - Added category creation/renaming Debugger - Fixed existing window focus Tray icon - Implemented all functionality
This commit is contained in:
parent
955b223b35
commit
4c5c785aa6
@ -89,8 +89,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"McMaster.NETCore.Plugins": {
|
||||
"type": "Transitive",
|
||||
@ -1217,7 +1217,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1238,7 +1238,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
<PackageReference Include="EmbedIO" Version="3.4.3" />
|
||||
<PackageReference Include="HidSharp" Version="2.1.0" />
|
||||
<PackageReference Include="Humanizer.Core" Version="2.11.10" />
|
||||
<PackageReference Include="LiteDB" Version="5.0.10" />
|
||||
<PackageReference Include="LiteDB" Version="5.0.11" />
|
||||
<PackageReference Include="McMaster.NETCore.Plugins" Version="1.4.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="Ninject" Version="3.3.4" />
|
||||
|
||||
@ -25,9 +25,9 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Direct",
|
||||
"requested": "[5.0.10, )",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"requested": "[5.0.11, )",
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"McMaster.NETCore.Plugins": {
|
||||
"type": "Direct",
|
||||
@ -1225,7 +1225,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LiteDB" Version="5.0.10" />
|
||||
<PackageReference Include="LiteDB" Version="5.0.11" />
|
||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -4,9 +4,9 @@
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"LiteDB": {
|
||||
"type": "Direct",
|
||||
"requested": "[5.0.10, )",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"requested": "[5.0.11, )",
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Serilog": {
|
||||
"type": "Direct",
|
||||
|
||||
@ -689,6 +689,17 @@
|
||||
Represents errors that occur within the Artemis Shared UI library
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Artemis.UI.Shared.Extensions.ControlExtensions">
|
||||
<summary>
|
||||
Provides extension methods for Avalonia's <see cref="T:Avalonia.Controls.Control" /> type
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Artemis.UI.Shared.Extensions.ControlExtensions.ClearAllDataValidationErrors(Avalonia.Controls.Control)">
|
||||
<summary>
|
||||
Clears all data validation errors on the given control and any of it's logical siblings
|
||||
</summary>
|
||||
<param name="target">The target control</param>
|
||||
</member>
|
||||
<member name="T:Artemis.UI.Shared.Ninject.SharedUIModule">
|
||||
<summary>
|
||||
The main <see cref="T:Ninject.Modules.NinjectModule" /> of the Artemis Shared UI toolkit that binds all services
|
||||
@ -1070,6 +1081,41 @@
|
||||
Occurs when the main window has been closed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Artemis.UI.Shared.ContentDialogViewModelBase">
|
||||
<summary>
|
||||
Represents the base class for Artemis view models
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Artemis.UI.Shared.ContentDialogViewModelBase.ContentDialog">
|
||||
<summary>
|
||||
Gets the content dialog that hosts the view model
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Artemis.UI.Shared.ContentDialogViewModelBase.Activator">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Artemis.UI.Shared.ContentDialogViewModelBase.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Releases the unmanaged resources used by the object and optionally releases the managed resources.
|
||||
</summary>
|
||||
<param name="disposing">
|
||||
<see langword="true" /> to release both managed and unmanaged resources;
|
||||
<see langword="false" /> to release only unmanaged resources.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:Artemis.UI.Shared.ContentDialogViewModelBase.Dispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Artemis.UI.Shared.ViewModelValidationBase">
|
||||
<summary>
|
||||
Represents the base class for Artemis view models
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Artemis.UI.Shared.ViewModelValidationBase.DisplayName">
|
||||
<summary>
|
||||
Gets or sets the display name of the view model
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Artemis.UI.Shared.ViewModelBase">
|
||||
<summary>
|
||||
Represents the base class for Artemis view models
|
||||
|
||||
@ -136,8 +136,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"MaterialDesignColors": {
|
||||
"type": "Transitive",
|
||||
@ -1297,7 +1297,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1318,7 +1318,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -254,8 +254,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"MaterialDesignColors": {
|
||||
"type": "Transitive",
|
||||
@ -1443,7 +1443,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1464,7 +1464,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
|
||||
@ -91,8 +91,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"MaterialDesignColors": {
|
||||
"type": "Transitive",
|
||||
@ -1303,7 +1303,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1324,7 +1324,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
|
||||
@ -71,10 +71,10 @@
|
||||
},
|
||||
"Avalonia.Controls.PanAndZoom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "zIQhp86CdV7xmFXFkaQBDNDr0WSyumEdJvqvIrywG5SEQK3HzACt0gR85KX19DHTlkJlnUVjmfkTEiPjwvgGtA==",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "oUpQm2frhjWll5QWLx8Uzc2VWDNXgPqONlNBLu2gFBis1lkce1jjZvu423U7RNfvg1rOMeZoeiodZq7xZ02STA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
@ -113,13 +113,13 @@
|
||||
},
|
||||
"Avalonia.Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8.3",
|
||||
"contentHash": "w7RYf+8+gOI3uVZZJ59S0EP49LVsyr1jpnZQzVFQqKa3y/c/i2jT/EUoKOeaqPMhFIsQZyEF4iluqoo6aZ05Tw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "7xQkg3b/djGjGQe6ODxCY+LxMeZ0MtSFUOeEu8IMMUG89gueptuS84GZMRY27xG8lvjP3Mu8B1p3/YY5u7UiDg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"Svg.Skia": "0.5.8.3"
|
||||
"Svg.Skia": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
@ -145,27 +145,27 @@
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "iSVOObfXch8vFzhYFvwGntRt4l4kg+dxXYc4C4RDhnoyPh60BCMUzdk2gYUYySv9UVSGAhqH4dQPWZ0l9USmYA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "OAwrl0tzsz+iX2z3T5wdsEG/JkbnlylfXUjCfbgQlQqODUBO0kk02RpCHJMnV86apkVXjeLV+S5+yA1yX+DT6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "RH33/HboQikon64SCfu1qFpuy4+mox2SEGYbXrrw9mnw3Ogw8PeYTJLtZw8/mNYs6dZAU3NusRBaLIG+0PGisw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
@ -189,8 +189,8 @@
|
||||
},
|
||||
"DynamicData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "7.1.1",
|
||||
"contentHash": "Pc6J5bFnSxEa64PV2V67FMcLlDdpv6m+zTBKSnRN3aLon/WtWWy8kuDpHFbJlgXHtqc6Nxloj9ItuvDlvKC/8w==",
|
||||
"resolved": "7.3.1",
|
||||
"contentHash": "E9oTvWlAgzct0MuWt6k+0s+nSDA3LkFVvDwkMUTklIZZnva314KZAEF2vG4XX9I98ia+EpMqjte67jWEBJlsRw==",
|
||||
"dependencies": {
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -210,12 +210,12 @@
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"resolved": "1.1.6",
|
||||
"contentHash": "EJukyiTmEVhaYlHdntFMyQKI4+u772rSClKYQqJRfkTb1NoJXLqiIVqMjx8ZQ0pxnfih+6CZ7+x82lfrGHIPUw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Flurl": {
|
||||
@ -269,8 +269,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Live.Avalonia": {
|
||||
"type": "Transitive",
|
||||
@ -505,13 +505,19 @@
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.2.10",
|
||||
"contentHash": "fOCbEZ+RsO2Jhv6vB8VX+ZEvczYJaC95atcSG7oXohJeL/sEwbbqvv9k+tbj2l4bRSj2j5CQvhwA3HNLaxlCAg==",
|
||||
"resolved": "16.2.6",
|
||||
"contentHash": "jf1RvD8HxHuA6CGQtheGHUCHzRrhpvo0z593Npsz7g8KJWXfGR45Dc9bILJHoymBxhdDD1L1WjUfh0fcucIPPg==",
|
||||
"dependencies": {
|
||||
"DynamicData": "7.1.1",
|
||||
"Splat": "10.0.1",
|
||||
"System.Reactive": "5.0.0",
|
||||
"System.Runtime.Serialization.Primitives": "4.3.0"
|
||||
"DynamicData": "7.3.1",
|
||||
"Splat": "13.1.1"
|
||||
}
|
||||
},
|
||||
"ReactiveUI.Validation": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.2.1",
|
||||
"contentHash": "rhEphZ4ErbGfNtbBQ/tYMsLJYHyLVyqidU+sgZ3kXKbS7QrNoM4j6PPxCwLMKsJUuvVL8JN45xgmB9tSwm7+lg==",
|
||||
"dependencies": {
|
||||
"ReactiveUI": "16.2.6"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
@ -652,8 +658,8 @@
|
||||
},
|
||||
"ShimSkiaSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "BWwwsIlYUFF0DUc8Pa9xONIXVDvEL9pOYc9YmWilpHrWC37dcK+H4+tfuxztZxtfJx559HGn+6iZmMDjfFoOxA=="
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "G1ltdwS5+eMhMCoMx31hHjFIznGAjdUK7xAg8raFMFbN09p2tuxzvK7cKbveWm8SEAGIW7NgDyEqGGJzrPrMrg=="
|
||||
},
|
||||
"SkiaSharp": {
|
||||
"type": "Transitive",
|
||||
@ -682,22 +688,22 @@
|
||||
},
|
||||
"Splat": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "yaj3r8CvHQwtvhfTi+dp5LpIb3c4svqe/tL6LdAS8wWP+dXAp3fTCLjYx21TrW1QBFTBJcg9lrJqDPbheSzHbA=="
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "7iW45RA7AbSlQPCgdokmysva5PGd6iBUhuNkC0XD73LF9dxfTkKeo3wZkohU7nvspDhJ7PJsYHvDtxIt5bMQ8Q=="
|
||||
},
|
||||
"Splat.Ninject": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "hYgyD12Syt2l8U/KccMzNUj4nmrdULjoRTF4g5Q9XtVWPrcdTYmLEdcX/prZEWaFT7vGNP6x9uFXvOlM7Jc+gg==",
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "rTF0HSa6p8nxrXj2hwVgkutcTDJUXY34sY+zYK4ky65b7a0ROL8kdiYyxVVLE4Lq31N5Rcd4bBbqlPkgwZguww==",
|
||||
"dependencies": {
|
||||
"Ninject": "3.3.4",
|
||||
"Splat": "13.1.30"
|
||||
"Splat": "13.1.63"
|
||||
}
|
||||
},
|
||||
"Svg.Custom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "6FnbI4T3uCNN7DYJpfPFa4caTTJzp4YbhU3J4c/syX7wQNSeQ/1u7JZZ+dGgrRUauiWP8VsiCLKP8qinc5xI5w==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Ypi/4NxDxjM24vsK+4Uit08aJUFHcZZpB5Ctb7FLMVevMq0hYeDqzKp6OVLFO5UCX/TxUfRiL1u9F7fvUDA0tQ==",
|
||||
"dependencies": {
|
||||
"Fizzler": "1.2.0",
|
||||
"System.Drawing.Common": "5.0.0",
|
||||
@ -708,22 +714,22 @@
|
||||
},
|
||||
"Svg.Model": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "F/rimPwV5KF64P8oofXGMwOZ0T7b3z1A9OiC4mv5OdSpLpMpUxpSwGLAOkJ5DFqQgXqVjKKLhPdjIjQBwy0AjA==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "sh5W7VpghtFjDnPOMa+CEiIKpJPmkb7FxNuHnB2sLZwJR2qzyVlZaBWM95VaRAXlOU8c0qbtA5ZNVREOpzLQRw==",
|
||||
"dependencies": {
|
||||
"ShimSkiaSharp": "0.5.8.3",
|
||||
"Svg.Custom": "0.5.8.3"
|
||||
"ShimSkiaSharp": "0.5.10",
|
||||
"Svg.Custom": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "ajQ0aINQtEzWkqEXyJjnwqOFNusWNMHJVGrKa1ISbP21nrWJh+tApydLFVFGGjs91d7K3YOUbWDKlEzzdDQaOg==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Xz/nd+5dNJAh7IbfjyduWIJAtpHNqMopX+ORg6ZNnW6l1I7lK20KHlSdMNy9c18vALrA95eU8WFo00nloLVUkQ==",
|
||||
"dependencies": {
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.HarfBuzz": "2.80.2",
|
||||
"Svg.Custom": "0.5.8.3",
|
||||
"Svg.Model": "0.5.8.3"
|
||||
"Svg.Custom": "0.5.10",
|
||||
"Svg.Model": "0.5.10"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
@ -1335,15 +1341,6 @@
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
@ -1658,7 +1655,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1679,7 +1676,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
@ -1689,16 +1686,17 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Artemis.UI.Shared": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Controls.PanAndZoom": "4.2.0",
|
||||
"Avalonia.Controls.PanAndZoom": "4.3.0",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Flurl.Http": "3.2.0",
|
||||
"Live.Avalonia": "1.3.1",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"Splat.Ninject": "13.1.30"
|
||||
"ReactiveUI.Validation": "2.2.1",
|
||||
"Splat.Ninject": "13.1.63"
|
||||
}
|
||||
},
|
||||
"artemis.ui.shared": {
|
||||
@ -1707,12 +1705,13 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Material.Icons.Avalonia": "1.0.2"
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"ReactiveUI.Validation": "2.2.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,10 +71,10 @@
|
||||
},
|
||||
"Avalonia.Controls.PanAndZoom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "zIQhp86CdV7xmFXFkaQBDNDr0WSyumEdJvqvIrywG5SEQK3HzACt0gR85KX19DHTlkJlnUVjmfkTEiPjwvgGtA==",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "oUpQm2frhjWll5QWLx8Uzc2VWDNXgPqONlNBLu2gFBis1lkce1jjZvu423U7RNfvg1rOMeZoeiodZq7xZ02STA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
@ -113,13 +113,13 @@
|
||||
},
|
||||
"Avalonia.Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8.3",
|
||||
"contentHash": "w7RYf+8+gOI3uVZZJ59S0EP49LVsyr1jpnZQzVFQqKa3y/c/i2jT/EUoKOeaqPMhFIsQZyEF4iluqoo6aZ05Tw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "7xQkg3b/djGjGQe6ODxCY+LxMeZ0MtSFUOeEu8IMMUG89gueptuS84GZMRY27xG8lvjP3Mu8B1p3/YY5u7UiDg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"Svg.Skia": "0.5.8.3"
|
||||
"Svg.Skia": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
@ -145,27 +145,27 @@
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "iSVOObfXch8vFzhYFvwGntRt4l4kg+dxXYc4C4RDhnoyPh60BCMUzdk2gYUYySv9UVSGAhqH4dQPWZ0l9USmYA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "OAwrl0tzsz+iX2z3T5wdsEG/JkbnlylfXUjCfbgQlQqODUBO0kk02RpCHJMnV86apkVXjeLV+S5+yA1yX+DT6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "RH33/HboQikon64SCfu1qFpuy4+mox2SEGYbXrrw9mnw3Ogw8PeYTJLtZw8/mNYs6dZAU3NusRBaLIG+0PGisw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
@ -189,8 +189,8 @@
|
||||
},
|
||||
"DynamicData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "7.1.1",
|
||||
"contentHash": "Pc6J5bFnSxEa64PV2V67FMcLlDdpv6m+zTBKSnRN3aLon/WtWWy8kuDpHFbJlgXHtqc6Nxloj9ItuvDlvKC/8w==",
|
||||
"resolved": "7.3.1",
|
||||
"contentHash": "E9oTvWlAgzct0MuWt6k+0s+nSDA3LkFVvDwkMUTklIZZnva314KZAEF2vG4XX9I98ia+EpMqjte67jWEBJlsRw==",
|
||||
"dependencies": {
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -210,12 +210,12 @@
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"resolved": "1.1.6",
|
||||
"contentHash": "EJukyiTmEVhaYlHdntFMyQKI4+u772rSClKYQqJRfkTb1NoJXLqiIVqMjx8ZQ0pxnfih+6CZ7+x82lfrGHIPUw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Flurl": {
|
||||
@ -269,8 +269,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Live.Avalonia": {
|
||||
"type": "Transitive",
|
||||
@ -505,13 +505,19 @@
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.2.10",
|
||||
"contentHash": "fOCbEZ+RsO2Jhv6vB8VX+ZEvczYJaC95atcSG7oXohJeL/sEwbbqvv9k+tbj2l4bRSj2j5CQvhwA3HNLaxlCAg==",
|
||||
"resolved": "16.2.6",
|
||||
"contentHash": "jf1RvD8HxHuA6CGQtheGHUCHzRrhpvo0z593Npsz7g8KJWXfGR45Dc9bILJHoymBxhdDD1L1WjUfh0fcucIPPg==",
|
||||
"dependencies": {
|
||||
"DynamicData": "7.1.1",
|
||||
"Splat": "10.0.1",
|
||||
"System.Reactive": "5.0.0",
|
||||
"System.Runtime.Serialization.Primitives": "4.3.0"
|
||||
"DynamicData": "7.3.1",
|
||||
"Splat": "13.1.1"
|
||||
}
|
||||
},
|
||||
"ReactiveUI.Validation": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.2.1",
|
||||
"contentHash": "rhEphZ4ErbGfNtbBQ/tYMsLJYHyLVyqidU+sgZ3kXKbS7QrNoM4j6PPxCwLMKsJUuvVL8JN45xgmB9tSwm7+lg==",
|
||||
"dependencies": {
|
||||
"ReactiveUI": "16.2.6"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
@ -652,8 +658,8 @@
|
||||
},
|
||||
"ShimSkiaSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "BWwwsIlYUFF0DUc8Pa9xONIXVDvEL9pOYc9YmWilpHrWC37dcK+H4+tfuxztZxtfJx559HGn+6iZmMDjfFoOxA=="
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "G1ltdwS5+eMhMCoMx31hHjFIznGAjdUK7xAg8raFMFbN09p2tuxzvK7cKbveWm8SEAGIW7NgDyEqGGJzrPrMrg=="
|
||||
},
|
||||
"SkiaSharp": {
|
||||
"type": "Transitive",
|
||||
@ -682,22 +688,22 @@
|
||||
},
|
||||
"Splat": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "yaj3r8CvHQwtvhfTi+dp5LpIb3c4svqe/tL6LdAS8wWP+dXAp3fTCLjYx21TrW1QBFTBJcg9lrJqDPbheSzHbA=="
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "7iW45RA7AbSlQPCgdokmysva5PGd6iBUhuNkC0XD73LF9dxfTkKeo3wZkohU7nvspDhJ7PJsYHvDtxIt5bMQ8Q=="
|
||||
},
|
||||
"Splat.Ninject": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "hYgyD12Syt2l8U/KccMzNUj4nmrdULjoRTF4g5Q9XtVWPrcdTYmLEdcX/prZEWaFT7vGNP6x9uFXvOlM7Jc+gg==",
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "rTF0HSa6p8nxrXj2hwVgkutcTDJUXY34sY+zYK4ky65b7a0ROL8kdiYyxVVLE4Lq31N5Rcd4bBbqlPkgwZguww==",
|
||||
"dependencies": {
|
||||
"Ninject": "3.3.4",
|
||||
"Splat": "13.1.30"
|
||||
"Splat": "13.1.63"
|
||||
}
|
||||
},
|
||||
"Svg.Custom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "6FnbI4T3uCNN7DYJpfPFa4caTTJzp4YbhU3J4c/syX7wQNSeQ/1u7JZZ+dGgrRUauiWP8VsiCLKP8qinc5xI5w==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Ypi/4NxDxjM24vsK+4Uit08aJUFHcZZpB5Ctb7FLMVevMq0hYeDqzKp6OVLFO5UCX/TxUfRiL1u9F7fvUDA0tQ==",
|
||||
"dependencies": {
|
||||
"Fizzler": "1.2.0",
|
||||
"System.Drawing.Common": "5.0.0",
|
||||
@ -708,22 +714,22 @@
|
||||
},
|
||||
"Svg.Model": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "F/rimPwV5KF64P8oofXGMwOZ0T7b3z1A9OiC4mv5OdSpLpMpUxpSwGLAOkJ5DFqQgXqVjKKLhPdjIjQBwy0AjA==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "sh5W7VpghtFjDnPOMa+CEiIKpJPmkb7FxNuHnB2sLZwJR2qzyVlZaBWM95VaRAXlOU8c0qbtA5ZNVREOpzLQRw==",
|
||||
"dependencies": {
|
||||
"ShimSkiaSharp": "0.5.8.3",
|
||||
"Svg.Custom": "0.5.8.3"
|
||||
"ShimSkiaSharp": "0.5.10",
|
||||
"Svg.Custom": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "ajQ0aINQtEzWkqEXyJjnwqOFNusWNMHJVGrKa1ISbP21nrWJh+tApydLFVFGGjs91d7K3YOUbWDKlEzzdDQaOg==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Xz/nd+5dNJAh7IbfjyduWIJAtpHNqMopX+ORg6ZNnW6l1I7lK20KHlSdMNy9c18vALrA95eU8WFo00nloLVUkQ==",
|
||||
"dependencies": {
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.HarfBuzz": "2.80.2",
|
||||
"Svg.Custom": "0.5.8.3",
|
||||
"Svg.Model": "0.5.8.3"
|
||||
"Svg.Custom": "0.5.10",
|
||||
"Svg.Model": "0.5.10"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
@ -1335,15 +1341,6 @@
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
@ -1658,7 +1655,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1679,7 +1676,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
@ -1689,16 +1686,17 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Artemis.UI.Shared": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Controls.PanAndZoom": "4.2.0",
|
||||
"Avalonia.Controls.PanAndZoom": "4.3.0",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Flurl.Http": "3.2.0",
|
||||
"Live.Avalonia": "1.3.1",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"Splat.Ninject": "13.1.30"
|
||||
"ReactiveUI.Validation": "2.2.1",
|
||||
"Splat.Ninject": "13.1.63"
|
||||
}
|
||||
},
|
||||
"artemis.ui.shared": {
|
||||
@ -1707,12 +1705,13 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Material.Icons.Avalonia": "1.0.2"
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"ReactiveUI.Validation": "2.2.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,12 +18,13 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactions" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="0.10.10" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="0.10.10.4" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactions" Version="0.10.10.4" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="0.10.10.4" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.6" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
|
||||
<PackageReference Include="ReactiveUI.Validation" Version="2.2.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="DefaultTypes\DataModel\Display\DefaultDataModelDisplayView.xaml">
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.LogicalTree;
|
||||
|
||||
namespace Artemis.UI.Shared.Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides extension methods for Avalonia's <see cref="Control" /> type
|
||||
/// </summary>
|
||||
public static class ControlExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Clears all data validation errors on the given control and any of it's logical siblings
|
||||
/// </summary>
|
||||
/// <param name="target">The target control</param>
|
||||
public static void ClearAllDataValidationErrors(this Control target)
|
||||
{
|
||||
DataValidationErrors.ClearErrors(target);
|
||||
foreach (ILogical logicalChild in target.GetLogicalChildren())
|
||||
{
|
||||
if (logicalChild is Control childControl)
|
||||
childControl.ClearAllDataValidationErrors();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ using Avalonia.Controls;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using Ninject;
|
||||
using Ninject.Parameters;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Shared.Services.Builders
|
||||
{
|
||||
@ -14,6 +15,7 @@ namespace Artemis.UI.Shared.Services.Builders
|
||||
private readonly ContentDialog _contentDialog;
|
||||
private readonly IKernel _kernel;
|
||||
private readonly Window _parent;
|
||||
private ContentDialogViewModelBase? _viewModel;
|
||||
|
||||
internal ContentDialogBuilder(IKernel kernel, Window parent)
|
||||
{
|
||||
@ -53,6 +55,13 @@ namespace Artemis.UI.Shared.Services.Builders
|
||||
_contentDialog.PrimaryButtonCommand = builder.Command;
|
||||
_contentDialog.PrimaryButtonCommandParameter = builder.CommandParameter;
|
||||
|
||||
// I feel like this isn't my responsibility...
|
||||
if (builder.Command != null)
|
||||
{
|
||||
_contentDialog.IsPrimaryButtonEnabled = builder.Command.CanExecute(builder.CommandParameter);
|
||||
builder.Command.CanExecuteChanged += (_, _) => _contentDialog.IsPrimaryButtonEnabled = builder.Command.CanExecute(builder.CommandParameter);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -66,6 +75,13 @@ namespace Artemis.UI.Shared.Services.Builders
|
||||
_contentDialog.SecondaryButtonCommand = builder.Command;
|
||||
_contentDialog.SecondaryButtonCommandParameter = builder.CommandParameter;
|
||||
|
||||
// I feel like this isn't my responsibility...
|
||||
if (builder.Command != null)
|
||||
{
|
||||
_contentDialog.IsSecondaryButtonEnabled = builder.Command.CanExecute(builder.CommandParameter);
|
||||
builder.Command.CanExecuteChanged += (_, _) => _contentDialog.IsSecondaryButtonEnabled = builder.Command.CanExecute(builder.CommandParameter);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -75,24 +91,32 @@ namespace Artemis.UI.Shared.Services.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentDialogBuilder WithViewModel<T>(out T viewModel, params (string name, object value)[] parameters) where T : ViewModelBase
|
||||
public ContentDialogBuilder WithViewModel<T>(out T viewModel, params (string name, object? value)[] parameters) where T : ContentDialogViewModelBase
|
||||
{
|
||||
IParameter[] paramsArray = parameters.Select(kv => new ConstructorArgument(kv.name, kv.value)).Cast<IParameter>().ToArray();
|
||||
viewModel = _kernel.Get<T>(paramsArray);
|
||||
viewModel.ContentDialog = _contentDialog;
|
||||
_contentDialog.Content = viewModel;
|
||||
|
||||
_viewModel = viewModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public async Task<ContentDialogResult> ShowAsync()
|
||||
{
|
||||
if (_parent.Content is not Panel panel)
|
||||
return ContentDialogResult.None;
|
||||
throw new ArtemisSharedUIException($"The parent window {_parent.GetType().FullName} should contain a panel at its root");
|
||||
|
||||
try
|
||||
{
|
||||
panel.Children.Add(_contentDialog);
|
||||
return await _contentDialog.ShowAsync();
|
||||
ContentDialogResult result = await _contentDialog.ShowAsync();
|
||||
|
||||
// Take the dialog away from the VM in case it's going to try to hide it again or whatever...
|
||||
if (_viewModel != null)
|
||||
_viewModel.ContentDialog = null;
|
||||
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@ -142,7 +142,7 @@ namespace Artemis.UI.Shared.Services
|
||||
throw new ArtemisSharedUIException("Can't show a dialog when application lifetime is not IClassicDesktopStyleApplicationLifetime.");
|
||||
}
|
||||
|
||||
Window? parent = classic.Windows.FirstOrDefault(w => w.IsActive) ?? classic.MainWindow;
|
||||
Window? parent = classic.Windows.FirstOrDefault(w => w.IsActive && w.ShowInTaskbar) ?? classic.MainWindow;
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,69 @@
|
||||
using System;
|
||||
using System.Reactive.Disposables;
|
||||
using Artemis.UI.Shared.Events;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using ReactiveUI;
|
||||
using ReactiveUI.Validation.Helpers;
|
||||
|
||||
namespace Artemis.UI.Shared
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents the base class for Artemis view models
|
||||
/// </summary>
|
||||
public abstract class ContentDialogViewModelBase : ReactiveValidationObject, IActivatableViewModel, IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the content dialog that hosts the view model
|
||||
/// </summary>
|
||||
public ContentDialog? ContentDialog { get; internal set; }
|
||||
|
||||
#region Implementation of IActivatableViewModel
|
||||
|
||||
/// <inheritdoc />
|
||||
public ViewModelActivator Activator { get; } = new();
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable
|
||||
|
||||
/// <summary>
|
||||
/// Releases the unmanaged resources used by the object and optionally releases the managed resources.
|
||||
/// </summary>
|
||||
/// <param name="disposing">
|
||||
/// <see langword="true" /> to release both managed and unmanaged resources;
|
||||
/// <see langword="false" /> to release only unmanaged resources.
|
||||
/// </param>
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents the base class for Artemis view models
|
||||
/// </summary>
|
||||
public abstract class ViewModelValidationBase : ReactiveValidationObject
|
||||
{
|
||||
private string? _displayName;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the display name of the view model
|
||||
/// </summary>
|
||||
public string? DisplayName
|
||||
{
|
||||
get => _displayName;
|
||||
set => this.RaiseAndSetIfChanged(ref _displayName, value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents the base class for Artemis view models
|
||||
/// </summary>
|
||||
|
||||
@ -30,55 +30,55 @@
|
||||
},
|
||||
"Avalonia.Svg.Skia": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8.3, )",
|
||||
"resolved": "0.10.8.3",
|
||||
"contentHash": "w7RYf+8+gOI3uVZZJ59S0EP49LVsyr1jpnZQzVFQqKa3y/c/i2jT/EUoKOeaqPMhFIsQZyEF4iluqoo6aZ05Tw==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "7xQkg3b/djGjGQe6ODxCY+LxMeZ0MtSFUOeEu8IMMUG89gueptuS84GZMRY27xG8lvjP3Mu8B1p3/YY5u7UiDg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"Svg.Skia": "0.5.8.3"
|
||||
"Svg.Skia": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"requested": "[0.10.10.4, )",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "iSVOObfXch8vFzhYFvwGntRt4l4kg+dxXYc4C4RDhnoyPh60BCMUzdk2gYUYySv9UVSGAhqH4dQPWZ0l9USmYA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"requested": "[0.10.10.4, )",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "OAwrl0tzsz+iX2z3T5wdsEG/JkbnlylfXUjCfbgQlQqODUBO0kk02RpCHJMnV86apkVXjeLV+S5+yA1yX+DT6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"requested": "[0.10.10.4, )",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "RH33/HboQikon64SCfu1qFpuy4+mox2SEGYbXrrw9mnw3Ogw8PeYTJLtZw8/mNYs6dZAU3NusRBaLIG+0PGisw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.1.5, )",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"requested": "[1.1.6, )",
|
||||
"resolved": "1.1.6",
|
||||
"contentHash": "EJukyiTmEVhaYlHdntFMyQKI4+u772rSClKYQqJRfkTb1NoJXLqiIVqMjx8ZQ0pxnfih+6CZ7+x82lfrGHIPUw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Material.Icons.Avalonia": {
|
||||
@ -91,6 +91,15 @@
|
||||
"Material.Icons": "1.0.2"
|
||||
}
|
||||
},
|
||||
"ReactiveUI.Validation": {
|
||||
"type": "Direct",
|
||||
"requested": "[2.2.1, )",
|
||||
"resolved": "2.2.1",
|
||||
"contentHash": "rhEphZ4ErbGfNtbBQ/tYMsLJYHyLVyqidU+sgZ3kXKbS7QrNoM4j6PPxCwLMKsJUuvVL8JN45xgmB9tSwm7+lg==",
|
||||
"dependencies": {
|
||||
"ReactiveUI": "16.2.6"
|
||||
}
|
||||
},
|
||||
"Avalonia.Angle.Windows.Natives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.1.0.2020091801",
|
||||
@ -98,53 +107,53 @@
|
||||
},
|
||||
"Avalonia.Controls.DataGrid": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "AiBcvRi6Dbu0q45l2rQYa0uh05VsM2NYtjrAi2KKjDlu7c9molsZ2hFAKzhf0ugxgRT5tLMHAUA2urCWCzDzFw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "AsKm4xBJuCnIdUibNnsU5mNd6+kivhO5gEmpzO9+kNvVZCXxJkKZfmqS+9ghqXnF5c4BDYF5BPvPjZ1cP/jn7Q==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Remote.Protocol": "0.10.9",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Remote.Protocol": "0.10.10",
|
||||
"JetBrains.Annotations": "10.3.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.Desktop": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "RWWfnBpslILJEqrdVySJP4leZfINXNiTIsNVEs/pKM5cBM/rwlCAKnfKASKgkbAfBByknUpmJd4PgLoavabz3w==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "K23aC2UxplUqbKvSehgcwLRU0dACRLSQGLs3bXKKW1n6ICXtWhwqSmx8a1Ju0PbbQISRfoc0IjHoAXlGRNZ1dA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Native": "0.10.9",
|
||||
"Avalonia.Skia": "0.10.9",
|
||||
"Avalonia.Win32": "0.10.9",
|
||||
"Avalonia.X11": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Native": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"Avalonia.Win32": "0.10.10",
|
||||
"Avalonia.X11": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Diagnostics": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "Zc6iMO1TLRMvEi7pwRnpq/jlPyHvz0HotrJelyQs3VYzbrLxNy4YvLfiuWeIT9b3DCozD7V8blzgN7NSBU2mPg==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "k4VA+uch7Xtd6kqp+A6XEpsVuARseIh6PQtarI3lxcTFFrNbxDZhD1nXUILXrnp44uQ7JPGpKYGlJ0EElfxhbA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Controls.DataGrid": "0.10.9",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Controls.DataGrid": "0.10.10",
|
||||
"Microsoft.CodeAnalysis.CSharp.Scripting": "3.4.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "SG1hwJNktnCrDK4COtL+IArd2CbAlHBDAYP8wnTEVfnmrAsGvSijvICN8jrNRQnomYRNgA5TjsEFq5Vz8Z9PPQ==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "pflbsb3CQkZH6T7NCG16Cu/LhA0kJD2ZvRprjzueIWonuS4pxF231Z2T3xv5LGaXpN44ufBjpMvlczCmb6sieQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia": "0.10.10",
|
||||
"Tmds.DBus": "0.9.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.Native": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "IOZ7S7o2F2STZAj2uTve4nnnF008CK4/nGSqvYxXyM0X3jK4yCkhydbBN7jmItDfD7hR0h+CQfRUS7qekTNlEQ==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "pJ8mlzjtlhPA7ueHnCN4FjBmXZMXJ+hKG+6uLnz+3A879oGLei6yacYRVel80sVoIML1ir8A5InWL52ra1Qdag==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Remote.Protocol": {
|
||||
@ -154,10 +163,10 @@
|
||||
},
|
||||
"Avalonia.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "NMnwpHg98IgBG334GOD/lOiXZhXnKEuwCV3ztFwURg3IDKdL+erSW7VM/2rpKm6d914j627UvRaAkvMWht2K6g==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "8KtlObMQ+8pDMch6SMdPNpIWk9J0OaPjA7lbALEsDkRNb+XLDdIZXWbKle5Y6ASUEQhQGIX4DCP/8UYp7Us5zg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia": "0.10.10",
|
||||
"HarfBuzzSharp": "2.6.1.7",
|
||||
"HarfBuzzSharp.NativeAssets.Linux": "2.6.1.7",
|
||||
"SkiaSharp": "2.80.2",
|
||||
@ -166,10 +175,10 @@
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "hZtdaEyqynFCCoYT/NCZxeE4KajJodLZCzUThv9/diZFqxYsasEQjguDVeTvLaNBVjqxsZXt35C3D72fjDzPww==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "6AS6yIB+OS8+g96mj+ShJihjxqhVH6v7jfdqLwjQfGAsqqqN7zBNsFdvoVVCnutuVx0g/9FhCnBTIZyZDlwqkA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Angle.Windows.Natives": "2.1.0.2020091801",
|
||||
"System.Drawing.Common": "4.5.0",
|
||||
"System.Numerics.Vectors": "4.5.0"
|
||||
@ -177,12 +186,12 @@
|
||||
},
|
||||
"Avalonia.X11": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "+PoPHSmAhIcxQ1qmxc2kfbBr7Dxddaqi8FNrbCk2dqvEdQAeaxBswYupSoIARtpDE0wqtrXXneWeAnHxl/YgMw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "XsWWNYlKy3XJ8HFzCvv/2Ym8Ku72tN+JxbPX8lLBZSYzQEtvfKQ+DcKb8us1AWjXQhQQSrZQylrtVZ043a4SsQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.FreeDesktop": "0.10.9",
|
||||
"Avalonia.Skia": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.FreeDesktop": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Castle.Core": {
|
||||
@ -204,8 +213,8 @@
|
||||
},
|
||||
"DynamicData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "7.1.1",
|
||||
"contentHash": "Pc6J5bFnSxEa64PV2V67FMcLlDdpv6m+zTBKSnRN3aLon/WtWWy8kuDpHFbJlgXHtqc6Nxloj9ItuvDlvKC/8w==",
|
||||
"resolved": "7.3.1",
|
||||
"contentHash": "E9oTvWlAgzct0MuWt6k+0s+nSDA3LkFVvDwkMUTklIZZnva314KZAEF2vG4XX9I98ia+EpMqjte67jWEBJlsRw==",
|
||||
"dependencies": {
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -259,8 +268,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Material.Icons": {
|
||||
"type": "Transitive",
|
||||
@ -478,13 +487,11 @@
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.2.10",
|
||||
"contentHash": "fOCbEZ+RsO2Jhv6vB8VX+ZEvczYJaC95atcSG7oXohJeL/sEwbbqvv9k+tbj2l4bRSj2j5CQvhwA3HNLaxlCAg==",
|
||||
"resolved": "16.2.6",
|
||||
"contentHash": "jf1RvD8HxHuA6CGQtheGHUCHzRrhpvo0z593Npsz7g8KJWXfGR45Dc9bILJHoymBxhdDD1L1WjUfh0fcucIPPg==",
|
||||
"dependencies": {
|
||||
"DynamicData": "7.1.1",
|
||||
"Splat": "10.0.1",
|
||||
"System.Reactive": "5.0.0",
|
||||
"System.Runtime.Serialization.Primitives": "4.3.0"
|
||||
"DynamicData": "7.3.1",
|
||||
"Splat": "13.1.1"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
@ -625,8 +632,8 @@
|
||||
},
|
||||
"ShimSkiaSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "BWwwsIlYUFF0DUc8Pa9xONIXVDvEL9pOYc9YmWilpHrWC37dcK+H4+tfuxztZxtfJx559HGn+6iZmMDjfFoOxA=="
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "G1ltdwS5+eMhMCoMx31hHjFIznGAjdUK7xAg8raFMFbN09p2tuxzvK7cKbveWm8SEAGIW7NgDyEqGGJzrPrMrg=="
|
||||
},
|
||||
"SkiaSharp": {
|
||||
"type": "Transitive",
|
||||
@ -655,13 +662,13 @@
|
||||
},
|
||||
"Splat": {
|
||||
"type": "Transitive",
|
||||
"resolved": "10.0.1",
|
||||
"contentHash": "N8BMGVuUBnVLAHSVbna/st8XiLd8ulF3BfkKUSGCPqYpDCis3ELvM+aFaZQLBUIBEcweCYVLq3HFEBqHkCKFyA=="
|
||||
"resolved": "13.1.1",
|
||||
"contentHash": "Hv41NNJwYEoxjpCrUw0BdzN17YLZrduhrnHgJyXatSgT6Dq/N/viVkPLfohCeoXf7MqA6ppB/AxtUGU3vJ7YEA=="
|
||||
},
|
||||
"Svg.Custom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "6FnbI4T3uCNN7DYJpfPFa4caTTJzp4YbhU3J4c/syX7wQNSeQ/1u7JZZ+dGgrRUauiWP8VsiCLKP8qinc5xI5w==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Ypi/4NxDxjM24vsK+4Uit08aJUFHcZZpB5Ctb7FLMVevMq0hYeDqzKp6OVLFO5UCX/TxUfRiL1u9F7fvUDA0tQ==",
|
||||
"dependencies": {
|
||||
"Fizzler": "1.2.0",
|
||||
"System.Drawing.Common": "5.0.0",
|
||||
@ -672,22 +679,22 @@
|
||||
},
|
||||
"Svg.Model": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "F/rimPwV5KF64P8oofXGMwOZ0T7b3z1A9OiC4mv5OdSpLpMpUxpSwGLAOkJ5DFqQgXqVjKKLhPdjIjQBwy0AjA==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "sh5W7VpghtFjDnPOMa+CEiIKpJPmkb7FxNuHnB2sLZwJR2qzyVlZaBWM95VaRAXlOU8c0qbtA5ZNVREOpzLQRw==",
|
||||
"dependencies": {
|
||||
"ShimSkiaSharp": "0.5.8.3",
|
||||
"Svg.Custom": "0.5.8.3"
|
||||
"ShimSkiaSharp": "0.5.10",
|
||||
"Svg.Custom": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "ajQ0aINQtEzWkqEXyJjnwqOFNusWNMHJVGrKa1ISbP21nrWJh+tApydLFVFGGjs91d7K3YOUbWDKlEzzdDQaOg==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Xz/nd+5dNJAh7IbfjyduWIJAtpHNqMopX+ORg6ZNnW6l1I7lK20KHlSdMNy9c18vALrA95eU8WFo00nloLVUkQ==",
|
||||
"dependencies": {
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.HarfBuzz": "2.80.2",
|
||||
"Svg.Custom": "0.5.8.3",
|
||||
"Svg.Model": "0.5.8.3"
|
||||
"Svg.Custom": "0.5.10",
|
||||
"Svg.Model": "0.5.10"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
@ -1299,15 +1306,6 @@
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
@ -1622,7 +1620,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1643,7 +1641,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,10 +71,10 @@
|
||||
},
|
||||
"Avalonia.Controls.PanAndZoom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "zIQhp86CdV7xmFXFkaQBDNDr0WSyumEdJvqvIrywG5SEQK3HzACt0gR85KX19DHTlkJlnUVjmfkTEiPjwvgGtA==",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "oUpQm2frhjWll5QWLx8Uzc2VWDNXgPqONlNBLu2gFBis1lkce1jjZvu423U7RNfvg1rOMeZoeiodZq7xZ02STA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
@ -113,13 +113,13 @@
|
||||
},
|
||||
"Avalonia.Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8.3",
|
||||
"contentHash": "w7RYf+8+gOI3uVZZJ59S0EP49LVsyr1jpnZQzVFQqKa3y/c/i2jT/EUoKOeaqPMhFIsQZyEF4iluqoo6aZ05Tw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "7xQkg3b/djGjGQe6ODxCY+LxMeZ0MtSFUOeEu8IMMUG89gueptuS84GZMRY27xG8lvjP3Mu8B1p3/YY5u7UiDg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"Svg.Skia": "0.5.8.3"
|
||||
"Svg.Skia": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
@ -145,27 +145,27 @@
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "iSVOObfXch8vFzhYFvwGntRt4l4kg+dxXYc4C4RDhnoyPh60BCMUzdk2gYUYySv9UVSGAhqH4dQPWZ0l9USmYA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "OAwrl0tzsz+iX2z3T5wdsEG/JkbnlylfXUjCfbgQlQqODUBO0kk02RpCHJMnV86apkVXjeLV+S5+yA1yX+DT6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "RH33/HboQikon64SCfu1qFpuy4+mox2SEGYbXrrw9mnw3Ogw8PeYTJLtZw8/mNYs6dZAU3NusRBaLIG+0PGisw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
@ -189,8 +189,8 @@
|
||||
},
|
||||
"DynamicData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "7.1.1",
|
||||
"contentHash": "Pc6J5bFnSxEa64PV2V67FMcLlDdpv6m+zTBKSnRN3aLon/WtWWy8kuDpHFbJlgXHtqc6Nxloj9ItuvDlvKC/8w==",
|
||||
"resolved": "7.3.1",
|
||||
"contentHash": "E9oTvWlAgzct0MuWt6k+0s+nSDA3LkFVvDwkMUTklIZZnva314KZAEF2vG4XX9I98ia+EpMqjte67jWEBJlsRw==",
|
||||
"dependencies": {
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -210,12 +210,12 @@
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"resolved": "1.1.6",
|
||||
"contentHash": "EJukyiTmEVhaYlHdntFMyQKI4+u772rSClKYQqJRfkTb1NoJXLqiIVqMjx8ZQ0pxnfih+6CZ7+x82lfrGHIPUw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Flurl": {
|
||||
@ -269,8 +269,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Live.Avalonia": {
|
||||
"type": "Transitive",
|
||||
@ -505,13 +505,19 @@
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.2.10",
|
||||
"contentHash": "fOCbEZ+RsO2Jhv6vB8VX+ZEvczYJaC95atcSG7oXohJeL/sEwbbqvv9k+tbj2l4bRSj2j5CQvhwA3HNLaxlCAg==",
|
||||
"resolved": "16.2.6",
|
||||
"contentHash": "jf1RvD8HxHuA6CGQtheGHUCHzRrhpvo0z593Npsz7g8KJWXfGR45Dc9bILJHoymBxhdDD1L1WjUfh0fcucIPPg==",
|
||||
"dependencies": {
|
||||
"DynamicData": "7.1.1",
|
||||
"Splat": "10.0.1",
|
||||
"System.Reactive": "5.0.0",
|
||||
"System.Runtime.Serialization.Primitives": "4.3.0"
|
||||
"DynamicData": "7.3.1",
|
||||
"Splat": "13.1.1"
|
||||
}
|
||||
},
|
||||
"ReactiveUI.Validation": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.2.1",
|
||||
"contentHash": "rhEphZ4ErbGfNtbBQ/tYMsLJYHyLVyqidU+sgZ3kXKbS7QrNoM4j6PPxCwLMKsJUuvVL8JN45xgmB9tSwm7+lg==",
|
||||
"dependencies": {
|
||||
"ReactiveUI": "16.2.6"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
@ -652,8 +658,8 @@
|
||||
},
|
||||
"ShimSkiaSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "BWwwsIlYUFF0DUc8Pa9xONIXVDvEL9pOYc9YmWilpHrWC37dcK+H4+tfuxztZxtfJx559HGn+6iZmMDjfFoOxA=="
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "G1ltdwS5+eMhMCoMx31hHjFIznGAjdUK7xAg8raFMFbN09p2tuxzvK7cKbveWm8SEAGIW7NgDyEqGGJzrPrMrg=="
|
||||
},
|
||||
"SkiaSharp": {
|
||||
"type": "Transitive",
|
||||
@ -682,22 +688,22 @@
|
||||
},
|
||||
"Splat": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "yaj3r8CvHQwtvhfTi+dp5LpIb3c4svqe/tL6LdAS8wWP+dXAp3fTCLjYx21TrW1QBFTBJcg9lrJqDPbheSzHbA=="
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "7iW45RA7AbSlQPCgdokmysva5PGd6iBUhuNkC0XD73LF9dxfTkKeo3wZkohU7nvspDhJ7PJsYHvDtxIt5bMQ8Q=="
|
||||
},
|
||||
"Splat.Ninject": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "hYgyD12Syt2l8U/KccMzNUj4nmrdULjoRTF4g5Q9XtVWPrcdTYmLEdcX/prZEWaFT7vGNP6x9uFXvOlM7Jc+gg==",
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "rTF0HSa6p8nxrXj2hwVgkutcTDJUXY34sY+zYK4ky65b7a0ROL8kdiYyxVVLE4Lq31N5Rcd4bBbqlPkgwZguww==",
|
||||
"dependencies": {
|
||||
"Ninject": "3.3.4",
|
||||
"Splat": "13.1.30"
|
||||
"Splat": "13.1.63"
|
||||
}
|
||||
},
|
||||
"Svg.Custom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "6FnbI4T3uCNN7DYJpfPFa4caTTJzp4YbhU3J4c/syX7wQNSeQ/1u7JZZ+dGgrRUauiWP8VsiCLKP8qinc5xI5w==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Ypi/4NxDxjM24vsK+4Uit08aJUFHcZZpB5Ctb7FLMVevMq0hYeDqzKp6OVLFO5UCX/TxUfRiL1u9F7fvUDA0tQ==",
|
||||
"dependencies": {
|
||||
"Fizzler": "1.2.0",
|
||||
"System.Drawing.Common": "5.0.0",
|
||||
@ -708,22 +714,22 @@
|
||||
},
|
||||
"Svg.Model": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "F/rimPwV5KF64P8oofXGMwOZ0T7b3z1A9OiC4mv5OdSpLpMpUxpSwGLAOkJ5DFqQgXqVjKKLhPdjIjQBwy0AjA==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "sh5W7VpghtFjDnPOMa+CEiIKpJPmkb7FxNuHnB2sLZwJR2qzyVlZaBWM95VaRAXlOU8c0qbtA5ZNVREOpzLQRw==",
|
||||
"dependencies": {
|
||||
"ShimSkiaSharp": "0.5.8.3",
|
||||
"Svg.Custom": "0.5.8.3"
|
||||
"ShimSkiaSharp": "0.5.10",
|
||||
"Svg.Custom": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "ajQ0aINQtEzWkqEXyJjnwqOFNusWNMHJVGrKa1ISbP21nrWJh+tApydLFVFGGjs91d7K3YOUbWDKlEzzdDQaOg==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Xz/nd+5dNJAh7IbfjyduWIJAtpHNqMopX+ORg6ZNnW6l1I7lK20KHlSdMNy9c18vALrA95eU8WFo00nloLVUkQ==",
|
||||
"dependencies": {
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.HarfBuzz": "2.80.2",
|
||||
"Svg.Custom": "0.5.8.3",
|
||||
"Svg.Model": "0.5.8.3"
|
||||
"Svg.Custom": "0.5.10",
|
||||
"Svg.Model": "0.5.10"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
@ -1335,15 +1341,6 @@
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
@ -1658,7 +1655,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1679,7 +1676,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
@ -1689,16 +1686,17 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Artemis.UI.Shared": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Controls.PanAndZoom": "4.2.0",
|
||||
"Avalonia.Controls.PanAndZoom": "4.3.0",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Flurl.Http": "3.2.0",
|
||||
"Live.Avalonia": "1.3.1",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"Splat.Ninject": "13.1.30"
|
||||
"ReactiveUI.Validation": "2.2.1",
|
||||
"Splat.Ninject": "13.1.63"
|
||||
}
|
||||
},
|
||||
"artemis.ui.shared": {
|
||||
@ -1707,12 +1705,13 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Material.Icons.Avalonia": "1.0.2"
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"ReactiveUI.Validation": "2.2.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,16 +14,17 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="4.2.0" />
|
||||
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="4.3.0" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.10" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.6" />
|
||||
<PackageReference Include="Flurl.Http" Version="3.2.0" />
|
||||
<PackageReference Include="Live.Avalonia" Version="1.3.1" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
|
||||
<PackageReference Include="Splat.Ninject" Version="13.1.30" />
|
||||
<PackageReference Include="ReactiveUI.Validation" Version="2.2.1" />
|
||||
<PackageReference Include="Splat.Ninject" Version="13.1.63" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<NativeMenu x:Key="TrayIconMenu">
|
||||
<NativeMenuItem Header="Home" Command="{Binding OpenScreen}" CommandParameter="Home" />
|
||||
<NativeMenuItem Header="Workshop" Command="{Binding OpenScreen}" CommandParameter="Workshop" />
|
||||
<NativeMenuItem Header="Surface Editor" Command="{Binding OpenScreen}" CommandParameter="SurfaceEditor" />
|
||||
<NativeMenuItem Header="Surface Editor" Command="{Binding OpenScreen}" CommandParameter="Surface Editor" />
|
||||
<NativeMenuItem Header="Settings" Command="{Binding OpenScreen}" CommandParameter="Settings" />
|
||||
<NativeMenuItemSeparator />
|
||||
<NativeMenuItem Header="Debugger" Command="{Binding OpenDebugger}" />
|
||||
|
||||
@ -6,5 +6,8 @@
|
||||
x:Class="Artemis.UI.MainWindow"
|
||||
Icon="/Assets/Images/Logo/bow.ico"
|
||||
Title="Artemis 2.0">
|
||||
<ContentControl Content="{Binding}" />
|
||||
<!-- Use a panel here so the main window can host ContentDialogs -->
|
||||
<Panel>
|
||||
<ContentControl Content="{Binding}" />
|
||||
</Panel>
|
||||
</Window>
|
||||
@ -35,7 +35,7 @@ namespace Artemis.UI.Ninject.Factories
|
||||
public interface ISidebarVmFactory : IVmFactory
|
||||
{
|
||||
SidebarViewModel? SidebarViewModel(IScreen hostScreen);
|
||||
SidebarCategoryViewModel SidebarCategoryViewModel(ProfileCategory profileCategory);
|
||||
SidebarCategoryViewModel SidebarCategoryViewModel(SidebarViewModel sidebarViewModel, ProfileCategory profileCategory);
|
||||
SidebarProfileConfigurationViewModel SidebarProfileConfigurationViewModel(ProfileConfiguration profileConfiguration);
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Reactive.Linq;
|
||||
using Artemis.UI.Shared.Events;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
@ -12,19 +13,20 @@ namespace Artemis.UI.Screens.Debugger
|
||||
{
|
||||
public class DebugView : ReactiveWindow<DebugViewModel>
|
||||
{
|
||||
private readonly NavigationView _navigation;
|
||||
|
||||
public DebugView()
|
||||
{
|
||||
Activated += OnActivated;
|
||||
Deactivated += OnDeactivated;
|
||||
InitializeComponent();
|
||||
NavigationView navigation = this.Get<NavigationView>("Navigation");
|
||||
|
||||
_navigation = this.Get<NavigationView>("Navigation");
|
||||
this.WhenActivated(d =>
|
||||
{
|
||||
ViewModel!.WhenAnyValue(vm => vm!.IsActive).Subscribe(_ => Activate()).DisposeWith(d);
|
||||
ViewModel!.SelectedItem = (NavigationViewItem) _navigation.MenuItems.ElementAt(0);
|
||||
Observable.FromEventPattern(x => ViewModel!.ActivationRequested += x, x => ViewModel!.ActivationRequested -= x).Subscribe(_ =>
|
||||
{
|
||||
WindowState = WindowState.Normal;
|
||||
Activate();
|
||||
|
||||
}).DisposeWith(d);
|
||||
ViewModel!.SelectedItem = (NavigationViewItem) navigation.MenuItems.ElementAt(0);
|
||||
});
|
||||
}
|
||||
|
||||
@ -33,21 +35,8 @@ namespace Artemis.UI.Screens.Debugger
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
|
||||
private void OnDeactivated(object? sender, EventArgs e)
|
||||
{
|
||||
if (ViewModel != null)
|
||||
ViewModel.IsActive = false;
|
||||
}
|
||||
|
||||
private void OnActivated(object? sender, EventArgs e)
|
||||
{
|
||||
if (ViewModel != null)
|
||||
ViewModel.IsActive = true;
|
||||
}
|
||||
|
||||
private void DeviceVisualizer_OnLedClicked(object? sender, LedClickedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -18,7 +18,6 @@ namespace Artemis.UI.Screens.Debugger
|
||||
{
|
||||
private readonly IKernel _kernel;
|
||||
private readonly IDebugService _debugService;
|
||||
private bool _isActive;
|
||||
private NavigationViewItem? _selectedItem;
|
||||
|
||||
public DebugViewModel(IKernel kernel, IDebugService debugService)
|
||||
@ -35,11 +34,6 @@ namespace Artemis.UI.Screens.Debugger
|
||||
});
|
||||
}
|
||||
|
||||
public bool IsActive
|
||||
{
|
||||
get => _isActive;
|
||||
set => this.RaiseAndSetIfChanged(ref _isActive, value);
|
||||
}
|
||||
|
||||
public NavigationViewItem? SelectedItem
|
||||
{
|
||||
@ -77,5 +71,17 @@ namespace Artemis.UI.Screens.Debugger
|
||||
}
|
||||
|
||||
public RoutingState Router { get; } = new();
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
OnActivationRequested();
|
||||
}
|
||||
|
||||
public event EventHandler? ActivationRequested;
|
||||
|
||||
protected virtual void OnActivationRequested()
|
||||
{
|
||||
ActivationRequested?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -12,7 +12,7 @@ using RGB.NET.Core;
|
||||
|
||||
namespace Artemis.UI.Screens.Device
|
||||
{
|
||||
public class DeviceDetectInputViewModel : ActivatableViewModelBase
|
||||
public class DeviceDetectInputViewModel : ContentDialogViewModelBase
|
||||
{
|
||||
private readonly IInputService _inputService;
|
||||
private readonly INotificationService _notificationService;
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
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:svg="clr-namespace:Avalonia.Svg.Skia;assembly=Avalonia.Svg.Skia"
|
||||
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="900"
|
||||
@ -29,7 +28,7 @@
|
||||
Text=" Welcome to Artemis, the unified RGB platform." />
|
||||
|
||||
<Grid Grid.Row="1" MaxWidth="840" Margin="30" VerticalAlignment="Bottom" ColumnDefinitions="*,*" RowDefinitions="*,*">
|
||||
<Border Classes="card" Margin="8" Grid.ColumnSpan="2">
|
||||
<Border Classes="card" Margin="8" Grid.ColumnSpan="2" ClipToBounds="True">
|
||||
<Grid VerticalAlignment="Stretch" RowDefinitions="Auto,Auto" ColumnDefinitions="150,*">
|
||||
<avalonia:MaterialIcon Kind="Plug" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1">
|
||||
@ -55,7 +54,7 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border Classes="card" Margin="8" Grid.Row="1" Grid.Column="0">
|
||||
<Border Classes="card" Margin="8" Grid.Row="1" Grid.Column="0" ClipToBounds="True">
|
||||
<Grid VerticalAlignment="Stretch" RowDefinitions="150,95" ColumnDefinitions="150,*">
|
||||
<avalonia:MaterialIcon Kind="Discord" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||
<StackPanel Grid.Row="0" Grid.Column="1">
|
||||
@ -95,7 +94,7 @@
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Classes="card" Margin="8" Grid.Row="1" Grid.Column="1">
|
||||
<Border Classes="card" Margin="8" Grid.Row="1" Grid.Column="1" ClipToBounds="True">
|
||||
<Grid VerticalAlignment="Stretch" RowDefinitions="150,95" ColumnDefinitions="150,*">
|
||||
<avalonia:MaterialIcon Kind="Github" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||
<StackPanel Grid.Row="0" Grid.Column="1">
|
||||
|
||||
@ -4,7 +4,11 @@ using System.Threading.Tasks;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Services;
|
||||
using Artemis.UI.Ninject.Factories;
|
||||
using Artemis.UI.Screens.Home;
|
||||
using Artemis.UI.Screens.Root.Sidebar;
|
||||
using Artemis.UI.Screens.Settings;
|
||||
using Artemis.UI.Screens.SurfaceEditor;
|
||||
using Artemis.UI.Screens.Workshop;
|
||||
using Artemis.UI.Services.Interfaces;
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Services.Interfaces;
|
||||
@ -14,6 +18,8 @@ using Avalonia.Controls;
|
||||
using Avalonia.Controls.ApplicationLifetimes;
|
||||
using Avalonia.Platform;
|
||||
using Avalonia.Threading;
|
||||
using Ninject;
|
||||
using Ninject.Parameters;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Root
|
||||
@ -24,6 +30,7 @@ namespace Artemis.UI.Screens.Root
|
||||
private readonly ICoreService _coreService;
|
||||
private readonly ISettingsService _settingsService;
|
||||
private readonly IWindowService _windowService;
|
||||
private readonly IDebugService _debugService;
|
||||
private readonly IAssetLoader _assetLoader;
|
||||
private readonly ISidebarVmFactory _sidebarVmFactory;
|
||||
private SidebarViewModel? _sidebarViewModel;
|
||||
@ -35,6 +42,7 @@ namespace Artemis.UI.Screens.Root
|
||||
IRegistrationService registrationService,
|
||||
IWindowService windowService,
|
||||
IMainWindowService mainWindowService,
|
||||
IDebugService debugService,
|
||||
IAssetLoader assetLoader,
|
||||
ISidebarVmFactory sidebarVmFactory)
|
||||
{
|
||||
@ -43,6 +51,7 @@ namespace Artemis.UI.Screens.Root
|
||||
_coreService = coreService;
|
||||
_settingsService = settingsService;
|
||||
_windowService = windowService;
|
||||
_debugService = debugService;
|
||||
_assetLoader = assetLoader;
|
||||
_sidebarVmFactory = sidebarVmFactory;
|
||||
_lifeTime = (IClassicDesktopStyleApplicationLifetime) Application.Current.ApplicationLifetime;
|
||||
@ -50,7 +59,7 @@ namespace Artemis.UI.Screens.Root
|
||||
coreService.StartupArguments = _lifeTime.Args.ToList();
|
||||
mainWindowService.ConfigureMainWindowProvider(this);
|
||||
registrationService.RegisterProviders();
|
||||
|
||||
|
||||
DisplayAccordingToSettings();
|
||||
Task.Run(coreService.Initialize);
|
||||
}
|
||||
@ -64,13 +73,6 @@ namespace Artemis.UI.Screens.Root
|
||||
/// <inheritdoc />
|
||||
public RoutingState Router { get; }
|
||||
|
||||
public async Task Exit()
|
||||
{
|
||||
// Don't freeze the UI right after clicking
|
||||
await Task.Delay(200);
|
||||
Utilities.Shutdown();
|
||||
}
|
||||
|
||||
private void CurrentMainWindowOnClosed(object? sender, EventArgs e)
|
||||
{
|
||||
_lifeTime.MainWindow = null;
|
||||
@ -88,7 +90,7 @@ namespace Artemis.UI.Screens.Root
|
||||
// Always show the tray icon if ShowOnStartup is false or the user has no way to open the main window
|
||||
bool showTrayIcon = !showOnAutoRun || _settingsService.GetSetting("UI.ShowTrayIcon", true).Value;
|
||||
|
||||
if (showTrayIcon)
|
||||
if (showTrayIcon)
|
||||
ShowTrayIcon();
|
||||
|
||||
if (autoRunning && !showOnAutoRun || minimized)
|
||||
@ -109,7 +111,11 @@ namespace Artemis.UI.Screens.Root
|
||||
|
||||
private void ShowTrayIcon()
|
||||
{
|
||||
_trayIcon = new TrayIcon {Icon = new WindowIcon(_assetLoader.Open(new Uri("avares://Artemis.UI/Assets/Images/Logo/bow.ico")))};
|
||||
_trayIcon = new TrayIcon
|
||||
{
|
||||
Icon = new WindowIcon(_assetLoader.Open(new Uri("avares://Artemis.UI/Assets/Images/Logo/bow.ico"))),
|
||||
Command = ReactiveCommand.Create(OpenMainWindow)
|
||||
};
|
||||
_trayIcon.Menu = (NativeMenu?) Application.Current.FindResource("TrayIconMenu");
|
||||
_trayIcons = new TrayIcons {_trayIcon};
|
||||
TrayIcon.SetIcons(Application.Current, _trayIcons);
|
||||
@ -124,6 +130,30 @@ namespace Artemis.UI.Screens.Root
|
||||
_trayIcons = null;
|
||||
}
|
||||
|
||||
#region Tray commands
|
||||
|
||||
public void OpenScreen(string displayName)
|
||||
{
|
||||
OpenMainWindow();
|
||||
|
||||
// At this point there is a sidebar VM because the main window was opened
|
||||
SidebarViewModel!.SelectedSidebarScreen = SidebarViewModel.SidebarScreens.FirstOrDefault(s => s.DisplayName == displayName);
|
||||
}
|
||||
|
||||
public async Task OpenDebugger()
|
||||
{
|
||||
await Dispatcher.UIThread.InvokeAsync(() => _debugService.ShowDebugger());
|
||||
}
|
||||
|
||||
public async Task Exit()
|
||||
{
|
||||
// Don't freeze the UI right after clicking
|
||||
await Task.Delay(200);
|
||||
Utilities.Shutdown();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of IMainWindowProvider
|
||||
|
||||
/// <inheritdoc />
|
||||
@ -140,8 +170,8 @@ namespace Artemis.UI.Screens.Root
|
||||
_lifeTime.MainWindow.Closed += CurrentMainWindowOnClosed;
|
||||
}
|
||||
|
||||
_lifeTime.MainWindow.WindowState = WindowState.Normal;
|
||||
_lifeTime.MainWindow.Activate();
|
||||
|
||||
OnMainWindowOpened();
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
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"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Root.Sidebar.Dialogs.SidebarCategoryCreateView">
|
||||
<StackPanel>
|
||||
<StackPanel.KeyBindings>
|
||||
<KeyBinding Gesture="Enter" Command="{Binding Confirm}" />
|
||||
</StackPanel.KeyBindings>
|
||||
<TextBox Text="{Binding CategoryName}" Watermark="Category name"/>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
@ -0,0 +1,21 @@
|
||||
using Artemis.UI.Shared.Extensions;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using Avalonia.ReactiveUI;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Root.Sidebar.Dialogs
|
||||
{
|
||||
public class SidebarCategoryCreateView : ReactiveUserControl<SidebarCategoryCreateViewModel>
|
||||
{
|
||||
public SidebarCategoryCreateView()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.WhenActivated(_ => this.ClearAllDataValidationErrors());
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
using System.Reactive;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Services;
|
||||
using Artemis.UI.Shared;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using ReactiveUI;
|
||||
using ReactiveUI.Validation.Extensions;
|
||||
|
||||
namespace Artemis.UI.Screens.Root.Sidebar.Dialogs
|
||||
{
|
||||
public class SidebarCategoryCreateViewModel : ContentDialogViewModelBase
|
||||
{
|
||||
private readonly IProfileService _profileService;
|
||||
private readonly ProfileCategory? _category;
|
||||
private string? _categoryName;
|
||||
|
||||
public SidebarCategoryCreateViewModel(IProfileService profileService, ProfileCategory? category)
|
||||
{
|
||||
_profileService = profileService;
|
||||
_category = category;
|
||||
|
||||
if (_category != null)
|
||||
_categoryName = _category.Name;
|
||||
|
||||
Confirm = ReactiveCommand.Create(ExecuteConfirm, ValidationContext.Valid);
|
||||
Delete = ReactiveCommand.Create(ExecuteDelete);
|
||||
|
||||
this.ValidationRule(vm => vm.CategoryName, categoryName => !string.IsNullOrWhiteSpace(categoryName), "You must specify a valid name");
|
||||
}
|
||||
|
||||
public ReactiveCommand<Unit, Unit> Delete { get; set; }
|
||||
|
||||
public string? CategoryName
|
||||
{
|
||||
get => _categoryName;
|
||||
set => this.RaiseAndSetIfChanged(ref _categoryName, value);
|
||||
}
|
||||
|
||||
public ReactiveCommand<Unit, Unit> Confirm { get; }
|
||||
|
||||
private void ExecuteConfirm()
|
||||
{
|
||||
if (_category != null)
|
||||
{
|
||||
_category.Name = CategoryName!;
|
||||
_profileService.SaveProfileCategory(_category);
|
||||
}
|
||||
else
|
||||
_profileService.CreateProfileCategory(CategoryName!);
|
||||
|
||||
ContentDialog?.Hide(ContentDialogResult.Primary);
|
||||
}
|
||||
|
||||
private void ExecuteDelete()
|
||||
{
|
||||
if (_category != null)
|
||||
_profileService.DeleteProfileCategory(_category);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,6 +4,7 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:local="clr-namespace:Artemis.UI.Screens.Root.Sidebar"
|
||||
xmlns:controls="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Root.Sidebar.SidebarCategoryView">
|
||||
<UserControl.Styles>
|
||||
@ -27,19 +28,8 @@
|
||||
<Setter Property="Opacity" Value="1" />
|
||||
</Style>
|
||||
</UserControl.Styles>
|
||||
<Grid x:Name="ContainerGrid" Margin="0 8 0 0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0" Background="Transparent">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid x:Name="ContainerGrid" Margin="0 8 0 0" RowDefinitions="Auto,*">
|
||||
<Grid Grid.Row="0" Background="Transparent" ColumnDefinitions="Auto,Auto,*,Auto,Auto">
|
||||
|
||||
<avalonia:MaterialIcon Classes.chevron-collapsed="{Binding ShowItems}"
|
||||
Kind="ChevronUp"
|
||||
@ -87,7 +77,8 @@
|
||||
<Button Classes="category-button icon-button icon-button-small"
|
||||
Grid.Column="2"
|
||||
ToolTip.Tip="Edit category"
|
||||
HorizontalAlignment="Right">
|
||||
HorizontalAlignment="Right"
|
||||
Command="{Binding EditCategory}">
|
||||
<avalonia:MaterialIcon Kind="Cog" />
|
||||
</Button>
|
||||
<ToggleButton Classes="category-button icon-button icon-button-small"
|
||||
@ -105,12 +96,11 @@
|
||||
<DataTemplate x:Key="ProfileDragTemplate" DataType="{x:Type local:SidebarProfileConfigurationViewModel}">
|
||||
<Border Background="{DynamicResource MaterialDesignDivider}" Padding="10" CornerRadius="4">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<!-- <shared:ProfileConfigurationIcon ConfigurationIcon="{Binding ProfileConfiguration.Icon}" -->
|
||||
<!-- Width="20" -->
|
||||
<!-- Height="20" -->
|
||||
<!-- Margin="0 0 10 0" -->
|
||||
<!-- Foreground="{DynamicResource MaterialDesignBody}" /> -->
|
||||
<TextBlock Text="{Binding ProfileConfiguration.Name}" VerticalAlignment="Center" Foreground="{DynamicResource MaterialDesignBody}" />
|
||||
<controls:ProfileConfigurationIcon ConfigurationIcon="{Binding ProfileConfiguration.Icon}"
|
||||
Width="20"
|
||||
Height="20"
|
||||
Margin="0 0 10 0" />
|
||||
<TextBlock Text="{Binding ProfileConfiguration.Name}" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
||||
@ -1,22 +1,30 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Services;
|
||||
using Artemis.UI.Ninject.Factories;
|
||||
using Artemis.UI.Screens.Root.Sidebar.Dialogs;
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Services.Interfaces;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Root.Sidebar
|
||||
{
|
||||
public class SidebarCategoryViewModel : ViewModelBase
|
||||
{
|
||||
private readonly SidebarViewModel _sidebarViewModel;
|
||||
private readonly IProfileService _profileService;
|
||||
private readonly IWindowService _windowService;
|
||||
private readonly ISidebarVmFactory _vmFactory;
|
||||
private SidebarProfileConfigurationViewModel? _selectedProfileConfiguration;
|
||||
|
||||
public SidebarCategoryViewModel(ProfileCategory profileCategory, IProfileService profileService, ISidebarVmFactory vmFactory)
|
||||
public SidebarCategoryViewModel(SidebarViewModel sidebarViewModel, ProfileCategory profileCategory, IProfileService profileService, IWindowService windowService, ISidebarVmFactory vmFactory)
|
||||
{
|
||||
_sidebarViewModel = sidebarViewModel;
|
||||
_profileService = profileService;
|
||||
_windowService = windowService;
|
||||
_vmFactory = vmFactory;
|
||||
|
||||
ProfileCategory = profileCategory;
|
||||
@ -62,6 +70,19 @@ namespace Artemis.UI.Screens.Root.Sidebar
|
||||
}
|
||||
}
|
||||
|
||||
public async Task EditCategory()
|
||||
{
|
||||
await _windowService.CreateContentDialog()
|
||||
.WithTitle("Edit category")
|
||||
.WithViewModel<SidebarCategoryCreateViewModel>(out var vm, ("category", ProfileCategory))
|
||||
.HavingPrimaryButton(b => b.WithText("Confirm").WithCommand(vm.Confirm))
|
||||
.HavingSecondaryButton(b => b.WithText("Delete").WithCommand(vm.Delete))
|
||||
.WithDefaultButton(ContentDialogButton.Primary)
|
||||
.ShowAsync();
|
||||
|
||||
_sidebarViewModel.UpdateProfileCategories();
|
||||
}
|
||||
|
||||
private void CreateProfileViewModels()
|
||||
{
|
||||
ProfileConfigurations.Clear();
|
||||
|
||||
@ -48,7 +48,10 @@
|
||||
<ScrollViewer Grid.Row="3" VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel>
|
||||
<ItemsControl Margin="10 2" Items="{Binding SidebarCategories}" />
|
||||
<Button Content="ADD NEW CATEGORY" Margin="10 10 10 0" />
|
||||
<Button Content="Add new category"
|
||||
Margin="10"
|
||||
HorizontalAlignment="Stretch"
|
||||
Command="{Binding AddCategory}" />
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
|
||||
@ -2,14 +2,18 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Services;
|
||||
using Artemis.UI.Ninject.Factories;
|
||||
using Artemis.UI.Screens.Home;
|
||||
using Artemis.UI.Screens.Root.Sidebar.Dialogs;
|
||||
using Artemis.UI.Screens.Settings;
|
||||
using Artemis.UI.Screens.SurfaceEditor;
|
||||
using Artemis.UI.Screens.Workshop;
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Services.Interfaces;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using Material.Icons;
|
||||
using Ninject;
|
||||
using ReactiveUI;
|
||||
@ -23,16 +27,18 @@ namespace Artemis.UI.Screens.Root.Sidebar
|
||||
private readonly IProfileService _profileService;
|
||||
private readonly IRgbService _rgbService;
|
||||
private readonly ISidebarVmFactory _sidebarVmFactory;
|
||||
private readonly IWindowService _windowService;
|
||||
private ArtemisDevice? _headerDevice;
|
||||
|
||||
private SidebarScreenViewModel? _selectedSidebarScreen;
|
||||
|
||||
public SidebarViewModel(IScreen hostScreen, IKernel kernel, IProfileService profileService, IRgbService rgbService, ISidebarVmFactory sidebarVmFactory)
|
||||
public SidebarViewModel(IScreen hostScreen, IKernel kernel, IProfileService profileService, IRgbService rgbService, ISidebarVmFactory sidebarVmFactory, IWindowService windowService)
|
||||
{
|
||||
_hostScreen = hostScreen;
|
||||
_profileService = profileService;
|
||||
_rgbService = rgbService;
|
||||
_sidebarVmFactory = sidebarVmFactory;
|
||||
_windowService = windowService;
|
||||
|
||||
SidebarScreens = new ObservableCollection<SidebarScreenViewModel>
|
||||
{
|
||||
@ -75,12 +81,24 @@ namespace Artemis.UI.Screens.Root.Sidebar
|
||||
|
||||
public SidebarCategoryViewModel AddProfileCategoryViewModel(ProfileCategory profileCategory)
|
||||
{
|
||||
SidebarCategoryViewModel viewModel = _sidebarVmFactory.SidebarCategoryViewModel(profileCategory);
|
||||
SidebarCategoryViewModel viewModel = _sidebarVmFactory.SidebarCategoryViewModel(this, profileCategory);
|
||||
SidebarCategories.Add(viewModel);
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
private void UpdateProfileCategories()
|
||||
public async Task AddCategory()
|
||||
{
|
||||
await _windowService.CreateContentDialog()
|
||||
.WithTitle("Add new category")
|
||||
.WithViewModel<SidebarCategoryCreateViewModel>(out var vm, ("category", null))
|
||||
.HavingPrimaryButton(b => b.WithText("Confirm").WithCommand(vm.Confirm))
|
||||
.WithDefaultButton(ContentDialogButton.Primary)
|
||||
.ShowAsync();
|
||||
|
||||
UpdateProfileCategories();
|
||||
}
|
||||
|
||||
public void UpdateProfileCategories()
|
||||
{
|
||||
SidebarCategories.Clear();
|
||||
foreach (ProfileCategory profileCategory in _profileService.ProfileCategories.OrderBy(p => p.Order))
|
||||
|
||||
@ -10,12 +10,5 @@
|
||||
<TextBlock Text="{Binding DisplayName}" />
|
||||
</DataTemplate>
|
||||
</TabControl.ItemTemplate>
|
||||
<TabControl.ContentTemplate>
|
||||
<DataTemplate>
|
||||
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl Content="{Binding}" />
|
||||
</ScrollViewer>
|
||||
</DataTemplate>
|
||||
</TabControl.ContentTemplate>
|
||||
</TabControl>
|
||||
</UserControl>
|
||||
@ -4,22 +4,30 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Settings.Tabs.DevicesTabView">
|
||||
<StackPanel MaxWidth="1050">
|
||||
<TextBlock Classes="h4">Device management</TextBlock>
|
||||
<TextBlock>
|
||||
Below you view and manage the devices that were detected by Artemis.
|
||||
</TextBlock>
|
||||
<TextBlock>
|
||||
Disabling a device will cause it to stop updating. Some SDKs will even go back to using manufacturer lighting (Artemis restart may be required).
|
||||
</TextBlock>
|
||||
<Grid MaxWidth="1050">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Classes="h4">Device management</TextBlock>
|
||||
<TextBlock>
|
||||
Below you view and manage the devices that were detected by Artemis.
|
||||
</TextBlock>
|
||||
<TextBlock>
|
||||
Disabling a device will cause it to stop updating. Some SDKs will even go back to using manufacturer lighting (Artemis restart may be required).
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
|
||||
<ItemsControl Items="{Binding Devices}" Margin="-5 0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel />
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl Items="{Binding Devices}" Margin="-5 0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel />
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
@ -2,355 +2,357 @@
|
||||
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:system="clr-namespace:System;assembly=System.Runtime"
|
||||
xmlns:layerBrushes="clr-namespace:Artemis.Core.LayerBrushes;assembly=Artemis.Core"
|
||||
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:controls="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared"
|
||||
mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="2400"
|
||||
x:Class="Artemis.UI.Screens.Settings.Tabs.GeneralTabView">
|
||||
|
||||
<StackPanel Margin="15" MaxWidth="1000">
|
||||
<!-- General settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
General
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Auto-run on startup</TextBlock>
|
||||
</StackPanel>
|
||||
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{Binding UIAutoRun.Value}" MinWidth="0" Margin="0 -10"/>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel Margin="15" MaxWidth="1000">
|
||||
<!-- General settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
General
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Auto-run on startup</TextBlock>
|
||||
</StackPanel>
|
||||
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{Binding UIAutoRun.Value}" MinWidth="0" Margin="0 -10"/>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Hide window on auto-run</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding !UIShowOnStartup.Value}" IsEnabled="{Binding UIAutoRun.Value}" MinWidth="0" Margin="0 -10"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Hide window on auto-run</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding !UIShowOnStartup.Value}" IsEnabled="{Binding UIAutoRun.Value}" MinWidth="0" Margin="0 -10"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Startup delay</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Set the amount of seconds to wait before auto-running Artemis.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
If some devices don't work because Artemis starts before the manufacturer's software, try increasing this value.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBox Text="{Binding UIAutoRunDelay.Value}" IsEnabled="{Binding UIAutoRun.Value}" Width="120" />
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Startup delay</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Set the amount of seconds to wait before auto-running Artemis.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
If some devices don't work because Artemis starts before the manufacturer's software, try increasing this value.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBox Text="{Binding UIAutoRunDelay.Value}" IsEnabled="{Binding UIAutoRun.Value}" Width="120" />
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Color scheme</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Pick between a light and dark color scheme, the automatic option copies your system settings.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<controls:EnumComboBox Width="150" Value="{Binding UIColorScheme.Value}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>Color scheme</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Pick between a light and dark color scheme, the automatic option copies your system settings.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<controls:EnumComboBox Width="150" Value="{Binding UIColorScheme.Value}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Log level
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the logging level, a higher logging level will result in more log files.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<controls:EnumComboBox Width="150" Value="{Binding CoreLoggingLevel.Value}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Log level
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the logging level, a higher logging level will result in more log files.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<controls:EnumComboBox Width="150" Value="{Binding CoreLoggingLevel.Value}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Logs
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the directory where logs are stored.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowLogs}" Width="150" Content="Show logs" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Logs
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the directory where logs are stored.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowLogs}" Width="150" Content="Show logs" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Web server settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Web server
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Web server port
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Artemis runs a local web server that can be used to externally interact with the application.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
This web server can only be accessed by applications running on your own computer, e.g. supported games.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<TextBox Text="{Binding WebServerPort.Value}" Width="150" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<!-- Web server settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Web server
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Web server port
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Artemis runs a local web server that can be used to externally interact with the application.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
This web server can only be accessed by applications running on your own computer, e.g. supported games.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<TextBox Text="{Binding WebServerPort.Value}" Width="150" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Update settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Updating
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Check for updates
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
If enabled, we'll check for updates on startup and periodically while running.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding UICheckForUpdates.Value}" MinWidth="0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<!-- Update settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Updating
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Check for updates
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
If enabled, we'll check for updates on startup and periodically while running.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding UICheckForUpdates.Value}" MinWidth="0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Update
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Use the button on the right to check for updates now.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding OfferUpdatesIfFound}" Width="150" Content="Check now" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Update
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Use the button on the right to check for updates now.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding OfferUpdatesIfFound}" Width="150" Content="Check now" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Profile editor settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Profile editor
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Show condition data model values
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
While selecting a condition target, show the current values of the data model.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding ProfileEditorShowDataModelValues.Value}" MinWidth="0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<!-- Profile editor settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Profile editor
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Show condition data model values
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
While selecting a condition target, show the current values of the data model.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ToggleSwitch IsChecked="{Binding ProfileEditorShowDataModelValues.Value}" MinWidth="0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Default brush
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the default brush that is applied to new layers
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<StackPanel.Styles>
|
||||
<Style Selector="ComboBox.brush /template/ ContentControl#ContentPresenter">
|
||||
<Setter Property="ContentTemplate">
|
||||
<Setter.Value>
|
||||
<DataTemplate DataType="{x:Type layerBrushes:LayerBrushDescriptor}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<avalonia:MaterialIcon Kind="{Binding Icon}" Height="20" Width="20" VerticalAlignment="Center" Margin="0 0 5 0"/>
|
||||
<TextBlock Text="{Binding DisplayName}" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</StackPanel.Styles>
|
||||
<ComboBox Classes="brush"
|
||||
Width="200"
|
||||
HorizontalAlignment="Left"
|
||||
Items="{Binding LayerBrushDescriptors}"
|
||||
SelectedItem="{Binding SelectedLayerBrushDescriptor}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate DataType="{x:Type layerBrushes:LayerBrushDescriptor}">
|
||||
<Grid ColumnDefinitions="30,*" RowDefinitions="Auto,Auto">
|
||||
<avalonia:MaterialIcon Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
Kind="{Binding Icon}"
|
||||
Height="20"
|
||||
Width="20"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left" />
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding DisplayName}" TextWrapping="Wrap" MaxWidth="350" />
|
||||
<TextBlock Classes="subtitle" Grid.Row="1" Grid.Column="1" Text="{Binding Description}" TextWrapping="Wrap" MaxWidth="350" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Default brush
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the default brush that is applied to new layers
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<StackPanel.Styles>
|
||||
<Style Selector="ComboBox.brush /template/ ContentControl#ContentPresenter">
|
||||
<Setter Property="ContentTemplate">
|
||||
<Setter.Value>
|
||||
<DataTemplate DataType="{x:Type layerBrushes:LayerBrushDescriptor}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<avalonia:MaterialIcon Kind="{Binding Icon}" Height="20" Width="20" VerticalAlignment="Center" Margin="0 0 5 0"/>
|
||||
<TextBlock Text="{Binding DisplayName}" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</StackPanel.Styles>
|
||||
<ComboBox Classes="brush"
|
||||
Width="200"
|
||||
HorizontalAlignment="Left"
|
||||
Items="{Binding LayerBrushDescriptors}"
|
||||
SelectedItem="{Binding SelectedLayerBrushDescriptor}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate DataType="{x:Type layerBrushes:LayerBrushDescriptor}">
|
||||
<Grid ColumnDefinitions="30,*" RowDefinitions="Auto,Auto">
|
||||
<avalonia:MaterialIcon Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
Kind="{Binding Icon}"
|
||||
Height="20"
|
||||
Width="20"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left" />
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding DisplayName}" TextWrapping="Wrap" MaxWidth="350" />
|
||||
<TextBlock Classes="subtitle" Grid.Row="1" Grid.Column="1" Text="{Binding Description}" TextWrapping="Wrap" MaxWidth="350" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Rendering settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Rendering
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Preferred render method
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Software-based rendering is done purely on the CPU while Vulkan uses GPU-acceleration.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding CorePreferredGraphicsContext.Value}"
|
||||
Items="{Binding GraphicsContexts}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<!-- Rendering settings -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Rendering
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Preferred render method
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Software-based rendering is done purely on the CPU while Vulkan uses GPU-acceleration.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding CorePreferredGraphicsContext.Value}"
|
||||
Items="{Binding GraphicsContexts}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Render scale
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the resolution Artemis renders at, higher scale means more CPU-usage, especially on large surfaces.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding SelectedRenderScale}"
|
||||
Items="{Binding RenderScales}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding [0]}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Render scale
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the resolution Artemis renders at, higher scale means more CPU-usage, especially on large surfaces.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding SelectedRenderScale}"
|
||||
Items="{Binding RenderScales}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding [0]}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Target frame rate
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the FPS Artemis tries to render at, higher FPS means more CPU-usage but smoother animations.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
The options past 45 FPS are mostly useless unless you are using a custom device.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding SelectedTargetFrameRate}"
|
||||
Items="{Binding TargetFrameRates}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding [0]}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock>
|
||||
Target frame rate
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
Sets the FPS Artemis tries to render at, higher FPS means more CPU-usage but smoother animations.
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle" TextWrapping="Wrap">
|
||||
The options past 45 FPS are mostly useless unless you are using a custom device.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<ComboBox Width="150"
|
||||
SelectedItem="{Binding SelectedTargetFrameRate}"
|
||||
Items="{Binding TargetFrameRates}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding [0]}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Tools -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Tools
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Setup wizard
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the startup wizard usually shown when Artemis first starts.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowSetupWizard}" Width="150" Content="Show wizard" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<!-- Tools -->
|
||||
<TextBlock Classes="h4" Margin="0 15">
|
||||
Tools
|
||||
</TextBlock>
|
||||
<Border Classes="card" VerticalAlignment="Stretch" Margin="0,0,5,0">
|
||||
<StackPanel>
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Setup wizard
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the startup wizard usually shown when Artemis first starts.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowSetupWizard}" Width="150" Content="Show wizard" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Debugger
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Use the debugger to see the raw image Artemis is rendering on the surface.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowDebugger}" Width="150" Content="Show debugger" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Debugger
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Use the debugger to see the raw image Artemis is rendering on the surface.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowDebugger}" Width="150" Content="Show debugger" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Separator Classes="card-separator" />
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Application files
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the directory where application files like plugins and settings are stored.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowDataFolder}" Width="150" Content="Show app files" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||
<TextBlock>
|
||||
Application files
|
||||
</TextBlock>
|
||||
<TextBlock Classes="subtitle">
|
||||
Opens the directory where application files like plugins and settings are stored.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
||||
<Button Command="{Binding ShowDataFolder}" Width="150" Content="Show app files" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
@ -6,6 +6,8 @@
|
||||
x:Class="Artemis.UI.Screens.Settings.Tabs.PluginsTabView">
|
||||
<Grid RowDefinitions="Auto,*" ColumnDefinitions="*,*" Width="900">
|
||||
<TextBox Grid.Row="0" Grid.Column="0" Text="{Binding SearchPluginInput}" Watermark="Search plugins" Margin="0 10" />
|
||||
<ItemsControl Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Items="{Binding Plugins}" />
|
||||
<ScrollViewer Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl Items="{Binding Plugins}" />
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@ -21,8 +21,8 @@ namespace Artemis.UI.Services
|
||||
|
||||
private void BringDebuggerToForeground()
|
||||
{
|
||||
if (_debugViewModel != null)
|
||||
_debugViewModel.IsActive = true;
|
||||
if (_debugViewModel != null)
|
||||
_debugViewModel.Activate();
|
||||
}
|
||||
|
||||
private void CreateDebugger()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using Artemis.UI.Shared;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Templates;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI
|
||||
{
|
||||
@ -22,7 +22,7 @@ namespace Artemis.UI
|
||||
|
||||
public bool Match(object data)
|
||||
{
|
||||
return data is ViewModelBase;
|
||||
return data is ReactiveObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -19,11 +19,11 @@
|
||||
},
|
||||
"Avalonia.Controls.PanAndZoom": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.2.0, )",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "zIQhp86CdV7xmFXFkaQBDNDr0WSyumEdJvqvIrywG5SEQK3HzACt0gR85KX19DHTlkJlnUVjmfkTEiPjwvgGtA==",
|
||||
"requested": "[4.3.0, )",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "oUpQm2frhjWll5QWLx8Uzc2VWDNXgPqONlNBLu2gFBis1lkce1jjZvu423U7RNfvg1rOMeZoeiodZq7xZ02STA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Desktop": {
|
||||
@ -64,25 +64,25 @@
|
||||
},
|
||||
"Avalonia.Svg.Skia": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8.3, )",
|
||||
"resolved": "0.10.8.3",
|
||||
"contentHash": "w7RYf+8+gOI3uVZZJ59S0EP49LVsyr1jpnZQzVFQqKa3y/c/i2jT/EUoKOeaqPMhFIsQZyEF4iluqoo6aZ05Tw==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "7xQkg3b/djGjGQe6ODxCY+LxMeZ0MtSFUOeEu8IMMUG89gueptuS84GZMRY27xG8lvjP3Mu8B1p3/YY5u7UiDg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"Svg.Skia": "0.5.8.3"
|
||||
"Svg.Skia": "0.5.10"
|
||||
}
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.1.5, )",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"requested": "[1.1.6, )",
|
||||
"resolved": "1.1.6",
|
||||
"contentHash": "EJukyiTmEVhaYlHdntFMyQKI4+u772rSClKYQqJRfkTb1NoJXLqiIVqMjx8ZQ0pxnfih+6CZ7+x82lfrGHIPUw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Desktop": "0.10.10",
|
||||
"Avalonia.Diagnostics": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Flurl.Http": {
|
||||
@ -115,14 +115,23 @@
|
||||
"Material.Icons": "1.0.2"
|
||||
}
|
||||
},
|
||||
"ReactiveUI.Validation": {
|
||||
"type": "Direct",
|
||||
"requested": "[2.2.1, )",
|
||||
"resolved": "2.2.1",
|
||||
"contentHash": "rhEphZ4ErbGfNtbBQ/tYMsLJYHyLVyqidU+sgZ3kXKbS7QrNoM4j6PPxCwLMKsJUuvVL8JN45xgmB9tSwm7+lg==",
|
||||
"dependencies": {
|
||||
"ReactiveUI": "16.2.6"
|
||||
}
|
||||
},
|
||||
"Splat.Ninject": {
|
||||
"type": "Direct",
|
||||
"requested": "[13.1.30, )",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "hYgyD12Syt2l8U/KccMzNUj4nmrdULjoRTF4g5Q9XtVWPrcdTYmLEdcX/prZEWaFT7vGNP6x9uFXvOlM7Jc+gg==",
|
||||
"requested": "[13.1.63, )",
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "rTF0HSa6p8nxrXj2hwVgkutcTDJUXY34sY+zYK4ky65b7a0ROL8kdiYyxVVLE4Lq31N5Rcd4bBbqlPkgwZguww==",
|
||||
"dependencies": {
|
||||
"Ninject": "3.3.4",
|
||||
"Splat": "13.1.30"
|
||||
"Splat": "13.1.63"
|
||||
}
|
||||
},
|
||||
"Avalonia.Angle.Windows.Natives": {
|
||||
@ -198,27 +207,27 @@
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "iSVOObfXch8vFzhYFvwGntRt4l4kg+dxXYc4C4RDhnoyPh60BCMUzdk2gYUYySv9UVSGAhqH4dQPWZ0l9USmYA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "OAwrl0tzsz+iX2z3T5wdsEG/JkbnlylfXUjCfbgQlQqODUBO0kk02RpCHJMnV86apkVXjeLV+S5+yA1yX+DT6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"resolved": "0.10.10.4",
|
||||
"contentHash": "RH33/HboQikon64SCfu1qFpuy4+mox2SEGYbXrrw9mnw3Ogw8PeYTJLtZw8/mNYs6dZAU3NusRBaLIG+0PGisw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
@ -242,8 +251,8 @@
|
||||
},
|
||||
"DynamicData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "7.1.1",
|
||||
"contentHash": "Pc6J5bFnSxEa64PV2V67FMcLlDdpv6m+zTBKSnRN3aLon/WtWWy8kuDpHFbJlgXHtqc6Nxloj9ItuvDlvKC/8w==",
|
||||
"resolved": "7.3.1",
|
||||
"contentHash": "E9oTvWlAgzct0MuWt6k+0s+nSDA3LkFVvDwkMUTklIZZnva314KZAEF2vG4XX9I98ia+EpMqjte67jWEBJlsRw==",
|
||||
"dependencies": {
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -302,8 +311,8 @@
|
||||
},
|
||||
"LiteDB": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.10",
|
||||
"contentHash": "x70WuqMDuP75dajqSLvO+AnI/BbwS6da+ukTO7rueV7VoXoQ5CRA9FV4r7cOS4OUr2NS1Up7LDIutjCxQycRvg=="
|
||||
"resolved": "5.0.11",
|
||||
"contentHash": "6cL4bOmVCUB0gIK+6qIr68HeqjjHZicPDGQjvJ87mIOvkFsEsJWkIps3yoKNeLpHhJQur++yoQ9Q8gxsdos0xQ=="
|
||||
},
|
||||
"Material.Icons": {
|
||||
"type": "Transitive",
|
||||
@ -521,13 +530,11 @@
|
||||
},
|
||||
"ReactiveUI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.2.10",
|
||||
"contentHash": "fOCbEZ+RsO2Jhv6vB8VX+ZEvczYJaC95atcSG7oXohJeL/sEwbbqvv9k+tbj2l4bRSj2j5CQvhwA3HNLaxlCAg==",
|
||||
"resolved": "16.2.6",
|
||||
"contentHash": "jf1RvD8HxHuA6CGQtheGHUCHzRrhpvo0z593Npsz7g8KJWXfGR45Dc9bILJHoymBxhdDD1L1WjUfh0fcucIPPg==",
|
||||
"dependencies": {
|
||||
"DynamicData": "7.1.1",
|
||||
"Splat": "10.0.1",
|
||||
"System.Reactive": "5.0.0",
|
||||
"System.Runtime.Serialization.Primitives": "4.3.0"
|
||||
"DynamicData": "7.3.1",
|
||||
"Splat": "13.1.1"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
@ -668,8 +675,8 @@
|
||||
},
|
||||
"ShimSkiaSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "BWwwsIlYUFF0DUc8Pa9xONIXVDvEL9pOYc9YmWilpHrWC37dcK+H4+tfuxztZxtfJx559HGn+6iZmMDjfFoOxA=="
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "G1ltdwS5+eMhMCoMx31hHjFIznGAjdUK7xAg8raFMFbN09p2tuxzvK7cKbveWm8SEAGIW7NgDyEqGGJzrPrMrg=="
|
||||
},
|
||||
"SkiaSharp": {
|
||||
"type": "Transitive",
|
||||
@ -698,13 +705,13 @@
|
||||
},
|
||||
"Splat": {
|
||||
"type": "Transitive",
|
||||
"resolved": "13.1.30",
|
||||
"contentHash": "yaj3r8CvHQwtvhfTi+dp5LpIb3c4svqe/tL6LdAS8wWP+dXAp3fTCLjYx21TrW1QBFTBJcg9lrJqDPbheSzHbA=="
|
||||
"resolved": "13.1.63",
|
||||
"contentHash": "7iW45RA7AbSlQPCgdokmysva5PGd6iBUhuNkC0XD73LF9dxfTkKeo3wZkohU7nvspDhJ7PJsYHvDtxIt5bMQ8Q=="
|
||||
},
|
||||
"Svg.Custom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "6FnbI4T3uCNN7DYJpfPFa4caTTJzp4YbhU3J4c/syX7wQNSeQ/1u7JZZ+dGgrRUauiWP8VsiCLKP8qinc5xI5w==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Ypi/4NxDxjM24vsK+4Uit08aJUFHcZZpB5Ctb7FLMVevMq0hYeDqzKp6OVLFO5UCX/TxUfRiL1u9F7fvUDA0tQ==",
|
||||
"dependencies": {
|
||||
"Fizzler": "1.2.0",
|
||||
"System.Drawing.Common": "5.0.0",
|
||||
@ -715,22 +722,22 @@
|
||||
},
|
||||
"Svg.Model": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "F/rimPwV5KF64P8oofXGMwOZ0T7b3z1A9OiC4mv5OdSpLpMpUxpSwGLAOkJ5DFqQgXqVjKKLhPdjIjQBwy0AjA==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "sh5W7VpghtFjDnPOMa+CEiIKpJPmkb7FxNuHnB2sLZwJR2qzyVlZaBWM95VaRAXlOU8c0qbtA5ZNVREOpzLQRw==",
|
||||
"dependencies": {
|
||||
"ShimSkiaSharp": "0.5.8.3",
|
||||
"Svg.Custom": "0.5.8.3"
|
||||
"ShimSkiaSharp": "0.5.10",
|
||||
"Svg.Custom": "0.5.10"
|
||||
}
|
||||
},
|
||||
"Svg.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.5.8.3",
|
||||
"contentHash": "ajQ0aINQtEzWkqEXyJjnwqOFNusWNMHJVGrKa1ISbP21nrWJh+tApydLFVFGGjs91d7K3YOUbWDKlEzzdDQaOg==",
|
||||
"resolved": "0.5.10",
|
||||
"contentHash": "Xz/nd+5dNJAh7IbfjyduWIJAtpHNqMopX+ORg6ZNnW6l1I7lK20KHlSdMNy9c18vALrA95eU8WFo00nloLVUkQ==",
|
||||
"dependencies": {
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.HarfBuzz": "2.80.2",
|
||||
"Svg.Custom": "0.5.8.3",
|
||||
"Svg.Model": "0.5.8.3"
|
||||
"Svg.Custom": "0.5.10",
|
||||
"Svg.Model": "0.5.10"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
@ -1342,15 +1349,6 @@
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
@ -1665,7 +1663,7 @@
|
||||
"EmbedIO": "3.4.3",
|
||||
"HidSharp": "2.1.0",
|
||||
"Humanizer.Core": "2.11.10",
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"McMaster.NETCore.Plugins": "1.4.0",
|
||||
"Newtonsoft.Json": "13.0.1",
|
||||
"Ninject": "3.3.4",
|
||||
@ -1686,7 +1684,7 @@
|
||||
"artemis.storage": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"LiteDB": "5.0.10",
|
||||
"LiteDB": "5.0.11",
|
||||
"Serilog": "2.10.0"
|
||||
}
|
||||
},
|
||||
@ -1696,12 +1694,13 @@
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.ReactiveUI": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Material.Icons.Avalonia": "1.0.2"
|
||||
"Avalonia.Svg.Skia": "0.10.10",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10.4",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10.4",
|
||||
"FluentAvaloniaUI": "1.1.6",
|
||||
"Material.Icons.Avalonia": "1.0.2",
|
||||
"ReactiveUI.Validation": "2.2.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user