BizHawk/BizHawk.Client.EmuHawk/movie/EditCommentsForm.cs

114 lines
2.3 KiB
C#

using System;
using System.ComponentModel;
using System.Linq;
using System.Windows.Forms;
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class EditCommentsForm : Form
{
private IMovie _selectedMovie;
private string _lastHeaderClicked;
private bool _sortReverse;
public EditCommentsForm()
{
InitializeComponent();
_lastHeaderClicked = string.Empty;
_sortReverse = false;
}
public bool ForceReadWrite { get; set; }
private void EditCommentsForm_Load(object sender, EventArgs e)
{
if (!ForceReadWrite && Global.MovieSession.ReadOnly)
{
CommentGrid.Columns[0].ReadOnly = true;
Text = "View Comments";
}
if (CommentGrid.Rows.Count > 8)
{
var x = Height + ((CommentGrid.Rows.Count - 8) * 21);
Height = x < 600 ? x : 600;
}
}
private void Save()
{
_selectedMovie.Comments.Clear();
for (int i = 0; i < CommentGrid.Rows.Count - 1; i++)
{
var c = CommentGrid.Rows[i].Cells[0];
_selectedMovie.Comments.Add(c.Value.ToString());
}
_selectedMovie.Save();
}
public void GetMovie(IMovie m)
{
_selectedMovie = m;
if (!m.Comments.Any())
{
return;
}
for (int i = 0; i < m.Comments.Count; i++)
{
CommentGrid.Rows.Add();
var c = CommentGrid.Rows[i].Cells[0];
c.Value = m.Comments[i];
}
}
private void Cancel_Click(object sender, EventArgs e)
{
Close();
}
private void OK_Click(object sender, EventArgs e)
{
Save();
Close();
}
private void SaveBtn_Click(object sender, EventArgs e)
{
Save();
}
private void OnColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
SortColumn(CommentGrid.Columns[e.ColumnIndex]);
}
private void SortColumn(DataGridViewColumn e)
{
ListSortDirection _direction;
DataGridViewColumn _column = e;
if (_lastHeaderClicked != _column.Name)
{
_sortReverse = false;
}
if (!_sortReverse)
{
_direction = ListSortDirection.Ascending;
}
else
{
_direction = ListSortDirection.Descending;
}
CommentGrid.Sort(_column, _direction);
_lastHeaderClicked = _column.Name;
_sortReverse = !_sortReverse;
CommentGrid.Refresh();
}
}
}