Exemplo n.º 1
0
    public static void SVNStatusGUI(GUIStyle style, SVNStatus svnStatus, Object obj, bool showAddCommit, bool showLockBypass, bool showRevert)
    {
        bool svnBusy = SVNCommands.instance.svnBusy;

        using (new PushState <bool>(GUI.enabled, !svnBusy, v => GUI.enabled = v))
        {
            if (svnStatus.lockStatus == ESVNLockStatus.LockedHere || svnStatus.bypassRevisionControl || !SVNUtility.ManagedByRepository(svnStatus))
            {
                if (!svnStatus.bypassRevisionControl && SVNUtility.GetAssetPath(obj) != "" && showAddCommit)
                {
                    if (GUILayout.Button((SVNUtility.ManagedByRepository(svnStatus) ? SVNTerminoligy.commit : SVNTerminoligy.add), GetPrefabToolbarStyle(style, true)))
                    {
                        SVNUtility.CommitPrefab(obj, SVNTerminoligy.commit + " from Inspector");
                    }
                }
            }

            if (!SVNUtility.HaveSVNLock(svnStatus) && SVNUtility.ManagedByRepository(svnStatus) && showLockBypass)
            {
                if (svnStatus.lockStatus != ESVNLockStatus.LockedOther)
                {
                    if (GUILayout.Button(SVNTerminoligy.getlock, GetPrefabToolbarStyle(style, true)))
                    {
                        SVNUtility.GetSVNLock(obj);
                    }
                }
                if (!svnStatus.bypassRevisionControl)
                {
                    if (GUILayout.Button(SVNTerminoligy.bypass, GetPrefabToolbarStyle(style, true)))
                    {
                        SVNUtility.SetBypass(obj);
                    }
                }
            }

            if (showRevert)
            {
                if (GUILayout.Button(SVNTerminoligy.revert, GetPrefabToolbarStyle(style, SVNUtility.ShouldSVNRevert(obj))))
                {
                    SVNUtility.Revert(obj);
                }
            }
        }
    }