From a26753234b50d2b3618a912661087db11ce9a18b Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Mon, 23 Aug 2021 13:12:46 +1000 Subject: [PATCH] Add toggle to TAStudio for including frame no. when copying rows resolves #2643 --- .../tools/TAStudio/TAStudio.Designer.cs | 8 ++++++++ .../tools/TAStudio/TAStudio.ListView.cs | 6 +++++- .../tools/TAStudio/TAStudio.MenuItems.cs | 10 ++++++++-- src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index 6c36df6f4c..61fdd534bf 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -191,6 +191,7 @@ namespace BizHawk.Client.EmuHawk this.BranchesMarkersSplit = new System.Windows.Forms.SplitContainer(); this.MainVertialSplit = new System.Windows.Forms.SplitContainer(); this.SetFontMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); + this.CopyIncludesFrameNoMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.TASMenu.SuspendLayout(); this.TasStatusStrip.SuspendLayout(); this.RightClickMenu.SuspendLayout(); @@ -481,6 +482,7 @@ namespace BizHawk.Client.EmuHawk this.SetMaxUndoLevelsMenuItem, this.SetBranchCellHoverIntervalMenuItem, this.SetSeekingCutoffIntervalMenuItem, + this.CopyIncludesFrameNoMenuItem, this.toolStripSeparator26, this.autosaveToolStripMenuItem, this.BackupPerFileSaveMenuItem, @@ -1176,6 +1178,11 @@ namespace BizHawk.Client.EmuHawk this.SetFontMenuItem.Text = "Set Font"; this.SetFontMenuItem.Click += new System.EventHandler(this.SetFontMenuItem_Click); // + // CopyIncludesFrameNoMenuItem + // + this.CopyIncludesFrameNoMenuItem.Text = "Include Frame No. When Copying Row(s)"; + this.CopyIncludesFrameNoMenuItem.Click += new System.EventHandler(this.CopyIncludesFrameNoMenuItem_Click); + // // TAStudio // this.AllowDrop = true; @@ -1374,5 +1381,6 @@ namespace BizHawk.Client.EmuHawk private BizHawk.WinForms.Controls.ToolStripMenuItemEx SingleClickAxisEditMenuItem; private BizHawk.WinForms.Controls.ToolStripMenuItemEx LoadBranchOnDoubleclickMenuItem; private BizHawk.WinForms.Controls.ToolStripMenuItemEx SetFontMenuItem; + private BizHawk.WinForms.Controls.ToolStripMenuItemEx CopyIncludesFrameNoMenuItem; } } \ No newline at end of file diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index db6d365483..46b8b4e7f4 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -313,6 +313,10 @@ namespace BizHawk.Client.EmuHawk } } + /// with leading zeroes such that every frame in the movie will be printed with the same number of digits + private string FrameToStringPadded(int index) + => index.ToString().PadLeft(CurrentTasMovie.InputLogLength.ToString().Length, '0'); + private void TasView_QueryItemText(int index, RollColumn column, out string text, ref int offsetX, ref int offsetY) { if (!_engaged || _initializing) @@ -344,7 +348,7 @@ namespace BizHawk.Client.EmuHawk else if (columnName == FrameColumnName) { offsetX = TasView.HorizontalOrientation ? 2 : 7; - text = index.ToString().PadLeft(CurrentTasMovie.InputLogLength.ToString().Length, '0'); + text = FrameToStringPadded(index); } else { diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 1b03299968..04a73e5cc8 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -461,8 +461,8 @@ namespace BizHawk.Client.EmuHawk } _tasClipboard.Add(new TasClipboardEntry(index, input)); - var lg = CurrentTasMovie.LogGeneratorInstance(input); - sb.AppendLine(lg.GenerateLogEntry()); + var logEntry = CurrentTasMovie.LogGeneratorInstance(input).GenerateLogEntry(); + sb.AppendLine(Settings.CopyIncludesFrameNo ? $"{FrameToStringPadded(index)} {logEntry}" : logEntry); } Clipboard.SetDataObject(sb.ToString()); @@ -828,6 +828,7 @@ namespace BizHawk.Client.EmuHawk OldControlSchemeForBranchesMenuItem.Checked = Settings.OldControlSchemeForBranches; LoadBranchOnDoubleclickMenuItem.Checked = Settings.LoadBranchOnDoubleClick; BindMarkersToInputMenuItem.Checked = CurrentTasMovie.BindMarkersToInput; + CopyIncludesFrameNoMenuItem.Checked = Settings.CopyIncludesFrameNo; } private void SetMaxUndoLevelsMenuItem_Click(object sender, EventArgs e) @@ -901,6 +902,11 @@ namespace BizHawk.Client.EmuHawk } } + private void CopyIncludesFrameNoMenuItem_Click(object sender, EventArgs e) + { + Settings.CopyIncludesFrameNo ^= true; + } + private void SetAutosaveIntervalMenuItem_Click(object sender, EventArgs e) { using var prompt = new InputPrompt diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index be0baceca1..e308bcfa10 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -75,6 +75,7 @@ namespace BizHawk.Client.EmuHawk SingleClickAxisEdit = false; OldControlSchemeForBranches = false; LoadBranchOnDoubleClick = true; + CopyIncludesFrameNo = false; // default to taseditor fashion DenoteStatesWithIcons = false; @@ -107,6 +108,7 @@ namespace BizHawk.Client.EmuHawk public int MainVerticalSplitDistance { get; set; } public int BranchMarkerSplitDistance { get; set; } public bool BindMarkersToInput { get; set; } + public bool CopyIncludesFrameNo { get; set; } } public TAStudio()