/// <summary>
	/// Raises the perform undoable action event. Invoked when inspector is modified or context menu item is
	/// selected (e.g., Revert Value to Prefab, Set to Value of).
	/// </summary>
	/// <param name="modifications">Information about what properties were modified by the action.</param>
	private static UndoPropertyModification[] OnPerformUndoableAction(UndoPropertyModification[] modifications)
	{
		HashSet<HashableSerializedProperty> propertyModifications = new HashSet<HashableSerializedProperty>(
#if UNITY_4_6 || UNITY_5_0
			(from mod in modifications select new HashableSerializedProperty(mod.propertyModification)).Where(
#else
			(from mod in modifications select new HashableSerializedProperty(mod.currentValue)).Where(
#endif
				mod => mod.SerializedProperty != null
			)
		);
		// add all upstream properties so parent setters are called
		foreach (HashableSerializedProperty modification in propertyModifications.ToArray())
		{
			foreach (HashableSerializedProperty upstreamProperty in GetUpstreamProperties(modification))
			{
				propertyModifications.Add(upstreamProperty);
			}
		}
		// trigger setters for all modified properties
		TriggerSettersForKnownModifications(propertyModifications);
		return modifications;
	}
Example #2
0
 /// <summary>
 /// <para>Test if deleting a changeset is a valid task to perform.</para>
 /// </summary>
 /// <param name="changesets">Changeset to test.</param>
 public static bool DeleteChangeSetsIsValid(UnityEditor.VersionControl.ChangeSets changesets)
 {
     return Internal_DeleteChangeSetsIsValid(changesets.ToArray());
 }
Example #3
0
 internal static Task RevertChangeSets(UnityEditor.VersionControl.ChangeSets changesets, RevertMode mode)
 {
     return Internal_RevertChangeSets(changesets.ToArray(), mode);
 }
Example #4
0
 /// <summary>
 /// <para>Starts a task that will attempt to delete the given changeset.</para>
 /// </summary>
 /// <param name="changesets">List of changetsets.</param>
 public static Task DeleteChangeSets(UnityEditor.VersionControl.ChangeSets changesets)
 {
     return Internal_DeleteChangeSets(changesets.ToArray());
 }