Clean up ToolHelpers.cs and reduce a lot of boilerplate code

This commit is contained in:
adelikat 2015-09-05 21:39:57 -04:00
parent df2dd2df9b
commit 74025d82c9
4 changed files with 72 additions and 160 deletions

View File

@ -139,7 +139,12 @@ namespace BizHawk.Client.EmuHawk
private static bool SaveAs() private static bool SaveAs()
{ {
var file = ToolHelpers.GetCheatSaveFileFromUser(Global.CheatList.CurrentFileName); var file = ToolHelpers.SaveFileDialog(
Global.CheatList.CurrentFileName,
PathManager.GetCheatsPath(Global.Game),
"Cheat Files",
"cht");
return file != null && Global.CheatList.SaveFile(file.FullName); return file != null && Global.CheatList.SaveFile(file.FullName);
} }
@ -384,7 +389,13 @@ namespace BizHawk.Client.EmuHawk
private void OpenMenuItem_Click(object sender, EventArgs e) private void OpenMenuItem_Click(object sender, EventArgs e)
{ {
var append = sender == AppendMenuItem; var append = sender == AppendMenuItem;
LoadFile(ToolHelpers.GetCheatFileFromUser(Global.CheatList.CurrentFileName), append); var file = ToolHelpers.OpenFileDialog(
Global.CheatList.CurrentFileName,
PathManager.GetCheatsPath(Global.Game),
"Cheat Files",
"cht");
LoadFile(file, append);
} }
private void SaveMenuItem_Click(object sender, EventArgs e) private void SaveMenuItem_Click(object sender, EventArgs e)

View File

