Skip to content

Commit 78b69bd

Browse files
close #4 recent accessed directory is now saved in per-user .config file
1 parent 0656711 commit 78b69bd

File tree

6 files changed

+64
-6
lines changed

6 files changed

+64
-6
lines changed

src/udesign/App.config

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
55
<section name="udesign.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
66
</sectionGroup>
7+
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
8+
<section name="udesign.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
9+
</sectionGroup>
710
</configSections>
811
<startup>
912

@@ -30,4 +33,11 @@
3033
</setting>
3134
</udesign.Properties.Settings>
3235
</applicationSettings>
36+
<userSettings>
37+
<udesign.Properties.Settings>
38+
<setting name="RecentAccessedDir" serializeAs="String">
39+
<value />
40+
</setting>
41+
</udesign.Properties.Settings>
42+
</userSettings>
3343
</configuration>

src/udesign/Properties/Settings.Designer.cs

Lines changed: 13 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/udesign/Properties/Settings.settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,8 @@
2020
<Setting Name="UserPrefFile" Type="System.String" Scope="Application">
2121
<Value Profile="(Default)">user_pref.json</Value>
2222
</Setting>
23+
<Setting Name="RecentAccessedDir" Type="System.String" Scope="User">
24+
<Value Profile="(Default)" />
25+
</Setting>
2326
</Settings>
2427
</SettingsFile>

src/udesign/WinFormsUI/Forms/MainForm.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,20 @@ private void m_menuOpen_Click(object sender, EventArgs e)
132132

133133
diag.InitialDirectory = UDesignApp.Instance.RootPath;
134134

135-
string testDir = LuaRuntime.GetGlobalString("ResPath_Test");
136-
if (!string.IsNullOrEmpty(testDir))
135+
string lastDir = Properties.Settings.Default.RecentAccessedDir;
136+
if (!string.IsNullOrEmpty(lastDir) && Directory.Exists(lastDir))
137137
{
138-
var testDirFull = EzSys.NormalizePath(Path.Combine(UDesignApp.Instance.RootPath, testDir));
139-
if (Directory.Exists(testDirFull))
140-
diag.InitialDirectory = testDirFull;
138+
diag.InitialDirectory = lastDir;
139+
}
140+
else
141+
{
142+
string testDir = LuaRuntime.GetGlobalString("ResPath_Test");
143+
if (!string.IsNullOrEmpty(testDir))
144+
{
145+
var testDirFull = EzSys.NormalizePath(Path.Combine(UDesignApp.Instance.RootPath, testDir));
146+
if (Directory.Exists(testDirFull))
147+
diag.InitialDirectory = testDirFull;
148+
}
141149
}
142150

143151
if (diag.ShowDialog(this) == DialogResult.OK)
@@ -148,6 +156,8 @@ private void m_menuOpen_Click(object sender, EventArgs e)
148156
// 这里重置前,应先提示用户保存
149157
if (!ResetScene(file))
150158
Logging.Instance.Message("打开文件失败。");
159+
160+
GVars.SetRecentAccessedDirectory(Path.GetDirectoryName(file));
151161
}
152162
}
153163
}
@@ -255,6 +265,9 @@ private void PerformSaveAs()
255265
}
256266
else
257267
{
268+
// saved the file successfully for the first time!
269+
// do some house keeping works here
270+
258271
UpdateFormTitle();
259272

260273
string userLua = LuaRuntime.GetGlobalString("LuaTemplate_UserDefault");
@@ -274,6 +287,8 @@ private void PerformSaveAs()
274287
Logging.Instance.Message("拷贝用户脚本模板失败。(src='{0}' dest='{1}')", userLua, destLuaPath);
275288
}
276289
}
290+
291+
GVars.SetRecentAccessedDirectory(Path.GetDirectoryName(file));
277292
}
278293
}
279294
}

src/udesign/_1_Core/GVars.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace udesign
8+
{
9+
public class GVars
10+
{
11+
public static void SetRecentAccessedDirectory(string recentDir)
12+
{
13+
Properties.Settings.Default.RecentAccessedDir = recentDir;
14+
Properties.Settings.Default.Save();
15+
}
16+
}
17+
}

src/udesign/udesign.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
<Compile Include="WinFormsUI\Controls\RenderBuffers\EditorRenderBuffer.cs">
114114
<SubType>UserControl</SubType>
115115
</Compile>
116+
<Compile Include="_1_Core\GVars.cs" />
116117
<Compile Include="_1_Core\OrthoTransform.cs" />
117118
<Compile Include="WinFormsUI\Controls\UIControlList.cs">
118119
<SubType>UserControl</SubType>

0 commit comments

Comments
 (0)