void OnGUI() { if (m_info == null) { m_info = new Info(); } bool foundPath = false; string previousPath = m_info.m_directoryRelative; UnityPathSelectionInfo selected; UnityPathSelectionInfo.Get(out foundPath, out selected); m_info.m_directoryRelative = selected.GetRelativePath(true); m_info.m_directoryAbsolute = selected.GetAbsolutePath(true); bool changeFound = m_info.m_directoryRelative != previousPath; bool resquestRefresh = GUILayout.Button("Refresh"); if (resquestRefresh || changeFound) { m_gitInProject.Refresh(); m_info.m_gitLinksPath = QuickGit.GetAllFolders(m_info.m_directoryAbsolute, true); QuickGit.GetGitsInDirectory(m_info.m_directoryAbsolute, out m_info.m_gitLinks); m_info.m_projectGitInParent = ""; GitLinkOnDisk gd; QuickGit.GetGitInParents(selected.GetAbsolutePath(true), QuickGit.PathReadDirection.LeafToRoot, out gd); if (gd != null) { m_info.m_projectGitInParent = gd.GetDirectoryPath(); } } EditorGUILayout.TextField("Relative >", m_info.m_directoryRelative); EditorGUILayout.TextField("Abosluete > ", m_info.m_directoryAbsolute); // if (foundPath) { if (!string.IsNullOrEmpty(m_info.m_projectGitInParent)) { EditorGUILayout.TextField("Parent Git", m_info.m_projectGitInParent.Length <= 0?"Project is not in a git.": m_info.m_projectGitInParent); } m_info.m_displayAllFolder = EditorGUILayout.Toggle("All Directory", m_info.m_displayAllFolder); if (m_info.m_displayAllFolder) { for (int i = 0; i < m_info.m_gitLinksPath.Length; i++) { m_info.m_gitLinksPath[i] = EditorGUILayout.TextField("Directory", m_info.m_gitLinksPath[i]); } } m_info.m_displayAllGitInFolder = EditorGUILayout.Toggle("All Repository", m_info.m_displayAllGitInFolder); if (m_info.m_displayAllGitInFolder) { for (int i = 0; i < m_info.m_gitLinks.Count; i++) { GitEditorDrawer.DisplayGitInfoWithCommand(m_info.m_gitLinks[i], ref m_info.m_displayprojectsInfo[i], ref m_info.m_displayInfoInGits[i]); EditorGUILayout.Space(); } } } GUILayout.BeginHorizontal(); GitEditorDrawer.ButtonDeleteEmptyFiles(m_info.m_directoryAbsolute); GitEditorDrawer.ButtonRefreshGitKeeper(m_info.m_directoryAbsolute); GUILayout.EndHorizontal(); }
void OnGUI() { if (m_info == null) { m_info = new Info(50); } m_info.m_scollrPackagePosition = GUILayout.BeginScrollView(m_info.m_scollrPackagePosition); if (m_info == null) { m_info = new Info(50); } if (GUILayout.Button("Refresh")) { m_gitInProject.Refresh(); } GUILayout.BeginHorizontal(); GitEditorDrawer.ButtonDeleteEmptyFiles(UnityPaths.GetUnityAssetsPath()); GitEditorDrawer.ButtonRefreshGitKeeper(UnityPaths.GetUnityAssetsPath()); GUILayout.EndHorizontal(); if (GUILayout.Button("Save Them All (Add>Commit)")) { m_gitInProject.AutoSaveLocal(); } if (GUILayout.Button("Push Them All (A>C>Pull>Push)")) { m_gitInProject.AutoSaveAndPush(); } m_info.m_inParent = EditorGUILayout.Toggle(" > Git(s) In Parent", m_info.m_inParent, EditorStyles.boldLabel); if (m_info.m_inParent) { List <GitLinkOnDisk> gits = m_gitInProject.GetParents(); if (gits.Count <= 0) { GUILayout.Label("None found"); } for (int i = 0; i < gits.Count; i++) { if (i >= m_info.m_tableCapacity) { break; } GitEditorDrawer.DisplayGitInfoWithCommand(gits[i], ref m_info.m_displayprojectsInfoParent[i], ref m_info.m_displayInfoInGitsParent[i]); EditorGUILayout.Space(); } } GUILayout.Space(space); m_info.m_inProject = EditorGUILayout.Toggle(" > Git(s) In Assets", m_info.m_inProject, EditorStyles.boldLabel); if (m_info.m_inProject) { List <GitLinkOnDisk> gits = m_gitInProject.GetGitInProject(); if (gits.Count <= 0) { GUILayout.Label("None found"); } for (int i = 0; i < gits.Count; i++) { if (i >= m_info.m_tableCapacity) { break; } GitEditorDrawer.DisplayGitInfoWithCommand(gits[i], ref m_info.m_displayprojectsInfoInProject[i], ref m_info.m_displayInfoInGitsInProject[i]); EditorGUILayout.Space(); } } GUILayout.Space(space); GUILayout.EndScrollView(); }