summarylogtreecommitdiffstats
path: root/mercury-mapper-1_xdg-folders.patch
blob: b388415c8d5e87160c762c3018e8ae8c2730e7bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
diff --git a/MercuryMapper.csproj b/MercuryMapper.csproj
index c179a9e..608774a 100644
--- a/MercuryMapper.csproj
+++ b/MercuryMapper.csproj
@@ -29,6 +29,7 @@
         <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
         <PackageReference Include="Tomlyn" Version="0.17.0" />
         <PackageReference Include="Websocket.Client" Version="5.1.2" />
+        <PackageReference Include="Xdg.Directories" Version="0.1.2" />
     </ItemGroup>
 
     <ItemGroup>
diff --git a/Views/MainView.axaml.cs b/Views/MainView.axaml.cs
index 0ca88c6..72af626 100644
--- a/Views/MainView.axaml.cs
+++ b/Views/MainView.axaml.cs
@@ -1,4 +1,4 @@
- using System;
+using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
@@ -32,6 +32,7 @@ using MercuryMapper.Views.Select;
 using MercuryMapper.Views.Tools;
 using SkiaSharp;
 using Tomlyn;
+using Xdg.Directories;
 
 namespace MercuryMapper.Views;
 
@@ -41,6 +42,11 @@ public partial class MainView : UserControl
     {
         ChartEditor = new(this);
 
+        Directory.CreateDirectory(ConfigDir);
+        Directory.CreateDirectory(StateDir);
+        ConfigPath = $"{ConfigDir}/UserConfig.toml";
+        TimeTrackerPath = $"{StateDir}/TimeTracker";
+
         InitializeComponent();
         LoadUserConfig();
         LoadUsageTime();
@@ -74,10 +80,12 @@ public partial class MainView : UserControl
     }
 
     public bool CanShutdown;
+    private readonly string ConfigDir = $"{BaseDirectory.ConfigHome}/MercuryMapper";
+    private readonly string StateDir = $"{BaseDirectory.StateHome}/MercuryMapper";
+    private readonly string ConfigPath;
+    private readonly string TimeTrackerPath;
     public const string AppVersion = "v4.0.8";
     public const string ServerVersion = "1.0.1";
-    private const string ConfigPath = "UserConfig.toml";
-    private const string TimeTrackerPath = "TimeTracker";
 
     public UserConfig UserConfig = new();
     public readonly KeybindEditor KeybindEditor;