浏览代码

Operating system and runtime configurations

flabbet 1 年之前
父节点
当前提交
151df1effe

+ 4 - 2
.gitignore

@@ -331,9 +331,11 @@ ASALocalRun/
 # MFractors (Xamarin productivity tool) working folder 
 .mfractor/
 
-PixiEditor/Properties/
-
 .vscode/
 
 Builds/
 Installer/Assets
+
+GitIgnore
+
+Cache/

+ 0 - 8
src/ChunkyImageLibTest/ChunkyImageLibTest.csproj

@@ -11,18 +11,10 @@
     <Platforms>AnyCPU;x64;x86</Platforms>
   </PropertyGroup>
 
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Steam|AnyCPU'">
-    <Optimize>True</Optimize>
-  </PropertyGroup>
-
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Steam|x64'">
     <Optimize>True</Optimize>
   </PropertyGroup>
 
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Steam|x86'">
-    <Optimize>True</Optimize>
-  </PropertyGroup>
-
   <ItemGroup>
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
     <PackageReference Include="xunit" Version="2.4.1" />

+ 4 - 4
src/PixiEditor.AvaloniaUI/Initialization/ClassicDesktopEntry.cs

@@ -128,17 +128,17 @@ internal class ClassicDesktopEntry
 
     private void InitOperatingSystem()
     {
-        var os = GetActiveOperatingSystem();
+        IOperatingSystem.RegisterOS(GetActiveOperatingSystem());
     }
 
     private IOperatingSystem GetActiveOperatingSystem()
     {
 #if WINDOWS
-        return new WindowsOperatingSystem();
+        return new PixiEditor.Windows.WindowsOperatingSystem();
 #elif LINUX
-        return new LinuxOperatingSystem();
+        return new PixiEditor.Linux.LinuxOperatingSystem();
 #elif MACOS
-        return new MacOSOperatingSystem();
+        return new PixiEditor.MacOs.MacOSOperatingSystem();
 #else
         throw new PlatformNotSupportedException("This platform is not supported");
 #endif

+ 10 - 1
src/PixiEditor.AvaloniaUI/PixiEditor.AvaloniaUI.csproj

@@ -23,6 +23,16 @@
     <DebugType>None</DebugType>
   </PropertyGroup>
 
+  <PropertyGroup Condition="'$(OS)' == 'Windows_NT'">
+    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
+  </PropertyGroup>
+  <PropertyGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))">
+    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
+  </PropertyGroup>
+  <PropertyGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))">
+    <RuntimeIdentifier>osx-x64</RuntimeIdentifier>
+  </PropertyGroup>
+
   <PropertyGroup Condition="'$(Platform)'=='x64'">
     <TargetPlatform>x64</TargetPlatform>
   </PropertyGroup>
@@ -68,7 +78,6 @@
   <PropertyGroup Condition=" '$(Configuration)' == 'DevRelease' ">
     <DefineConstants>TRACE;UPDATE;RELEASE</DefineConstants>
     <Optimize>True</Optimize>
-    <PlatformTarget>AnyCPU</PlatformTarget>
   </PropertyGroup>
   
   <ItemGroup Condition="'$(RuntimeIdentifier)'=='win-x64'">

+ 1 - 0
src/PixiEditor.AvaloniaUI/Views/Overlays/Handles/Handle.cs

@@ -8,6 +8,7 @@ using PixiEditor.AvaloniaUI.Views.Overlays.TransformOverlay;
 using PixiEditor.DrawingApi.Core.Numerics;
 using PixiEditor.Extensions.UI.Overlays;
 using PixiEditor.Numerics;
+using Path = Avalonia.Controls.Shapes.Path;
 
 namespace PixiEditor.AvaloniaUI.Views.Overlays.Handles;
 

+ 0 - 5
src/PixiEditor.Linux/Class1.cs

@@ -1,5 +0,0 @@
-namespace PixiEditor.Linux;
-
-public class Class1
-{
-}

+ 20 - 0
src/PixiEditor.Linux/LinuxOperatingSystem.cs

@@ -0,0 +1,20 @@
+using PixiEditor.OperatingSystem;
+
+namespace PixiEditor.Linux;
+
+public sealed class LinuxOperatingSystem : IOperatingSystem
+{
+    public string Name { get; } = "Linux";
+    public IInputKeys InputKeys { get; }
+    public IProcessUtility ProcessUtility { get; }
+    
+    public void OpenUri(string uri)
+    {
+        throw new NotImplementedException();
+    }
+
+    public void OpenFolder(string path)
+    {
+        throw new NotImplementedException();
+    }
+}

+ 0 - 5
src/PixiEditor.MacOs/Class1.cs

@@ -1,5 +0,0 @@
-namespace PixiEditor.MacOs;
-
-public class Class1
-{
-}

+ 19 - 0
src/PixiEditor.MacOs/MacOperatingSystem.cs

@@ -0,0 +1,19 @@
+using PixiEditor.OperatingSystem;
+
+namespace PixiEditor.MacOs;
+
+public sealed class MacOperatingSystem : IOperatingSystem
+{
+    public string Name { get; } = "MacOS";
+    public IInputKeys InputKeys { get; }
+    public IProcessUtility ProcessUtility { get; }
+    public void OpenUri(string uri)
+    {
+        throw new NotImplementedException();
+    }
+
+    public void OpenFolder(string path)
+    {
+        throw new NotImplementedException();
+    }
+}

+ 1 - 1
src/PixiEditor.OperatingSystem/IOperatingSystem.cs

@@ -8,7 +8,7 @@ public interface IOperatingSystem
     public IInputKeys InputKeys { get; }
     public IProcessUtility ProcessUtility { get; }
 
-    protected static void RegisterOS(IOperatingSystem operatingSystem)
+    public static void RegisterOS(IOperatingSystem operatingSystem)
     {
         if (Current != null)
         {

+ 1 - 3
src/PixiEditor.Windows/WindowsOperatingSystem.cs

@@ -4,14 +4,12 @@ using PixiEditor.OperatingSystem;
 
 namespace PixiEditor.Windows;
 
-public class WindowsOperatingSystem : IOperatingSystem
+public sealed class WindowsOperatingSystem : IOperatingSystem
 {
     public string Name => "Windows";
     public IInputKeys InputKeys { get; } = new WindowsInputKeys();
     public IProcessUtility ProcessUtility { get; } = new WindowsProcessUtility();
 
-    public WindowsOperatingSystem() => IOperatingSystem.RegisterOS(this);
-
     public void OpenUri(string uri)
     {
         WindowsProcessUtility.ShellExecute(uri);