示例#1
0
        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();
                }
            }
        }
示例#2
0
 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);
            }
        }
示例#5
0
        /// <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);
        }