Skip to content

Commit a39c88b

Browse files
committed
Fix crash in macOS when user.config has invalid path for DirectoryUrl
1 parent 97aec7f commit a39c88b

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

Windows/Main.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
5353
openFileDialog.Filter = "NX Game Files (*.xci;*.nsp)|*.xci;*.nsp|Gamecard Files (*.xci)|*.xci|Package Files (*.nsp)|*.nsp|All Files (*.*)|*.*";
5454
openFileDialog.Multiselect = true;
5555
openFileDialog.RestoreDirectory = true;
56-
openFileDialog.InitialDirectory = Properties.Settings.Default.InitialDirectory;
56+
folderBrowserDialog.SelectedPath = !String.IsNullOrEmpty(Properties.Settings.Default.InitialDirectory) && Directory.Exists(Properties.Settings.Default.InitialDirectory) ? Properties.Settings.Default.InitialDirectory : Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());
5757

5858
Process.log?.WriteLine("\nOpen File");
5959

@@ -86,7 +86,7 @@ private void openDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
8686
}
8787

8888
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
89-
folderBrowserDialog.SelectedPath = Properties.Settings.Default.InitialDirectory;
89+
folderBrowserDialog.SelectedPath = !String.IsNullOrEmpty(Properties.Settings.Default.InitialDirectory) && Directory.Exists(Properties.Settings.Default.InitialDirectory) ? Properties.Settings.Default.InitialDirectory : Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());
9090

9191
Process.log?.WriteLine("\nOpen Directory");
9292

@@ -139,7 +139,7 @@ private void openSDCardToolStripMenuItem_Click(object sender, EventArgs e)
139139
}
140140

141141
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
142-
folderBrowserDialog.SelectedPath = String.IsNullOrEmpty(Properties.Settings.Default.SDCardDirectory) ? Directory.GetDirectoryRoot(Directory.GetCurrentDirectory()) : Properties.Settings.Default.SDCardDirectory;
142+
folderBrowserDialog.SelectedPath = !String.IsNullOrEmpty(Properties.Settings.Default.SDCardDirectory) && Directory.Exists(Properties.Settings.Default.SDCardDirectory) ? Properties.Settings.Default.SDCardDirectory : Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());
143143

144144
Process.log?.WriteLine("\nOpen SD Card");
145145

Windows/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("0.3.*")]
35-
[assembly: AssemblyVersion("0.3.2.0")]
36-
[assembly: AssemblyFileVersion("0.3.2.0")]
35+
[assembly: AssemblyVersion("0.3.2.1")]
36+
[assembly: AssemblyFileVersion("0.3.2.1")]

macOS/Info.plist

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
<key>CFBundleIdentifier</key>
88
<string>com.garoxas.NX_Game_Info</string>
99
<key>CFBundleShortVersionString</key>
10-
<string>0.3.2</string>
10+
<string>0.3.2.1</string>
1111
<key>CFBundleVersion</key>
12-
<string>6</string>
12+
<string>7</string>
1313
<key>LSMinimumSystemVersion</key>
1414
<string>10.9</string>
1515
<key>CFBundleDevelopmentRegion</key>

macOS/MainWindowController.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void OpenFile(NSMenuItem menuItem)
106106
openPanel.CanChooseDirectories = false;
107107
openPanel.AllowsMultipleSelection = true;
108108
openPanel.AllowedFileTypes = new string[] { "xci", "nsp" };
109-
openPanel.DirectoryUrl = new NSUrl(Common.Settings.Default.InitialDirectory ?? "");
109+
openPanel.DirectoryUrl = new NSUrl(!String.IsNullOrEmpty(Common.Settings.Default.InitialDirectory) && Directory.Exists(Common.Settings.Default.InitialDirectory) ? Common.Settings.Default.InitialDirectory : Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));
110110

111111
Process.log?.WriteLine("\nOpen File");
112112

@@ -153,7 +153,7 @@ public void OpenDirectory(NSMenuItem menuItem)
153153
NSOpenPanel openPanel = NSOpenPanel.OpenPanel;
154154
openPanel.CanChooseFiles = false;
155155
openPanel.CanChooseDirectories = true;
156-
openPanel.DirectoryUrl = new NSUrl(Common.Settings.Default.InitialDirectory ?? "");
156+
openPanel.DirectoryUrl = new NSUrl(!String.IsNullOrEmpty(Common.Settings.Default.InitialDirectory) && Directory.Exists(Common.Settings.Default.InitialDirectory) ? Common.Settings.Default.InitialDirectory : Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));
157157

158158
Process.log?.WriteLine("\nOpen Directory");
159159

@@ -230,7 +230,7 @@ public void OpenSDCard(NSMenuItem menuItem)
230230
NSOpenPanel openPanel = NSOpenPanel.OpenPanel;
231231
openPanel.CanChooseFiles = false;
232232
openPanel.CanChooseDirectories = true;
233-
openPanel.DirectoryUrl = new NSUrl(Common.Settings.Default.InitialDirectory ?? "");
233+
openPanel.DirectoryUrl = new NSUrl(!String.IsNullOrEmpty(Common.Settings.Default.SDCardDirectory) && Directory.Exists(Common.Settings.Default.SDCardDirectory) ? Common.Settings.Default.SDCardDirectory : Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));
234234

235235
Process.log?.WriteLine("\nOpen SD Card");
236236

@@ -241,7 +241,7 @@ public void OpenSDCard(NSMenuItem menuItem)
241241
tableViewDataSource.Titles.Clear();
242242
tableView.ReloadData();
243243

244-
Common.Settings.Default.InitialDirectory = openPanel.Urls.First().Path;
244+
Common.Settings.Default.SDCardDirectory = openPanel.Urls.First().Path;
245245
Common.Settings.Default.Save();
246246

247247
title.StringValue = String.Format("Opening SD card on {0}", openPanel.Urls.First().Path);

0 commit comments

Comments
 (0)