Archive Chooser - sort entries by region, add hotkeys 1-9 that select items 1-9 respectively
This commit is contained in:
parent
02fc8eeaaf
commit
4a28a1aa96
|
@ -85,6 +85,7 @@
|
|||
this.lvMembers.UseCompatibleStateImageBehavior = false;
|
||||
this.lvMembers.View = System.Windows.Forms.View.Details;
|
||||
this.lvMembers.ItemActivate += new System.EventHandler(this.lvMembers_ItemActivate);
|
||||
this.lvMembers.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvMembers_KeyDown);
|
||||
//
|
||||
// colSize
|
||||
//
|
||||
|
|
|
@ -21,27 +21,72 @@ namespace BizHawk.MultiClient
|
|||
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
|
||||
lvi.Text = Util.FormatFileSize(item.size);
|
||||
lvi.SubItems[1].Text = item.name;
|
||||
|
||||
if (IsVerifiedUSA(item.name))
|
||||
{
|
||||
lvMembers.Items.Insert(0, lvi);
|
||||
}
|
||||
else
|
||||
{
|
||||
lvMembers.Items.Add(lvi);
|
||||
}
|
||||
|
||||
lvMembers.Items.Add(lvi);
|
||||
}
|
||||
|
||||
SortItems();
|
||||
}
|
||||
|
||||
private bool IsVerifiedUSA(string name)
|
||||
private bool IsVerifiedRegion(string name, string region)
|
||||
{
|
||||
if (name.Contains("(U)") && name.Contains("[!]"))
|
||||
if (name.Contains(region) && name.Contains("[!]"))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsUnverifiedRegion(string name, string region)
|
||||
{
|
||||
if (name.Contains(region) && !(name.Contains("[!]")))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsNotRegion(string name)
|
||||
{
|
||||
if (name.Contains("(W)")) return false;
|
||||
if (name.Contains("(JU)")) return false;
|
||||
if (name.Contains("(U)")) return false;
|
||||
if (name.Contains("(J)")) return false;
|
||||
if (name.Contains("(E)")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private void SortItems()
|
||||
{
|
||||
List<ListViewItem> lvitems = new List<ListViewItem>();
|
||||
foreach(ListViewItem item in lvMembers.Items)
|
||||
{
|
||||
lvitems.Add(item);
|
||||
}
|
||||
|
||||
List<ListViewItem> sorteditems = new List<ListViewItem>();
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsVerifiedRegion(x.SubItems[1].Text, "(W)")).OrderBy(x => x.Name).ToList());
|
||||
sorteditems.AddRange(lvitems.Where(x => IsUnverifiedRegion(x.SubItems[1].Text, "(W)")).OrderBy(x => x.Name).ToList());
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsVerifiedRegion(x.SubItems[1].Text, "(JU)")).OrderBy(x => x.Name).ToList());
|
||||
sorteditems.AddRange(lvitems.Where(x => IsUnverifiedRegion(x.SubItems[1].Text, "(JU)")).OrderBy(x => x.Name).ToList());
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsVerifiedRegion(x.SubItems[1].Text, "(U)")).OrderBy(x => x.Name).ToList());
|
||||
sorteditems.AddRange(lvitems.Where(x => IsUnverifiedRegion(x.SubItems[1].Text, "(U)")).OrderBy(x => x.Name).ToList());
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsVerifiedRegion(x.SubItems[1].Text, "(J)")).OrderBy(x => x.Name).ToList());
|
||||
sorteditems.AddRange(lvitems.Where(x => IsUnverifiedRegion(x.SubItems[1].Text, "(J)")).OrderBy(x => x.Name).ToList());
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsVerifiedRegion(x.SubItems[1].Text, "(E)")).OrderBy(x => x.Name).ToList());
|
||||
sorteditems.AddRange(lvitems.Where(x => IsUnverifiedRegion(x.SubItems[1].Text, "(E)")).OrderBy(x => x.Name).ToList());
|
||||
|
||||
sorteditems.AddRange(lvitems.Where(x => IsNotRegion(x.SubItems[1].Text)).ToList());
|
||||
|
||||
lvMembers.Items.Clear();
|
||||
foreach (ListViewItem i in sorteditems)
|
||||
{
|
||||
lvMembers.Items.Add(i);
|
||||
}
|
||||
}
|
||||
|
||||
public int SelectedMemberIndex
|
||||
{
|
||||
get
|
||||
|
@ -73,5 +118,30 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
lvMembers.Items[0].Selected = true;
|
||||
}
|
||||
|
||||
private void lvMembers_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.D1) SetItem(1);
|
||||
if (e.KeyCode == Keys.D2) SetItem(2);
|
||||
if (e.KeyCode == Keys.D3) SetItem(3);
|
||||
if (e.KeyCode == Keys.D4) SetItem(4);
|
||||
if (e.KeyCode == Keys.D5) SetItem(5);
|
||||
if (e.KeyCode == Keys.D6) SetItem(6);
|
||||
if (e.KeyCode == Keys.D7) SetItem(7);
|
||||
if (e.KeyCode == Keys.D8) SetItem(8);
|
||||
if (e.KeyCode == Keys.D9) SetItem(9);
|
||||
}
|
||||
|
||||
private void SetItem(int num)
|
||||
{
|
||||
if (num <= lvMembers.Items.Count)
|
||||
{
|
||||
foreach (ListViewItem item in lvMembers.SelectedItems)
|
||||
{
|
||||
item.Selected = false;
|
||||
}
|
||||
lvMembers.Items[num - 1].Selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue