PlayMovie - use listview in virtual mode instead of VirtualListView

This commit is contained in:
adelikat 2019-10-19 14:18:43 -05:00
parent 975c9f9f0d
commit 2a6225940b
2 changed files with 15 additions and 36 deletions

View File

@ -49,7 +49,7 @@
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.StopOnFrameCheckbox = new System.Windows.Forms.CheckBox();
this.StopOnFrameTextBox = new BizHawk.Client.EmuHawk.WatchValueBox();
this.MovieView = new BizHawk.Client.EmuHawk.VirtualListView();
this.MovieView = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@ -269,7 +269,6 @@
this.MovieView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.MovieView.BlazingFast = false;
this.MovieView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
@ -279,16 +278,13 @@
this.MovieView.FullRowSelect = true;
this.MovieView.GridLines = true;
this.MovieView.HideSelection = false;
this.MovieView.ItemCount = 0;
this.MovieView.VirtualListSize = 0;
this.MovieView.Location = new System.Drawing.Point(12, 28);
this.MovieView.MultiSelect = false;
this.MovieView.Name = "MovieView";
this.MovieView.SelectAllInProgress = false;
this.MovieView.selectedItem = -1;
this.MovieView.Size = new System.Drawing.Size(480, 322);
this.MovieView.TabIndex = 5;
this.MovieView.UseCompatibleStateImageBehavior = false;
this.MovieView.UseCustomBackground = true;
this.MovieView.View = System.Windows.Forms.View.Details;
this.MovieView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.MovieView_ColumnClick);
this.MovieView.SelectedIndexChanged += new System.EventHandler(this.MovieView_SelectedIndexChanged);
@ -381,7 +377,7 @@
private System.Windows.Forms.Button Cancel;
private System.Windows.Forms.Button OK;
private System.Windows.Forms.Button BrowseMovies;
private VirtualListView MovieView;
private System.Windows.Forms.ListView MovieView;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;

View File

@ -27,7 +27,7 @@ namespace BizHawk.Client.EmuHawk
public PlayMovie()
{
InitializeComponent();
MovieView.QueryItemText += MovieView_QueryItemText;
MovieView.RetrieveVirtualItem += MovieView_QueryItemText;
MovieView.VirtualMode = true;
_sortReverse = false;
_sortedCol = "";
@ -45,28 +45,13 @@ namespace BizHawk.Client.EmuHawk
TurboCheckbox.Checked = Global.Config.TurboSeek;
}
private void MovieView_QueryItemText(int index, int column, out string text)
private void MovieView_QueryItemText(object sender, RetrieveVirtualItemEventArgs e)
{
text = "";
if (column == 0) // File
{
text = Path.GetFileName(_movieList[index].Filename);
}
if (column == 1) // System
{
text = _movieList[index].SystemID;
}
if (column == 2) // Game
{
text = _movieList[index].GameName;
}
if (column == 3) // Time
{
text = PlatformFrameRates.MovieTime(_movieList[index]).ToString(@"hh\:mm\:ss\.fff");
}
var entry = _movieList[e.ItemIndex];
e.Item = new ListViewItem(entry.Filename);
e.Item.SubItems.Add(entry.SystemID);
e.Item.SubItems.Add(entry.GameName);
e.Item.SubItems.Add(PlatformFrameRates.MovieTime(entry).ToString(@"hh\:mm\:ss\.fff"));
}
private void Run()
@ -230,14 +215,13 @@ namespace BizHawk.Client.EmuHawk
private void HighlightMovie(int index)
{
MovieView.SelectedIndices.Clear();
MovieView.setSelection(index);
MovieView.SelectItem(index, true);
MovieView.Items[index].Selected = true;
}
private void ScanFiles()
{
_movieList.Clear();
MovieView.ItemCount = 0;
MovieView.VirtualListSize = 0;
MovieView.Update();
var directory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null);
@ -293,7 +277,7 @@ namespace BizHawk.Client.EmuHawk
void RefreshMovieList()
{
MovieView.ItemCount = _movieList.Count;
MovieView.VirtualListSize = _movieList.Count;
UpdateList();
}
@ -403,7 +387,7 @@ namespace BizHawk.Client.EmuHawk
OK.Enabled = true;
var firstIndex = MovieView.SelectedIndices[0];
MovieView.ensureVisible(firstIndex);
MovieView.EnsureVisible(firstIndex);
foreach (var kvp in _movieList[firstIndex].HeaderEntries)
{
@ -593,8 +577,7 @@ namespace BizHawk.Client.EmuHawk
if (index.HasValue)
{
MovieView.SelectedIndices.Clear();
MovieView.setSelection(index.Value);
MovieView.SelectItem(index.Value, true);
MovieView.Items[index.Value].Selected = true;
}
}
}