A game about forced loneliness, made by TACStudios
1using UnityEditor; 2 3using PlasticGui.WorkspaceWindow.Merge; 4using Unity.PlasticSCM.Editor.Views.Merge.Developer.DirectoryConflicts; 5using UnityEngine; 6 7namespace Unity.PlasticSCM.Editor.Views.Merge.Developer 8{ 9 internal class MergeViewMenu 10 { 11 internal GenericMenu Menu 12 { 13 get 14 { 15 return mMergeViewFileConflictMenu != null ? 16 mMergeViewFileConflictMenu.Menu : mMergeViewDirectoryConflictMenu != null ? 17 mMergeViewDirectoryConflictMenu.Menu : null; 18 } 19 } 20 21 internal MergeViewMenu( 22 IMergeViewMenuOperations mergeViewMenuOperations, 23 MergeViewFileConflictMenu.IMetaMenuOperations mergeMetaMenuOperations, 24 bool isIncomingMerge, 25 bool isMergeTo, 26 bool isShelvesetMerge = false) 27 { 28 mMergeViewMenuOperations = mergeViewMenuOperations; 29 mMergeMetaMenuOperations = mergeMetaMenuOperations; 30 mIsIncomingMerge = isIncomingMerge; 31 mIsMergeTo = isMergeTo; 32 mIsShelvesetMerge = isShelvesetMerge; 33 } 34 35 internal void Popup() 36 { 37 SelectedMergeChangesGroupInfo selectedGroupInfo = 38 mMergeViewMenuOperations.GetSelectedMergeChangesGroupInfo(); 39 40 if (selectedGroupInfo.SelectedConflict == null) 41 return; 42 43 if (selectedGroupInfo.IsDirectoryConflictsSelection) 44 { 45 GetMergeViewDirectoryConflictMenu().Popup(); 46 return; 47 } 48 49 GetMergeViewFileConflictMenu().Popup(); 50 } 51 52 internal bool ProcessKeyActionIfNeeded(Event e) 53 { 54 SelectedMergeChangesGroupInfo selectedGroupInfo = 55 mMergeViewMenuOperations.GetSelectedMergeChangesGroupInfo(); 56 57 if (selectedGroupInfo.SelectedConflict == null) 58 return false; 59 60 if (selectedGroupInfo.IsDirectoryConflictsSelection) 61 return false; 62 63 if (mMergeViewFileConflictMenu == null) 64 return false; 65 66 return mMergeViewFileConflictMenu.ProcessKeyActionIfNeeded(e); 67 } 68 69 MergeViewFileConflictMenu GetMergeViewFileConflictMenu() 70 { 71 if (mMergeViewFileConflictMenu == null) 72 { 73 mMergeViewFileConflictMenu = 74 new MergeViewFileConflictMenu( 75 mMergeViewMenuOperations, 76 mMergeMetaMenuOperations, 77 mIsIncomingMerge, 78 mIsMergeTo, 79 mIsShelvesetMerge); 80 } 81 82 return mMergeViewFileConflictMenu; 83 } 84 85 MergeViewDirectoryConflictMenu GetMergeViewDirectoryConflictMenu() 86 { 87 if (mMergeViewDirectoryConflictMenu == null) 88 { 89 mMergeViewDirectoryConflictMenu = 90 new MergeViewDirectoryConflictMenu(mMergeViewMenuOperations); 91 } 92 93 return mMergeViewDirectoryConflictMenu; 94 } 95 96 MergeViewFileConflictMenu mMergeViewFileConflictMenu; 97 MergeViewDirectoryConflictMenu mMergeViewDirectoryConflictMenu; 98 99 readonly IMergeViewMenuOperations mMergeViewMenuOperations; 100 readonly MergeViewFileConflictMenu.IMetaMenuOperations mMergeMetaMenuOperations; 101 readonly bool mIsIncomingMerge; 102 readonly bool mIsMergeTo; 103 readonly bool mIsShelvesetMerge; 104 } 105}