public static void CreateVCContextMenu(ref GenericMenu menu, string assetPath, Object instance = null) { if (VCUtility.ValidAssetPath(assetPath)) { bool ready = VCCommands.Instance.Ready; if (ready) { if (instance && ObjectUtilities.ChangesStoredInScene(instance)) { assetPath = SceneManagerUtilities.GetCurrentScenePath(); } var validActions = GetValidActions(assetPath, instance); if ((validActions & ValidActions.Diff) != 0) { menu.AddItem(new GUIContent(Terminology.diff), false, () => MergeHandler.DiffWithBase(assetPath)); } if ((validActions & ValidActions.Add) != 0) { menu.AddItem(new GUIContent(Terminology.add), false, () => VCCommands.Instance.Add(new[] { assetPath })); } if ((validActions & ValidActions.Open) != 0) { menu.AddItem(new GUIContent(Terminology.getlock), false, () => GetLock(assetPath, instance)); } if ((validActions & ValidActions.OpenLocal) != 0) { menu.AddItem(new GUIContent(Terminology.allowLocalEdit), false, () => AllowLocalEdit(assetPath, instance)); } if ((validActions & ValidActions.Commit) != 0) { menu.AddItem(new GUIContent(Terminology.commit), false, () => Commit(assetPath, instance)); } if ((validActions & ValidActions.Unlock) != 0) { menu.AddItem(new GUIContent(Terminology.unlock), false, () => VCCommands.Instance.ReleaseLock(new[] { assetPath })); } if ((validActions & ValidActions.Delete) != 0) { menu.AddItem(new GUIContent(Terminology.delete), false, () => VCCommands.Instance.Delete(new[] { assetPath })); } if ((validActions & ValidActions.Revert) != 0) { menu.AddItem(new GUIContent(Terminology.revert), false, () => Revert(assetPath, instance)); } if ((validActions & ValidActions.UseTheirs) != 0) { menu.AddItem(new GUIContent("Use Theirs"), false, () => VCCommands.Instance.Resolve(new [] { assetPath }, ConflictResolution.Theirs)); } if ((validActions & ValidActions.UseMine) != 0) { menu.AddItem(new GUIContent("Use Mine"), false, () => VCCommands.Instance.Resolve(new [] { assetPath }, ConflictResolution.Mine)); } if ((validActions & ValidActions.Merge) != 0) { menu.AddItem(new GUIContent("Merge"), false, () => MergeHandler.ResolveConflict(assetPath)); } if ((validActions & ValidActions.AddChangeList) != 0) { menu.AddItem(new GUIContent("Add To " + Terminology.changelist), false, () => ChangeListWindow.Open(new [] { assetPath })); } if ((validActions & ValidActions.RemoveChangeList) != 0) { menu.AddItem(new GUIContent("Remove From " + Terminology.changelist), false, () => VCCommands.Instance.ChangeListRemove(new [] { assetPath })); } } else { menu.AddDisabledItem(new GUIContent("..Busy..")); } } }
public static void CreateVCContextMenu(ref GenericMenu menu, IEnumerable <string> assetPaths) { menu.AddItem(new GUIContent(Terminology.add), false, () => VCCommands.Instance.Add(assetPaths)); menu.AddItem(new GUIContent(Terminology.getlock), false, () => VCCommands.Instance.GetLock(assetPaths)); menu.AddItem(new GUIContent(Terminology.commit), false, () => VCCommands.Instance.CommitDialog(assetPaths)); menu.AddItem(new GUIContent(Terminology.revert), false, () => VCCommands.Instance.Revert(assetPaths)); menu.AddItem(new GUIContent(Terminology.delete), false, () => VCCommands.Instance.Delete(assetPaths)); menu.AddItem(new GUIContent("Add to " + Terminology.changelist), false, () => ChangeListWindow.Open(assetPaths)); menu.AddItem(new GUIContent("Remove from " + Terminology.changelist), false, () => VCCommands.Instance.ChangeListRemove(assetPaths)); }