Create and use IEnumerable.SelectAsIndexOf extension
This commit is contained in:
parent
6045992464
commit
b72f40808b
|
@ -352,7 +352,7 @@ namespace BizHawk.Client.Common
|
||||||
_history.AddState(_watchList);
|
_history.AddState(_watchList);
|
||||||
}
|
}
|
||||||
|
|
||||||
var removeList = indices.Select(i => _watchList[i]); // This will fail after int.MaxValue but RAM Search fails on domains that large anyway
|
var removeList = indices.SelectAsIndexOf(_watchList); // This will fail after int.MaxValue but RAM Search fails on domains that large anyway
|
||||||
_watchList = _watchList.Except(removeList).ToList();
|
_watchList = _watchList.Except(removeList).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -9,6 +10,7 @@ using BizHawk.Common.ReflectionExtensions;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Emulation.Common.IEmulatorExtensions;
|
using BizHawk.Emulation.Common.IEmulatorExtensions;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
//todo - perks - pause, copy to clipboard, backlog length limiting
|
//todo - perks - pause, copy to clipboard, backlog length limiting
|
||||||
|
|
||||||
|
@ -112,8 +114,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private void buttonCopy_Click(object sender, EventArgs e)
|
private void buttonCopy_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
foreach (int i in virtualListView1.SelectedIndices)
|
foreach (var line in virtualListView1.SelectedIndices.Cast<int>().SelectAsIndexOf(Lines))
|
||||||
sb.AppendLine(Lines[i]);
|
sb.AppendLine(line);
|
||||||
if (sb.Length > 0)
|
if (sb.Length > 0)
|
||||||
Clipboard.SetText(sb.ToString(), TextDataFormat.Text);
|
Clipboard.SetText(sb.ToString(), TextDataFormat.Text);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ using System.Windows.Forms;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -323,13 +324,13 @@ namespace BizHawk.Client.EmuHawk
|
||||||
if (indexes.Count > 0)
|
if (indexes.Count > 0)
|
||||||
{
|
{
|
||||||
var copyStr = new StringBuilder();
|
var copyStr = new StringBuilder();
|
||||||
foreach (int index in indexes)
|
foreach (var movie in indexes.Cast<int>().SelectAsIndexOf(_movieList))
|
||||||
{
|
{
|
||||||
copyStr
|
copyStr
|
||||||
.Append(_movieList[index].Filename).Append('\t')
|
.Append(movie.Filename).Append('\t')
|
||||||
.Append(_movieList[index].SystemID).Append('\t')
|
.Append(movie.SystemID).Append('\t')
|
||||||
.Append(_movieList[index].GameName).Append('\t')
|
.Append(movie.GameName).Append('\t')
|
||||||
.Append(PlatformFrameRates.MovieTime(_movieList[index]).ToString(@"hh\:mm\:ss\.fff"))
|
.Append(PlatformFrameRates.MovieTime(movie).ToString(@"hh\:mm\:ss\.fff"))
|
||||||
.AppendLine();
|
.AppendLine();
|
||||||
}
|
}
|
||||||
Clipboard.SetDataObject(copyStr.ToString());
|
Clipboard.SetDataObject(copyStr.ToString());
|
||||||
|
@ -471,7 +472,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
MovieView.SelectedIndices
|
MovieView.SelectedIndices
|
||||||
.Cast<int>()
|
.Cast<int>()
|
||||||
.Select(index => _movieList[index])
|
.SelectAsIndexOf(_movieList)
|
||||||
.ToList()
|
.ToList()
|
||||||
.ForEach(movie => System.Diagnostics.Process.Start(movie.Filename));
|
.ForEach(movie => System.Diagnostics.Process.Start(movie.Filename));
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
||||||
using BizHawk.Common.NumberExtensions;
|
using BizHawk.Common.NumberExtensions;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -186,10 +187,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private IEnumerable<int> SelectedIndices => BreakpointView.SelectedIndices.Cast<int>();
|
private IEnumerable<int> SelectedIndices => BreakpointView.SelectedIndices.Cast<int>();
|
||||||
|
|
||||||
private IEnumerable<Breakpoint> SelectedItems
|
private IEnumerable<Breakpoint> SelectedItems => SelectedIndices.SelectAsIndexOf(_breakpoints);
|
||||||
{
|
|
||||||
get { return SelectedIndices.Select(index => _breakpoints[index]); }
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<Breakpoint> EditableItems
|
private IEnumerable<Breakpoint> EditableItems
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,8 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
public partial class GenericDebugger
|
public partial class GenericDebugger
|
||||||
|
@ -199,16 +201,16 @@ namespace BizHawk.Client.EmuHawk
|
||||||
if (indices.Count > 0)
|
if (indices.Count > 0)
|
||||||
{
|
{
|
||||||
var blob = new StringBuilder();
|
var blob = new StringBuilder();
|
||||||
foreach (int index in indices)
|
foreach (var disasmOp in indices.Cast<int>().SelectAsIndexOf(_disassemblyLines))
|
||||||
{
|
{
|
||||||
if (blob.Length != 0)
|
if (blob.Length != 0)
|
||||||
{
|
{
|
||||||
blob.AppendLine();
|
blob.AppendLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
blob.Append(string.Format("{0:X" + _pcRegisterSize + "}", _disassemblyLines[index].Address))
|
blob.Append(string.Format("{0:X" + _pcRegisterSize + "}", disasmOp.Address))
|
||||||
.Append(" ")
|
.Append(" ")
|
||||||
.Append(_disassemblyLines[index].Mnemonic);
|
.Append(disasmOp.Mnemonic);
|
||||||
}
|
}
|
||||||
|
|
||||||
Clipboard.SetDataObject(blob.ToString());
|
Clipboard.SetDataObject(blob.ToString());
|
||||||
|
|
|
@ -11,6 +11,7 @@ using BizHawk.Client.Common;
|
||||||
using BizHawk.Client.EmuHawk.ToolExtensions;
|
using BizHawk.Client.EmuHawk.ToolExtensions;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
|
@ -96,10 +97,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
public bool UpdateBefore => true;
|
public bool UpdateBefore => true;
|
||||||
|
|
||||||
private IEnumerable<LuaFile> SelectedItems
|
private IEnumerable<LuaFile> SelectedItems => LuaListView.SelectedIndices().SelectAsIndexOf(LuaImp.ScriptList);
|
||||||
{
|
|
||||||
get { return LuaListView.SelectedIndices().Select(index => LuaImp.ScriptList[index]); }
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<LuaFile> SelectedFiles
|
private IEnumerable<LuaFile> SelectedFiles
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -191,9 +192,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
foreach (int index in indexes)
|
foreach (var libraryFunction in indexes.Cast<int>().SelectAsIndexOf(GlobalWin.Tools.LuaConsole.LuaImp.Docs))
|
||||||
{
|
{
|
||||||
var libraryFunction = GlobalWin.Tools.LuaConsole.LuaImp.Docs[index];
|
|
||||||
sb.Append(libraryFunction.Library).Append('.').Append(libraryFunction.Name).Append("()\n");
|
sb.Append(libraryFunction.Library).Append('.').Append(libraryFunction.Name).Append("()\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -269,16 +270,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
MarkerInputRoll.AnyRowsSelected;
|
MarkerInputRoll.AnyRowsSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<TasMovieMarker> SelectedMarkers
|
private List<TasMovieMarker> SelectedMarkers => MarkerView.SelectedRows.SelectAsIndexOf(Markers).ToList();
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return MarkerView
|
|
||||||
.SelectedRows
|
|
||||||
.Select(index => Markers[index])
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MarkerView_ItemActivate(object sender, EventArgs e)
|
private void MarkerView_ItemActivate(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,6 +9,7 @@ using System.Windows.Forms;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -332,11 +333,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
if (indices.Count > 0)
|
if (indices.Count > 0)
|
||||||
{
|
{
|
||||||
var blob = new StringBuilder();
|
var blob = new StringBuilder();
|
||||||
foreach (int index in indices)
|
foreach (var traceInfo in indices.Cast<int>().SelectAsIndexOf(_instructions))
|
||||||
{
|
{
|
||||||
blob.Append(string.Format("{0} {1}\n",
|
blob.Append(string.Format("{0} {1}\n",
|
||||||
_instructions[index].Disassembly,
|
traceInfo.Disassembly,
|
||||||
_instructions[index].RegisterInfo));
|
traceInfo.RegisterInfo));
|
||||||
}
|
}
|
||||||
Clipboard.SetDataObject(blob.ToString());
|
Clipboard.SetDataObject(blob.ToString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ using BizHawk.Emulation.Common.IEmulatorExtensions;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
using BizHawk.Client.EmuHawk.ToolExtensions;
|
using BizHawk.Client.EmuHawk.ToolExtensions;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -84,10 +85,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private IEnumerable<int> SelectedIndices => WatchListView.SelectedIndices.Cast<int>();
|
private IEnumerable<int> SelectedIndices => WatchListView.SelectedIndices.Cast<int>();
|
||||||
|
|
||||||
private IEnumerable<Watch> SelectedItems
|
private IEnumerable<Watch> SelectedItems => SelectedIndices.SelectAsIndexOf(_watches);
|
||||||
{
|
|
||||||
get { return SelectedIndices.Select(index => _watches[index]); }
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<Watch> SelectedWatches
|
private IEnumerable<Watch> SelectedWatches
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,8 @@ using System.Windows.Forms;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Client.EmuHawk;
|
using BizHawk.Client.EmuHawk;
|
||||||
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.MultiHawk
|
namespace BizHawk.Client.MultiHawk
|
||||||
{
|
{
|
||||||
public partial class PlayMovie : Form
|
public partial class PlayMovie : Form
|
||||||
|
@ -316,13 +318,13 @@ namespace BizHawk.Client.MultiHawk
|
||||||
if (indexes.Count > 0)
|
if (indexes.Count > 0)
|
||||||
{
|
{
|
||||||
var copyStr = new StringBuilder();
|
var copyStr = new StringBuilder();
|
||||||
foreach (int index in indexes)
|
foreach (var movie in indexes.Cast<int>().SelectAsIndexOf(_movieList))
|
||||||
{
|
{
|
||||||
copyStr
|
copyStr
|
||||||
.Append(_movieList[index].Filename).Append('\t')
|
.Append(movie.Filename).Append('\t')
|
||||||
.Append(_movieList[index].SystemID).Append('\t')
|
.Append(movie.SystemID).Append('\t')
|
||||||
.Append(_movieList[index].GameName).Append('\t')
|
.Append(movie.GameName).Append('\t')
|
||||||
.Append(PlatformFrameRates.MovieTime(_movieList[index]).ToString(@"hh\:mm\:ss\.fff"))
|
.Append(PlatformFrameRates.MovieTime(movie).ToString(@"hh\:mm\:ss\.fff"))
|
||||||
.AppendLine();
|
.AppendLine();
|
||||||
}
|
}
|
||||||
Clipboard.SetDataObject(copyStr.ToString());
|
Clipboard.SetDataObject(copyStr.ToString());
|
||||||
|
@ -459,7 +461,7 @@ namespace BizHawk.Client.MultiHawk
|
||||||
{
|
{
|
||||||
MovieView.SelectedIndices
|
MovieView.SelectedIndices
|
||||||
.Cast<int>()
|
.Cast<int>()
|
||||||
.Select(index => _movieList[index])
|
.SelectAsIndexOf(_movieList)
|
||||||
.ToList()
|
.ToList()
|
||||||
.ForEach(movie => System.Diagnostics.Process.Start(movie.Filename));
|
.ForEach(movie => System.Diagnostics.Process.Start(movie.Filename));
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,5 +115,7 @@ namespace BizHawk.Common.CollectionExtensions
|
||||||
|
|
||||||
return bools;
|
return bools;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<T> SelectAsIndexOf<T>(this IEnumerable<int> indices, IList<T> list) => indices.Select(i => list[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue