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

108 lines
2.2 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 = "";
_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)
{
DataGridViewColumn column = e;
if (_lastHeaderClicked != column.Name)
{
_sortReverse = false;
}
var direction = !_sortReverse
? ListSortDirection.Ascending
: ListSortDirection.Descending;
CommentGrid.Sort(column, direction);
_lastHeaderClicked = column.Name;
_sortReverse = !_sortReverse;
CommentGrid.Refresh();
}
}
}