Skip to content

Commit fb39f55

Browse files
committed
Use the marker list collection changed event to drive TAStudio refreshing, instead of doing a manual refresh on undo and everywhere else.
Is this actually any better? Another option for undo purposes could be to have Undo/Redo return true/false indicating if the only change was to markers.
1 parent 991823d commit fb39f55

File tree

6 files changed

+9
-18
lines changed

6 files changed

+9
-18
lines changed

src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/TAStudioLuaLibrary.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,6 @@ public void RemoveMarker(int frame)
474474
if (marker != null)
475475
{
476476
Tastudio.CurrentTasMovie.Markers.Remove(marker);
477-
Tastudio.RefreshDialog();
478477
}
479478
}
480479
}
@@ -494,7 +493,6 @@ public void SetMarker(int frame, string message = null)
494493
else
495494
{
496495
Tastudio.CurrentTasMovie.Markers.Add(frame, message1);
497-
Tastudio.RefreshDialog();
498496
}
499497
}
500498
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ private void RemoveMarkerToolStripMenuItem_Click(object sender, EventArgs e)
157157
if (!MarkerView.AnyRowsSelected) return;
158158
foreach (var i in MarkerView.SelectedRows.Select(index => Markers[index]).ToList()) Markers.Remove(i);
159159
MarkerView.RowCount = Markers.Count;
160-
Tastudio.RefreshDialog();
161160
}
162161

163162
public void UpdateMarkerCount()
@@ -193,7 +192,6 @@ public void AddMarker(int frame, bool editText = false)
193192
Markers.Add(marker);
194193
var index = Markers.IndexOf(marker);
195194
MarkerView.MakeIndexVisible(index);
196-
Tastudio.RefreshDialog();
197195
}
198196

199197
public void UpdateTextColumnWidth()
@@ -251,7 +249,6 @@ public void EditMarkerFramePopUp(TasMovieMarker marker)
251249
Markers.Move(marker.Frame, promptValue);
252250
UpdateTextColumnWidth();
253251
UpdateValues();
254-
Tastudio.RefreshDialog();
255252
}
256253

257254
public void UpdateValues()

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ private void TasView_ColumnClick(object sender, InputRoll.ColumnClickEventArgs e
377377
if (columnName == FrameColumnName)
378378
{
379379
CurrentTasMovie.Markers.Add(TasView.SelectionEndIndex!.Value, "");
380-
RefreshDialog();
381380
}
382381
else if (columnName != CursorColumnName)
383382
{

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,13 +285,11 @@ private void EditSubMenu_DropDownOpened(object sender, EventArgs e)
285285
private void UndoMenuItem_Click(object sender, EventArgs e)
286286
{
287287
CurrentTasMovie.ChangeLog.Undo();
288-
RefreshDialog(); // ?? redundant, except if undoing markers
289288
}
290289

291290
private void RedoMenuItem_Click(object sender, EventArgs e)
292291
{
293292
CurrentTasMovie.ChangeLog.Redo();
294-
RefreshDialog(); // ?? redundant, except if undoing markers
295293
}
296294

297295
private void ShowUndoHistoryMenuItem_Click(object sender, EventArgs e)
@@ -607,7 +605,6 @@ private void RemoveMarkersMenuItem_Click(object sender, EventArgs e)
607605
{
608606
CurrentTasMovie.Markers.RemoveAll(m => TasView.IsRowSelected(m.Frame));
609607
MarkerControl.UpdateMarkerCount();
610-
RefreshDialog();
611608
}
612609

613610
private void ClearGreenzoneMenuItem_Click(object sender, EventArgs e)

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,15 @@ private bool StartNewMovieWrapper(ITasMovie movie, bool isNew)
590590
movie.BindMarkersToInput = Settings.BindMarkersToInput;
591591
movie.GreenzoneInvalidated = (f) => _ = FrameEdited(f);
592592
movie.ChangeLog.MaxSteps = Settings.MaxUndoSteps;
593+
593594
movie.PropertyChanged += TasMovie_OnPropertyChanged;
595+
System.Collections.Specialized.NotifyCollectionChangedEventHandler refreshOnMarker = (_, _) => RefreshDialog();
596+
movie.Markers.CollectionChanged += refreshOnMarker;
597+
this.Disposed += (s, e) =>
598+
{
599+
movie.PropertyChanged -= TasMovie_OnPropertyChanged;
600+
movie.Markers.CollectionChanged -= refreshOnMarker;
601+
};
594602

595603
SuspendLayout();
596604
WantsToControlStopMovie = false;
@@ -1059,7 +1067,7 @@ private void TasView_CellDropped(object sender, InputRoll.CellEventArgs e)
10591067
if (e.NewCell?.RowIndex != null && !CurrentTasMovie.Markers.IsMarker(e.NewCell.RowIndex.Value))
10601068
{
10611069
CurrentTasMovie.Markers.Move(e.OldCell.RowIndex.Value, e.NewCell.RowIndex.Value);
1062-
RefreshDialog();
1070+
RefreshDialog(); // Marker move might have been rejected so we need to manually refresh.
10631071
}
10641072
}
10651073

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,11 @@ private void ClearButton_Click(object sender, EventArgs e)
7171
private void UndoButton_Click(object sender, EventArgs e)
7272
{
7373
_tastudio.UndoExternal();
74-
_tastudio.RefreshDialog();
7574
}
7675

7776
private void RedoButton_Click(object sender, EventArgs e)
7877
{
7978
_tastudio.RedoExternal();
80-
_tastudio.RefreshDialog();
8179
}
8280

8381
private int SelectedItem
@@ -94,9 +92,6 @@ private void UndoToHere(int index)
9492
});
9593

9694
UpdateValues();
97-
98-
// potentially redundant refresh
99-
_tastudio.RefreshDialog();
10095
}
10196

10297
private void HistoryView_DoubleClick(object sender, EventArgs e)
@@ -143,9 +138,6 @@ private void RedoHereMenuItem_Click(object sender, EventArgs e)
143138
});
144139

145140
UpdateValues();
146-
147-
// potentially redundant refresh
148-
_tastudio.RefreshDialog();
149141
}
150142

151143
private void ClearHistoryToHereMenuItem_Click(object sender, EventArgs e)

0 commit comments

Comments
 (0)