static void OpenFilePanel( ) { var fname = EditorUtility.OpenFilePanel("Please select a file", E.i.opendir, ""); if (!string.IsNullOrEmpty(fname)) { using (var st = new StreamReader(fname)) { var lst = new List <string>(); var sss = st.ReadToEnd(); if (!string.IsNullOrEmpty(sss)) { var ss = sss.Split('\n'); for (int i = 0; i < ss.Length; i++) { var s = ss[i]; s = s.TrimEnd('\r'); if (!string.IsNullOrEmpty(s)) { lst.Add(s); } } } E.AddURLs(lst.ToArray()); GitHubDownloadWindow.Repaint(); } } }
void DrawGUI() { using (new GUILayout.VerticalScope(EditorStyles.helpBox)) { EditorGUI.BeginChangeCheck(); gitURL.branchName = EditorGUILayout.TextField("revision", gitURL.branchName); gitURL.enablePackage = EditorGUILayout.Toggle("package.json", gitURL.enablePackage); gitURL.packageName = EditorGUILayout.TextField("packageName", gitURL.packageName); //using( new EditorGUI.DisabledGroupScope( true ) ) { // gitURL.version = EditorGUILayout.TextField( "version", gitURL.version ); //} if (EditorGUI.EndChangeCheck()) { E.Save(); } } using (new GUILayout.HorizontalScope()) { if (!string.IsNullOrEmpty(networkErr)) { GUILayout.Label(networkErr); } GUILayout.FlexibleSpace(); //if( gitURL.packageName == string.Empty || gitURL.enablePackage ==false) { if (GUILayout.Button("Get from GitHub", GUILayout.ExpandWidth(false))) { var wc = new WebClient(); wc.DownloadStringCompleted += (sender, e) => { //networking = false; if (e.Error == null) { var obj = ManifestJson.Deserialize(e.Result); Dictionary <string, object> dictionary = obj as Dictionary <string, object>; gitURL.packageName = dictionary["name"] as string; //gitURL.version = dictionary[ "version" ] as string; gitURL.enablePackage = true; E.Save(); Repaint(); } else { networkErr = "package.json: (404) Not Found."; gitURL.packageName = ""; gitURL.enablePackage = false; Repaint(); } }; var uu = gitURL.url.Split('/'); Debug.Log(uu[3]); Debug.Log(uu[4]); var branch = gitURL.branchName; if (string.IsNullOrEmpty(branch)) { branch = "HEAD"; } wc.DownloadStringAsync(new Uri($"https://raw.githubusercontent.com/{uu[ 3 ]}/{GetFileNameWithoutExtension( uu[ 4 ] )}/{branch}/package.json")); networkErr = ""; } //} } }
void OnEnable() { s_window = this; E.Load(); MakeDownloadList(); ReadWebResponseToFile(enableLatest); indexChanged = true; }
void DrawGUI() { E.Load(); if (s_styles == null) { s_styles = new Styles(); MakeDownloadList(); ReadWebResponseToFile(enableLatest); } DrawToolbar(); var info = Helper.ParseURL(GetCurrentURL()); if (info == null) { EditorGUILayout.HelpBox("Set URL from preferences", MessageType.Info); return; } if (RequestStatus.networkError) { EditorGUILayout.HelpBox(RequestStatus.networkingErrorMsg, MessageType.Error); return; } using (new GUILayout.HorizontalScope()) { bool force = false; if (indexChanged) { indexChanged = false; if (m_js == null || m_js.Count == 0) { force = true; } } if (/*GUILayout.Button( "Get Releases Latest" ) ||*/ force) { //Debug.Log( "Get Releases Latest" ); GetReleasesResponse(GetCurrentURL(), enableLatest); } } using (var sc = new GUILayout.ScrollViewScope(m_scroll)) { if (m_js != null) { m_scroll = sc.scrollPosition; if (m_js.Count == 0) { if (!RequestStatus.networking) { EditorGUILayout.HelpBox("No release", MessageType.Warning); } } else { var data = E.GetData(GetCurrentURL()); if (data.enablePackage) { using (new GUILayout.HorizontalScope(s_styles.helpBox)) { GUIInstallButton(data); } GUILayout.Space(4); } foreach (var p in m_js) { using (new GUILayout.VerticalScope(s_styles.helpBox)) { using (new GUILayout.HorizontalScope()) { p.toggle = GUIHelper.Foldout(p.toggle, $"{p.tag_name}"); var dldirs = m_downloadDirs.Where(x => GetFileName(x) == p.tag_name).ToList(); foreach (var dr in dldirs) { foreach (var fname in Directory.GetFiles(dr)) { if (GetExtension(fname) == ".unitypackage") { var cont = new GUIContent(s_styles.IconSceneAsset); var rc = GUILayoutUtility.GetRect(cont, GUIHelper.Styles.iconButton); #if UNITY_2019_3_OR_NEWER rc.y += 1; #endif if (GUIHelper.IconButton(rc, s_styles.IconSceneAsset)) { s_packagePath = fname; s_interactive = true; EditorApplication.update += DeleyImportPackage; } } } } } if (!p.toggle) { continue; } EditorGUILayout.LabelField(p.body, s_styles.helpBox); foreach (var asset in p.assets) { GUIDownloadButton(asset.browser_download_url, info[0], info[1], p.tag_name); } if (!string.IsNullOrEmpty(p.zipball_url)) { GUIDownloadButton("Source code (zip)", p.zipball_url, info[0], info[1], p.tag_name, ".zip"); } if (!string.IsNullOrEmpty(p.tarball_url)) { GUIDownloadButton("Source code (tar.gz)", p.tarball_url, info[0], info[1], p.tag_name, ".tar.gz"); } } } } } } if (RequestStatus.networking) { var last = GUILayoutUtility.GetLastRect(); last.height = 20; var cont = new GUIContent(RequestStatus.networkingMsg, s_styles.IconWaitSpin[RequestStatus.m_count]); last.width = EditorStyles.label.CalcSize(cont).x; last.x += 4; last.width += 4; last.y += 4; EditorGUI.DrawRect(last, new Color(1, 1, 1, 1.0f)); GUI.Label(last, cont); } }
/// <summary> /// /// </summary> static void DrawGUI() { E.Load(); if (s_styles == null) { s_styles = new Styles(); } if (E.i.gitUrls == null) { E.i.gitUrls = new List <E.GitURL>(); s_changed = true; } //if( s_rl == null ) { // s_rl = MakeRL(); //} EditorGUI.BeginChangeCheck(); GUILayout.Label("Enter URL"); using (new GUILayout.HorizontalScope()) { EditorGUI.BeginChangeCheck(); var _t = EditorGUILayout.TextField(E.i.adb_exe); if (EditorGUI.EndChangeCheck()) { E.i.adb_exe = _t; } var r = GUILayoutUtility.GetRect(new GUIContent(s_styles.ol_plus), GUIHelper.Styles.iconButton); r.y += 3; if (GUIHelper.IconButton(r, s_styles.ol_plus)) { var a = CheckURL(E.i.adb_exe); if (!string.IsNullOrEmpty(a)) { E.AddURLs(a); GitHubDownloadWindow.Repaint(); } } r = GUILayoutUtility.GetRect(new GUIContent(s_styles.Favorite), GUIHelper.Styles.iconButton); r.y += 3; if (GUIHelper.IconButton(r, s_styles.Favorite)) { OpenFilePanel(); } } GUILayout.Space(8); int delIndex = -1; var ss = E.i.gitUrls.Select(x => Helper.ParseURL(x.url)).ToArray(); string name = string.Empty; for (var i = 0; i < ss.Length; i++) { var s = ss[i]; if (name != s[0]) { if (name != string.Empty) { GUILayout.EndVertical(); } GUILayout.BeginVertical( ); name = s[0]; GUILayout.Label(s[0], EditorStyles.boldLabel); } using (new GUILayout.HorizontalScope(EditorStyles.helpBox)) { GUILayout.Label(s[1]); if (GUIHelper.IconButton(s_styles.IconInfo)) { GitHubView.Open($"{Path.GetDirectoryName( E.i.gitUrls[ i ].url )}/{Path.GetFileNameWithoutExtension( E.i.gitUrls[ i ].url )}"); } if (GUIHelper.IconButton(s_styles.IconSetting)) { GitURLConfig.Open(E.i.gitUrls[i]); } if (GUIHelper.IconButton(s_styles.ol_minus)) { delIndex = i; } } } GUILayout.EndVertical(); if (0 <= delIndex) { E.i.gitUrls.RemoveAt(delIndex); s_changed = true; } if (EditorGUI.EndChangeCheck() || s_changed) { E.Save(); } GUILayout.Space(8f); }