@ -165,7 +165,12 @@ namespace BizHawk.Client.EmuHawk
var result = MessageBox.Show(this, "OK to load new CDL?", "Query", MessageBoxButtons.YesNo); var result = MessageBox.Show(this, "OK to load new CDL?", "Query", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) if (result == DialogResult.Yes)
{ {
var file = ToolHelpers.GetCdlFileFromUser(_currentFileName); var file = ToolHelpers.OpenFileDialog(
_currentFileName,
PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
"Code Data Logger Files",
"cdl");
if (file != null) if (file != null)
{ {
using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read)) using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
@ -207,7 +212,12 @@ namespace BizHawk.Client.EmuHawk
} }
else else
{ {
var file = ToolHelpers.GetCdlSaveFileFromUser(_currentFileName); var file = ToolHelpers.SaveFileDialog(
_currentFileName,
PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
"Code Data Logger Files",
"cdl");
if (file != null) if (file != null)
{ {
using (var fs = new FileStream(file.FullName, FileMode.Create, FileAccess.Write)) using (var fs = new FileStream(file.FullName, FileMode.Create, FileAccess.Write))
@ -228,7 +238,12 @@ namespace BizHawk.Client.EmuHawk
} }
else else
{ {
var file = ToolHelpers.GetCdlFileFromUser(_currentFileName); var file = ToolHelpers.OpenFileDialog(
_currentFileName,
PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
"Code Data Logger Files",
"cdl");
if (file != null) if (file != null)
{ {
using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read)) using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))

View File

@ -57,10 +57,15 @@ namespace BizHawk.Client.EmuHawk
var filename = CurrentTasMovie.Filename; var filename = CurrentTasMovie.Filename;
if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName()) if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
{ {
filename = ""; filename = string.Empty;
} }
var file = ToolHelpers.GetTasProjFileFromUser(filename); var file = ToolHelpers.OpenFileDialog(
filename,
PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null),
"Tas Project Files",
"tasproj");
if (file != null) if (file != null)
{ {
LoadFile(file); LoadFile(file);
@ -99,7 +104,12 @@ namespace BizHawk.Client.EmuHawk
filename = SuggestedTasProjName(); filename = SuggestedTasProjName();
} }
var file = ToolHelpers.GetTasProjSaveFileFromUser(filename); var file = ToolHelpers.SaveFileDialog(
filename,
PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null),
"Tas Project Files",
"tasproj");
if (file != null) if (file != null)
{ {
CurrentTasMovie.Filename = file.FullName; CurrentTasMovie.Filename = file.FullName;

View File

@ -14,17 +14,22 @@ namespace BizHawk.Client.EmuHawk
{ {
public static class ToolHelpers public static class ToolHelpers
{ {
public static FileInfo GetTasProjFileFromUser(string currentFile) public static FileInfo OpenFileDialog(string currentFile, string path, string fileType, string fileExt)
{ {
var ofd = new OpenFileDialog(); if (!Directory.Exists(path))
if (!string.IsNullOrWhiteSpace(currentFile))
{ {
ofd.FileName = Path.GetFileNameWithoutExtension(currentFile); Directory.CreateDirectory(path);
} }
ofd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null); var ofd = new OpenFileDialog
ofd.Filter = "Tas Project Files (*.tasproj)|*.tasproj|All Files|*.*"; {
ofd.RestoreDirectory = true; FileName = !string.IsNullOrWhiteSpace(currentFile)
? Path.GetFileName(currentFile)
: PathManager.FilesystemSafeName(Global.Game) + "." + fileExt,
InitialDirectory = path,
Filter = string.Format("{0} (*.{1})|*.{1}|All Files|*.*", fileType, fileExt),
RestoreDirectory = true
};
var result = ofd.ShowHawkDialog(); var result = ofd.ShowHawkDialog();
if (result != DialogResult.OK) if (result != DialogResult.OK)
@ -35,22 +40,23 @@ namespace BizHawk.Client.EmuHawk
return new FileInfo(ofd.FileName); return new FileInfo(ofd.FileName);
} }
public static FileInfo GetTasProjSaveFileFromUser(string currentFile) public static FileInfo SaveFileDialog(string currentFile, string path, string fileType, string fileExt)
{ {
var sfd = new SaveFileDialog(); if (!Directory.Exists(path))
if (!string.IsNullOrWhiteSpace(currentFile))
{ {
sfd.FileName = Path.GetFileNameWithoutExtension(currentFile); Directory.CreateDirectory(path);
sfd.InitialDirectory = Path.GetDirectoryName(currentFile);
}
else
{
sfd.FileName = PathManager.FilesystemSafeName(Global.Game);
sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null);
} }
sfd.Filter = "Tas Project Files (*.tasproj)|*.tasproj|All Files|*.*"; var sfd = new SaveFileDialog
sfd.RestoreDirectory = true; {
FileName = !string.IsNullOrWhiteSpace(currentFile)
? Path.GetFileName(currentFile)
: PathManager.FilesystemSafeName(Global.Game) + "." + fileExt,
InitialDirectory = path,
Filter = string.Format("{0} (*.{1})|*.{1}|All Files|*.*", fileType, fileExt),
RestoreDirectory = true,
};
var result = sfd.ShowHawkDialog(); var result = sfd.ShowHawkDialog();
if (result != DialogResult.OK) if (result != DialogResult.OK)
{ {
@ -62,143 +68,13 @@ namespace BizHawk.Client.EmuHawk
public static FileInfo GetWatchFileFromUser(string currentFile) public static FileInfo GetWatchFileFromUser(string currentFile)
{ {
var ofd = new OpenFileDialog(); return OpenFileDialog(currentFile, PathManager.MakeAbsolutePath(Global.Config.PathEntries.WatchPathFragment, null), "Watch Files", "wch");
if (!string.IsNullOrWhiteSpace(currentFile))
{
ofd.FileName = Path.GetFileNameWithoutExtension(currentFile);
}
ofd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.WatchPathFragment, null);
ofd.Filter = "Watch Files (*.wch)|*.wch|All Files|*.*";
ofd.RestoreDirectory = true;
var result = ofd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(ofd.FileName);
} }
public static FileInfo GetWatchSaveFileFromUser(string currentFile) public static FileInfo GetWatchSaveFileFromUser(string currentFile)
{ {
var sfd = new SaveFileDialog(); return SaveFileDialog(currentFile, PathManager.MakeAbsolutePath(Global.Config.PathEntries.WatchPathFragment, null), "Watch Files", "wch");
if (!string.IsNullOrWhiteSpace(currentFile)) }
{
sfd.FileName = Path.GetFileNameWithoutExtension(currentFile);
sfd.InitialDirectory = Path.GetDirectoryName(currentFile);
}
else
{
sfd.FileName = PathManager.FilesystemSafeName(Global.Game);
sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.WatchPathFragment, null);
}
sfd.Filter = "Watch Files (*.wch)|*.wch|All Files|*.*";
sfd.RestoreDirectory = true;
var result = sfd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(sfd.FileName);
}
public static FileInfo GetCheatFileFromUser(string currentFile)
{
var ofd = new OpenFileDialog
{
FileName = !string.IsNullOrWhiteSpace(currentFile)
? Path.GetFileNameWithoutExtension(currentFile)
: PathManager.FilesystemSafeName(Global.Game),
InitialDirectory = PathManager.GetCheatsPath(Global.Game),
Filter = "Cheat Files (*.cht)|*.cht|All Files|*.*",
RestoreDirectory = true
};
var result = ofd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(ofd.FileName);
}
public static FileInfo GetCheatSaveFileFromUser(string currentFile)
{
var cheatsPath = PathManager.GetCheatsPath(Global.Game);
if (!Directory.Exists(cheatsPath))
{
Directory.CreateDirectory(cheatsPath);
}
var sfd = new SaveFileDialog
{
Filter = "Cheat Files (*.cht)|*.cht|All Files|*.*",
RestoreDirectory = true,
InitialDirectory = cheatsPath,
FileName = !string.IsNullOrWhiteSpace(currentFile)
? Path.GetFileNameWithoutExtension(currentFile)
: PathManager.FilesystemSafeName(Global.Game)
};
var result = sfd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(sfd.FileName);
}
public static FileInfo GetCdlFileFromUser(string currentFile)
{
var ofd = new OpenFileDialog
{
Filter = "Code Data Logger Files (*.cdl)|*.cdl|All Files|*.*",
InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
RestoreDirectory = true
};
if (!string.IsNullOrWhiteSpace(currentFile))
{
ofd.FileName = Path.GetFileNameWithoutExtension(currentFile);
}
var result = ofd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(ofd.FileName);
}
public static FileInfo GetCdlSaveFileFromUser(string currentFile)
{
var sfd = new SaveFileDialog
{
Filter = "Code Data Logger Files (*.cdl)|*.cdl|All Files|*.*",
InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
RestoreDirectory = true
};
if (!string.IsNullOrWhiteSpace(currentFile))
{
sfd.FileName = Path.GetFileNameWithoutExtension(currentFile);
}
var result = sfd.ShowHawkDialog();
if (result != DialogResult.OK)
{
return null;
}
return new FileInfo(sfd.FileName);
}
public static void UpdateCheatRelatedTools(object sender, CheatCollection.CheatListEventArgs e) public static void UpdateCheatRelatedTools(object sender, CheatCollection.CheatListEventArgs e)
{ {