Added reverse sorting for PlayMovie dialog for when clicking a column a second time.

This commit is contained in:
offspring131313 2011-05-24 01:40:36 +00:00
parent 115517c795
commit d76fd77cfc
1 changed files with 14 additions and 2 deletions

View File

@ -20,6 +20,8 @@ namespace BizHawk.MultiClient
//AddMovieToList should check for duplicates and not add them
List<Movie> MovieList = new List<Movie>();
bool sortReverse;
string sortedCol;
public PlayMovie()
{
@ -27,6 +29,8 @@ namespace BizHawk.MultiClient
MovieView.QueryItemText += new QueryItemTextHandler(MovieView_QueryItemText);
MovieView.QueryItemBkColor += new QueryItemBkColorHandler(MovieView_QueryItemBkColor);
MovieView.VirtualMode = true;
sortReverse = false;
sortedCol = "";
}
void MovieView_QueryItemText(int index, int column, out string text)
@ -97,6 +101,8 @@ namespace BizHawk.MultiClient
UpdateList();
MovieView.SelectedIndices.Clear();
MovieView.setSelection(MovieList.Count - 1);
sortReverse = false;
sortedCol = "";
}
}
@ -194,19 +200,25 @@ namespace BizHawk.MultiClient
private void OrderColumn(int columnToOrder)
{
string columnName = MovieView.Columns[columnToOrder].Text;
if (sortedCol.CompareTo(columnName) != 0)
sortReverse = false;
InsertionSort(MovieList, columnName);
sortedCol = columnName;
sortReverse = !(sortReverse);
MovieView.Refresh();
}
private void InsertionSort(List<Movie> smallList, string parameter)
{
int sort = 1;
if (sortReverse)
sort = -1;
for (int i = 0; i < smallList.Count; i++)
{
int smallest = i;
for (int k = i + 1; k < smallList.Count; k++)
{
if (smallList[smallest].CompareTo(smallList[k], parameter) == 1)
if (smallList[smallest].CompareTo(smallList[k], parameter) == sort)
smallest = k;
}