示例#1
0
 public static string GetStatusText(VersionControlStatus assetStatus)
 {
     if (assetStatus.reflectionLevel == VCReflectionLevel.Pending)
     {
         return("Pending");
     }
     if (assetStatus.fileStatus == VCFileStatus.Conflicted)
     {
         return("Conflicted");
     }
     if (assetStatus.fileStatus == VCFileStatus.Deleted)
     {
         return("Deleted");
     }
     if (assetStatus.lockStatus == VCLockStatus.LockedHere)
     {
         return(Terminology.getlock + (assetStatus.fileStatus == VCFileStatus.Modified?"*":""));
     }
     if (assetStatus.LocalEditAllowed())
     {
         return(Terminology.allowLocalEdit + (assetStatus.fileStatus == VCFileStatus.Modified ? "*" : ""));
     }
     if (assetStatus.ModifiedWithoutLock())
     {
         return("Modified!");
     }
     if (assetStatus.lockStatus == VCLockStatus.LockedOther)
     {
         return(Terminology.lockedBy + "'" + assetStatus.owner + "'");
     }
     if (assetStatus.fileStatus == VCFileStatus.Modified)
     {
         return("Modified");
     }
     if (assetStatus.fileStatus == VCFileStatus.Unversioned)
     {
         return(Terminology.unversioned);
     }
     if (assetStatus.fileStatus == VCFileStatus.Added)
     {
         return("Added");
     }
     if (assetStatus.fileStatus == VCFileStatus.Replaced)
     {
         return("Replaced");
     }
     if (assetStatus.fileStatus == VCFileStatus.Ignored)
     {
         return("Ignored");
     }
     if (assetStatus.remoteStatus == VCRemoteFileStatus.Modified)
     {
         return("Modified on server");
     }
     if (assetStatus.fileStatus == VCFileStatus.Normal)
     {
         return("Normal");
     }
     return("-");
 }
示例#2
0
        public static void VersionControlStatusGUI(GUIStyle style, VersionControlStatus assetStatus, Object obj, bool showAddCommit, bool showLockAndAllowLocalEdit, bool showRevert, bool confirmRevert = false)
        {
            using (new PushState <bool>(GUI.enabled, VCCommands.Instance.Ready, v => GUI.enabled = v))
            {
                if (assetStatus.lockStatus == VCLockStatus.LockedHere || assetStatus.ModifiedOrLocalEditAllowed() || !VCUtility.ManagedByRepository(assetStatus))
                {
                    if (!assetStatus.ModifiedOrLocalEditAllowed() && obj.GetAssetPath() != "" && showAddCommit)
                    {
                        if (GUILayout.Button((VCUtility.ManagedByRepository(assetStatus) ? Terminology.commit : Terminology.add), GetPrefabToolbarStyle(style, true)))
                        {
                            VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector");
                        }
                    }
                }

                if (!VCUtility.HaveVCLock(assetStatus) && VCUtility.ManagedByRepository(assetStatus) && showLockAndAllowLocalEdit)
                {
                    if (assetStatus.fileStatus == VCFileStatus.Added)
                    {
                        if (GUILayout.Button(Terminology.commit, GetPrefabToolbarStyle(style, true)))
                        {
                            VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector");
                        }
                    }
                    else if (assetStatus.lockStatus != VCLockStatus.LockedOther)
                    {
                        if (GUILayout.Button(Terminology.getlock, GetPrefabToolbarStyle(style, true)))
                        {
                            VCCommands.Instance.GetLockTask(obj.ToAssetPaths());
                        }
                    }
                    if (!assetStatus.LocalEditAllowed())
                    {
                        if (GUILayout.Button(Terminology.allowLocalEdit, GetPrefabToolbarStyle(style, true)))
                        {
                            VCCommands.Instance.AllowLocalEdit(obj.ToAssetPaths());
                        }
                    }
                }

                if (showRevert)
                {
                    if (GUILayout.Button(Terminology.revert, GetPrefabToolbarStyle(style, VCUtility.ShouldVCRevert(obj))))
                    {
                        if ((!confirmRevert || Event.current.shift) || VCUtility.VCDialog(Terminology.revert, obj))
                        {
                            var seletedGo   = Selection.activeGameObject;
                            var revertedObj = VCUtility.Revert(obj);
                            OnNextUpdate.Do(() => Selection.activeObject = ((obj is GameObject) ? revertedObj : seletedGo));
                        }
                    }
                }
            }
        }
