Get ctrl-y working - redo.

This commit is contained in:
Tim Young 2018-03-17 12:07:51 -05:00
parent c705ac0db3
commit fd777e56b3

View File

@ -62,6 +62,7 @@ namespace EduNetworkBuilder
private List<HelpURL> HelpURLs = new List<HelpURL>(); private List<HelpURL> HelpURLs = new List<HelpURL>();
private List<Network> storedNetworkStates = new List<Network>(); //for ctrl-z going back in time to past state private List<Network> storedNetworkStates = new List<Network>(); //for ctrl-z going back in time to past state
private List<Network> ForwardstoredNetworkStates = new List<Network>(); //for ctrl-y going forward to a ctrl-y state
public BuilderWindow(string FirstArg="") public BuilderWindow(string FirstArg="")
{ {
@ -234,10 +235,20 @@ namespace EduNetworkBuilder
{ {
if(storedNetworkStates.Count > 0) if(storedNetworkStates.Count > 0)
{ {
ForwardstoredNetworkStates.Insert(0, myNetwork);//So we can ctrl-y to this state. Undo the undo
ChangeToPastState(storedNetworkStates[0]); ChangeToPastState(storedNetworkStates[0]);
storedNetworkStates.RemoveAt(0); storedNetworkStates.RemoveAt(0);
} }
} }
if (e.KeyCode == Keys.Y && e.Modifiers == Keys.Control)
{
if (ForwardstoredNetworkStates.Count > 0)
{
storedNetworkStates.Insert(0, myNetwork);
ChangeToPastState(ForwardstoredNetworkStates[0]);
ForwardstoredNetworkStates.RemoveAt(0);
}
}
//MessageBox.Show(e.KeyCode.ToString()); //MessageBox.Show(e.KeyCode.ToString());
} }
@ -246,6 +257,7 @@ namespace EduNetworkBuilder
if (storedNetworkStates.Count > 0 && toStore.Equals(storedNetworkStates[0])) if (storedNetworkStates.Count > 0 && toStore.Equals(storedNetworkStates[0]))
return; //The states are identical. Do not store this state. return; //The states are identical. Do not store this state.
storedNetworkStates.Insert(0,Network.DeepClone(toStore)); storedNetworkStates.Insert(0,Network.DeepClone(toStore));
ForwardstoredNetworkStates.Clear();
int maxCount = 30; int maxCount = 30;
if(storedNetworkStates.Count > maxCount) if(storedNetworkStates.Count > maxCount)
{ {
@ -259,6 +271,7 @@ namespace EduNetworkBuilder
public void ClearStoredNetworkStates() public void ClearStoredNetworkStates()
{ {
storedNetworkStates.Clear(); storedNetworkStates.Clear();
ForwardstoredNetworkStates.Clear();
} }
/// <summary> /// <summary>