Skip to content

Commit b19b019

Browse files
committed
un-hardcode some TAStudio shortcuts
Specifically: un-hardcode copy, paste, paste insert, cut, and state history integrity check fixes #3001
1 parent 0bc5861 commit b19b019

File tree

4 files changed

+57
-12
lines changed

4 files changed

+57
-12
lines changed

src/BizHawk.Client.Common/config/Binding.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,17 @@ void Bind(string tabGroup, string displayName, string defaultBinding = "", strin
146146
Bind("TAStudio", "Sel. bet. Markers", "Ctrl+A");
147147
Bind("TAStudio", "Select All", "Ctrl+Shift+A");
148148
Bind("TAStudio", "Reselect Clip.", "Ctrl+B");
149+
Bind("TAStudio", "Copy Frames", "Ctrl+C");
150+
Bind("TAStudio", "Paste Frames", "Ctrl+V");
151+
Bind("TAStudio", "Paste Insert Frames", "Ctrl+Shift+V");
152+
Bind("TAStudio", "Cut Frames", "Ctrl+X");
149153
Bind("TAStudio", "Clear Frames", "Delete");
150154
Bind("TAStudio", "Delete Frames", "Ctrl+Delete");
151155
Bind("TAStudio", "Insert Frame", "Insert");
152156
Bind("TAStudio", "Insert # Frames", "Shift+Insert");
153157
Bind("TAStudio", "Clone Frames", "Ctrl+Insert");
154158
Bind("TAStudio", "Clone # Times", "Ctrl+Shift+Insert");
159+
Bind("TAStudio", "State Hist. Integrity Check", "Ctrl+Shift+I");
155160
Bind("TAStudio", "Analog Increment", "Up");
156161
Bind("TAStudio", "Analog Decrement", "Down");
157162
Bind("TAStudio", "Analog Incr. by 10", "Shift+Up");

src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ namespace BizHawk.Client.EmuHawk
66
{
77
public partial class MainForm
88
{
9+
private bool TAStudioFocused()
10+
{
11+
return Tools.IsLoaded<TAStudio>() && Tools.Get<TAStudio>().ContainsFocus;
12+
}
13+
914
private bool CheckHotkey(string trigger)
1015
{
1116
void SelectAndSaveToSlot(int slot)
@@ -77,7 +82,7 @@ void SelectAndLoadFromSlot(int slot)
7782
case "Screen Raw to Clipboard":
7883
// Ctrl+C clash. any tool that has such acc must check this.
7984
// maybe check if mainform has focus instead?
80-
if (!(Tools.IsLoaded<TAStudio>() && Tools.Get<TAStudio>().ContainsFocus)) TakeScreenshotToClipboard();
85+
if (!TAStudioFocused()) TakeScreenshotToClipboard();
8186
break;
8287
case "Screen Client to Clipboard":
8388
TakeScreenshotClientToClipboard();
@@ -450,6 +455,24 @@ void SelectAndLoadFromSlot(int slot)
450455
if (!Tools.IsLoaded<TAStudio>()) return false;
451456
Tools.TAStudio.ReselectClipboardExternal();
452457
break;
458+
case "Copy Frames":
459+
// This one at least *needs* to check for TAStudio focus,
460+
// specifically to avoid Ctrl+C conflicts
461+
if (!TAStudioFocused()) return false;
462+
Tools.TAStudio.CopyFramesExternal();
463+
break;
464+
case "Paste Frames":
465+
if (!TAStudioFocused()) return false;
466+
Tools.TAStudio.PasteFramesExternal();
467+
break;
468+
case "Paste Insert Frames":
469+
if (!TAStudioFocused()) return false;
470+
Tools.TAStudio.PasteInsertFramesExternal();
471+
break;
472+
case "Cut Frames":
473+
if (!TAStudioFocused()) return false;
474+
Tools.TAStudio.CutFramesExternal();
475+
break;
453476
case "Clear Frames":
454477
if (!Tools.IsLoaded<TAStudio>()) return false;
455478
Tools.TAStudio.ClearFramesExternal();
@@ -474,6 +497,10 @@ void SelectAndLoadFromSlot(int slot)
474497
if (!Tools.IsLoaded<TAStudio>()) return false;
475498
Tools.TAStudio.CloneFramesXTimesExternal();
476499
break;
500+
case "State Hist. Integrity Check":
501+
if (!TAStudioFocused()) return false;
502+
Tools.TAStudio.StateHistoryIntegrityCheckExternal();
503+
break;
477504
case "Analog Increment":
478505
if (!Tools.IsLoaded<TAStudio>()) return false;
479506
Tools.TAStudio.AnalogIncrementByOne();

src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,14 +226,23 @@ public override void HandleHotkeyUpdate()
226226
SelectBetweenMarkersMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Sel. bet. Markers"];
227227
SelectAllMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select All"];
228228
ReselectClipboardMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Reselect Clip."];
229+
CopyMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Copy Frames"];
230+
PasteMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Paste Frames"];
231+
PasteInsertMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Paste Insert Frames"];
232+
CutMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Cut Frames"];
229233
ClearFramesMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Clear Frames"];
230234
DeleteFramesMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Delete Frames"];
231235
InsertFrameMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Insert Frame"];
232236
InsertNumFramesMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Insert # Frames"];
233237
CloneFramesMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Clone Frames"];
234238
CloneFramesXTimesMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Clone # Times"];
239+
StateHistoryIntegrityCheckMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["State Hist. Integrity Check"];
235240

236241
SelectBetweenMarkersContextMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Sel. bet. Markers"];
242+
copyToolStripMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Copy Frames"];
243+
pasteToolStripMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Paste Frames"];
244+
pasteInsertToolStripMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Paste Insert Frames"];
245+
cutToolStripMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Cut Frames"];
237246
ClearContextMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Clear Frames"];
238247
DeleteFramesContextMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Delete Frames"];
239248
InsertFrameContextMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Insert Frame"];
@@ -485,6 +494,21 @@ public void AddColumn(string name, string text, int widthUnscaled)
485494

486495
public void LoadBranchByIndex(int index) => BookMarkControl.LoadBranchExternal(index);
487496

497+
public void CopyFramesExternal()
498+
=> CopyMenuItem_Click(null, EventArgs.Empty);
499+
500+
public void PasteFramesExternal()
501+
=> PasteMenuItem_Click(null, EventArgs.Empty);
502+
503+
public void PasteInsertFramesExternal()
504+
=> PasteInsertMenuItem_Click(null, EventArgs.Empty);
505+
506+
public void CutFramesExternal()
507+
=> CutMenuItem_Click(null, EventArgs.Empty);
508+
509+
public void StateHistoryIntegrityCheckExternal()
510+
=> StateHistoryIntegrityCheckMenuItem_Click(null, EventArgs.Empty);
511+
488512
public void ClearFramesExternal()
489513
=> ClearFramesMenuItem_Click(null, EventArgs.Empty);
490514

0 commit comments

Comments
 (0)