示例#3
0
        public static string GetLockStatusMessage(VersionControlStatus assetStatus)
        {
            string lockMessage = assetStatus.lockStatus.ToString();

            if (assetStatus.lockStatus == VCLockStatus.LockedOther)
            {
                lockMessage = Terminology.getlock + " by: " + assetStatus.owner;
            }
            if (assetStatus.lockStatus == VCLockStatus.LockedHere)
            {
                lockMessage = Terminology.getlock + " Here: " + assetStatus.owner;
            }
            if (assetStatus.lockStatus == VCLockStatus.NoLock)
            {
                if (ComposedString.IsNullOrEmpty(assetStatus.assetPath))
                {
                    lockMessage = "Not saved";
                }
                else if (assetStatus.fileStatus == VCFileStatus.Added)
                {
                    lockMessage = "Added";
                }
                else if (assetStatus.fileStatus == VCFileStatus.Replaced)
                {
                    lockMessage = "Replaced";
                }
                else
                {
                    lockMessage = VCUtility.ManagedByRepository(assetStatus) ? "Not " + Terminology.getlock : "Not on Version Control";
                }
            }
            if (assetStatus.LocalEditAllowed())
            {
                lockMessage = Terminology.allowLocalEdit;
                if ((assetStatus.lockStatus == VCLockStatus.LockedOther))
                {
                    lockMessage += " (" + Terminology.getlock + " By: " + assetStatus.owner + " )";
                }
            }
            if (assetStatus.fileStatus == VCFileStatus.Modified)
            {
                lockMessage += "*";
            }
            return(lockMessage);
        }
示例#4
0
        public static Color GetStatusColor(VersionControlStatus assetStatus, bool includeLockStatus)
        {
            if (assetStatus.treeConflictStatus == VCTreeConflictStatus.TreeConflict)
            {
                return(conflictedColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Conflicted)
            {
                return(conflictedColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Missing)
            {
                return(missingColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Ignored)
            {
                return(ignoreColor);
            }
            if (assetStatus.LocalEditAllowed())
            {
                return(localEditColor);
            }
            if (assetStatus.ModifiedWithoutLock())
            {
                return(modifiedNoLockColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Deleted)
            {
                return(deletedColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Added)
            {
                return(addedColor);
            }

            if (includeLockStatus)
            {
                if (assetStatus.lockStatus == VCLockStatus.LockedHere)
                {
                    return(lockedColor);
                }
                if (assetStatus.lockStatus == VCLockStatus.LockedOther)
                {
                    return(lockedOtherColor);
                }
            }

            if (assetStatus.fileStatus == VCFileStatus.Modified)
            {
                return(modifiedColor);
            }
            if (assetStatus.reflectionLevel == VCReflectionLevel.Pending)
            {
                return(pendingColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Unversioned)
            {
                return(unversionedColor);
            }
            if (assetStatus.remoteStatus == VCRemoteFileStatus.Modified)
            {
                return(remoteModifiedColor);
            }
            if (assetStatus.fileStatus == VCFileStatus.Normal)
            {
                return(normalColor);
            }

            return(pink);
        }
示例#5
0
        public static void VersionControlStatusGUI(GUIStyle style, VersionControlStatus assetStatus, Object obj, bool showAddCommit, bool showLockAndAllowLocalEdit, bool showRevert, bool confirmRevert = false)
        {
            using (new PushState<bool>(GUI.enabled, VCCommands.Instance.Ready, v => GUI.enabled = v))
            {
                if (assetStatus.lockStatus == VCLockStatus.LockedHere || assetStatus.ModifiedOrLocalEditAllowed() || !VCUtility.ManagedByRepository(assetStatus))
                {
                    if (!assetStatus.ModifiedOrLocalEditAllowed() && obj.GetAssetPath() != "" && showAddCommit)
                    {
                        if (GUILayout.Button((VCUtility.ManagedByRepository(assetStatus) ? Terminology.commit : Terminology.add), GetPrefabToolbarStyle(style, true)))
                        {
                            VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector");
                        }
                    }
                }

                if (!VCUtility.HaveVCLock(assetStatus) && VCUtility.ManagedByRepository(assetStatus) && showLockAndAllowLocalEdit)
                {
                    if (assetStatus.fileStatus == VCFileStatus.Added)
                    {
                        if (GUILayout.Button(Terminology.commit, GetPrefabToolbarStyle(style, true)))
                        {
                            VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector");
                        }
                    }
                    else if (assetStatus.lockStatus != VCLockStatus.LockedOther)
                    {
                        if (GUILayout.Button(Terminology.getlock, GetPrefabToolbarStyle(style, true)))
                        {
                            VCCommands.Instance.GetLockTask(obj.ToAssetPaths());
                        }
                    }
                    if (!assetStatus.LocalEditAllowed())
                    {
                        if (GUILayout.Button(Terminology.allowLocalEdit, GetPrefabToolbarStyle(style, true)))
                        {
                            VCCommands.Instance.AllowLocalEdit(obj.ToAssetPaths());
                        }
                    }
                }

                if (showRevert)
                {
                    if (GUILayout.Button(Terminology.revert, GetPrefabToolbarStyle(style, VCUtility.ShouldVCRevert(obj))))
                    {
                        if ((!confirmRevert || Event.current.shift) || VCUtility.VCDialog(Terminology.revert, obj))
                        {
                            var seletedGo = Selection.activeGameObject;
                            var revertedObj = VCUtility.Revert(obj);
                            OnNextUpdate.Do(() => Selection.activeObject = ((obj is GameObject) ? revertedObj : seletedGo));
                        }
                    }
                }
            }
        }