public static void Open(E.GitURL gitURL) { var window = GetWindow <GitURLConfig>(true); window.titleContent = new GUIContent("GitURLConfig"); window.gitURL = gitURL; }
public void GUIInstallButton(E.GitURL gitURL) { var(rev, hash) = Helper.GetLockData(gitURL.packageName); //if( rev == string.Empty ) return; Tags[] tags = null; var read = Helper.ReadWebResponseToFile( Helper.ParseURL(gitURL.url), "tags", (content) => tags = JsonHelper.FromJson <Tags>("{\"Items\":" + content + "}")); if (!read) { EditorGUILayout.HelpBox("\"tags.json\" Not Found. Please Refresh Button Push.", MessageType.Warning); return; } var(ico, revisionName, revisionLock) = GetInstallPackageInfo(gitURL.packageName); var buttonName = $"{gitURL.packageName}"; var rName = revisionName; if (rName != string.Empty) { if (rName == "HEAD") { var t = tags.GetTags(hash); if (t != null) { rName = t.name; } } buttonName += $" - {rName} [{hash}]"; } if (GUILayout.Button(new GUIContent(buttonName, ico), s_styles.ExposablePopupItem, GUILayout.ExpandWidth(false))) { if (revisionName != string.Empty) { var m = new GenericMenu(); //if( revisionName == "HEAD" ) { m.AddItem(new GUIContent($"Update [{revisionName}]"), false, () => { GetTagsResponse(gitURL.url); Helper.UpdatePackageHEAD(gitURL.packageName); }); //} m.AddItem(new GUIContent("Uninstall Package"), false, () => Helper.UninstallPackage(gitURL.packageName)); if (!revisionLock) { m.AddSeparator(""); //m.AddItem( new GUIContent( "HEAD" ), rev == "HEAD", () => { } ); var vers = GetVersions(); foreach (var v in tags) { m.AddItem(new GUIContent($"{v.name}: {v.commit.sha}"), hash == v.commit.sha, (_rev) => { Helper.ChangeRevision(gitURL.packageName, (string)_rev, tags.GetRevisionHash((string)_rev)); }, v.name); } } m.DropDown(new Rect(Event.current.mousePosition, new Vector2(0, 0))); } else { var m = new GenericMenu(); m.AddItem(new GUIContent("Install Package"), false, () => { Task.Run(() => InstallPackageProcess(gitURL)); }); m.DropDown(new Rect(Event.current.mousePosition, new Vector2(0, 0))); } } }