Tastudio - create a FullRefresh() method that guarantees RowCount will be updated and all drawing will occur, but is slower, and use it in non-perormance situations such as copy/paste methods. Fixes #1956

This commit is contained in:
adelikat 2020-04-29 19:46:11 -05:00
parent 92db6b8b64
commit a1c8c4ed3a
2 changed files with 23 additions and 9 deletions

View File

@ -492,7 +492,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -535,7 +535,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -578,7 +578,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -606,7 +606,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -620,7 +620,7 @@ namespace BizHawk.Client.EmuHawk
if (rollBackFrame >= CurrentTasMovie.InputLogLength)
{
// Cannot delete non-existent frames
RefreshDialog();
FullRefresh();
return;
}
@ -634,7 +634,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -660,7 +660,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -681,7 +681,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}
@ -716,7 +716,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
RefreshDialog();
FullRefresh();
}
}
}

View File

@ -912,6 +912,20 @@ namespace BizHawk.Client.EmuHawk
public IEnumerable<int> GetSelection() => TasView.SelectedRows;
// Slow but guarantees the entire dialog refreshes
private void FullRefresh()
{
SetTasViewRowCount();
TasView.Refresh(); // An extra refresh potentially but we need to guarantee
MarkerControl.UpdateValues();
BookMarkControl.UpdateValues();
if (_undoForm != null && !_undoForm.IsDisposed)
{
_undoForm.UpdateValues();
}
}
public void RefreshDialog(bool refreshTasView = true, bool refreshBranches = true)
{
if (_exiting)