diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
index 31f14ff71a..47f89d27e3 100644
--- a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
+++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
@@ -17,6 +17,8 @@ namespace BizHawk.Client.Common
private readonly TasStateManager StateManager;
public TasMovieMarkerList Markers { get; set; }
+ public const string DefaultProjectName = "default";
+
public TasMovie(string path) : base(path)
{
// TODO: how to call the default constructor AND the base(path) constructor? And is base(path) calling base() ?
diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs
index b4cd384562..12b922e95d 100644
--- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs
+++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs
@@ -18,9 +18,12 @@ namespace BizHawk.Client.EmuHawk
private void FileSubMenu_DropDownOpened(object sender, EventArgs e)
{
- ToBk2MenuItem.Enabled =
- SaveTASMenuItem.Enabled =
+ ToBk2MenuItem.Enabled =
!string.IsNullOrWhiteSpace(_currentTasMovie.Filename);
+
+ SaveTASMenuItem.Enabled =
+ !string.IsNullOrWhiteSpace(_currentTasMovie.Filename) &&
+ (_currentTasMovie.Filename != DefaultTasProjName());
}
private void RecentSubMenu_DropDownOpened(object sender, EventArgs e)
@@ -30,11 +33,6 @@ namespace BizHawk.Client.EmuHawk
Global.Config.RecentTas.RecentMenu(DummyLoadProject));
}
- private void DummyLoadProject(string path)
- {
- LoadProject(path);
- }
-
private void NewTasMenuItem_Click(object sender, EventArgs e)
{
GlobalWin.OSD.AddMessage("new TAStudio session started");
@@ -45,7 +43,13 @@ namespace BizHawk.Client.EmuHawk
{
if (AskSaveChanges())
{
- var file = ToolHelpers.GetTasProjFileFromUser(_currentTasMovie.Filename);
+ var filename = _currentTasMovie.Filename;
+ if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
+ {
+ filename = "";
+ }
+
+ var file = ToolHelpers.GetTasProjFileFromUser(filename);
if (file != null)
{
_currentTasMovie.Filename = file.FullName;
@@ -83,13 +87,20 @@ namespace BizHawk.Client.EmuHawk
private void SaveAsTasMenuItem_Click(object sender, EventArgs e)
{
- var file = ToolHelpers.GetTasProjSaveFileFromUser(_currentTasMovie.Filename);
+ var filename = _currentTasMovie.Filename;
+ if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
+ {
+ filename = SuggestedTasProjName();
+ }
+
+ var file = ToolHelpers.GetTasProjSaveFileFromUser(filename);
if (file != null)
{
_currentTasMovie.Filename = file.FullName;
_currentTasMovie.Save();
Global.Config.RecentTas.Add(_currentTasMovie.Filename);
MessageStatusLabel.Text = Path.GetFileName(_currentTasMovie.Filename) + " saved.";
+ SetTextProperty();
}
}
diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
index 0f76b2d916..b7c6753489 100644
--- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
+++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
@@ -107,7 +107,21 @@ namespace BizHawk.Client.EmuHawk
TasView.RowCount = 1;
}
+ ///
+ /// Used when starting a new project
+ ///
private static string DefaultTasProjName()
+ {
+ return Path.Combine(
+ PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null),
+ TasMovie.DefaultProjectName + "." + TasMovie.Extension);
+ }
+
+ ///
+ /// Used for things like SaveFile dialogs to suggest a name to the user
+ ///
+ ///
+ private static string SuggestedTasProjName()
{
return Path.Combine(
PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null),
@@ -133,6 +147,11 @@ namespace BizHawk.Client.EmuHawk
}
}
+ private void DummyLoadProject(string path)
+ {
+ LoadProject(path);
+ }
+
private string ClientSettingsForSave()
{
return TasView.UserSettingsSerialized();