private static bool DisplayConfirmationDialog(string command, string assetPath, VersionControlStatus assetStatus)
 {
     bool acceptOperation = true;
     if (assetStatus.lockStatus == VCLockStatus.LockedOther)
     {
         acceptOperation = EditorUtility.DisplayDialog(command + " on repository?", assetPath + "\nis " + Terminology.getlock + " by [" + assetStatus.owner + "], are you sure you want to " + command + "?", command, "Cancel");
     }
     if (acceptOperation && assetStatus.fileStatus == VCFileStatus.Modified)
     {
         acceptOperation = EditorUtility.DisplayDialog(command + " on repository?", assetPath + "\nFile is modified on repository, are you sure you want to " + command + "?", command, "Cancel");
     }
     return acceptOperation;
 }
Beispiel #2
0
 public static void RequestStatus(string assetPath, VCSettings.EReflectionLevel reflectionLevel)
 {
     if (VCSettings.VCEnabled)
     {
         VersionControlStatus assetStatus = VCCommands.Instance.GetAssetStatus(assetPath);
         if (assetStatus.assetPath != null)
         {
             if (reflectionLevel == VCSettings.EReflectionLevel.Remote && assetStatus.reflectionLevel != VCReflectionLevel.Pending && assetStatus.reflectionLevel != VCReflectionLevel.Repository)
             {
                 VCCommands.Instance.RequestStatus(assetStatus.assetPath.Compose(), StatusLevel.Remote);
             }
             else if (reflectionLevel == VCSettings.EReflectionLevel.Local && assetStatus.reflectionLevel == VCReflectionLevel.None)
             {
                 VCCommands.Instance.RequestStatus(assetStatus.assetPath.Compose(), StatusLevel.Previous);
             }
         }
     }
 }
Beispiel #3
0
        private static void ReMoveAssetOnVC(string from, string to)
        {
            VersionControlStatus status = VCCommands.Instance.GetAssetStatus(from);
            string topUnversionedFolder;

            if (VCUtility.ManagedByRepository(status) && !InUnversionedParentFolder(from, out topUnversionedFolder))
            {
                if (DisplayConfirmationDialog("Move", from, status))
                {
                    if (InUnversionedParentFolder(to, out topUnversionedFolder))
                    {
                        string msg    = "Versioned files are moved into an unversioned folder. Add following unversioned folder first?\n\n" + topUnversionedFolder;
                        int    result = EditorUtility.DisplayDialogComplex("Add Folder?", msg, "Yes", "No", "Cancel");
                        if (result == 0)
                        {
                            MoveAssetBack(from, to);
                            VCCommands.Instance.Add(new[] { topUnversionedFolder });
                            VCCommands.Instance.Status(new[] { topUnversionedFolder }, StatusLevel.Local);
                        }
                        if (result == 1)
                        {
                            VCCommands.Instance.Delete(new[] { from }, OperationMode.Force);
                            return;
                        }
                        if (result == 2)
                        {
                            MoveAssetBack(from, to);
                            return;
                        }
                    }
                    else
                    {
                        MoveAssetBack(from, to);
                    }

                    VCCommands.Instance.Move(from, to);
                    AssetDatabase.Refresh();
                    GameObjectToAssetPathCache.ClearObjectToAssetPathCache();
                }
            }
        }
        private static AssetMoveResult OnWillMoveAsset(string from, string to)
        {
            if (!UseTeamLicence)
            {
                return(AssetMoveResult.DidNotMove);
            }

            VersionControlStatus status = VCCommands.Instance.GetAssetStatus(from);

            if (VCUtility.ManagedByRepository(status))
            {
                if (DisplayConfirmationDialog("Move", from, status))
                {
                    string topUnversionedFolder;
                    if (InUnversionedParentFolder(to, out topUnversionedFolder))
                    {
                        int result = EditorUtility.DisplayDialogComplex("Add Folder?", "Versioned files are moved into an unversioned folder. Add following unversioned folder first?\n\n" + topUnversionedFolder, "Yes", "No", "Cancel");
                        if (result == 0)
                        {
                            VCCommands.Instance.Add(new[] { topUnversionedFolder });
                            VCCommands.Instance.Status(new[] { topUnversionedFolder }, StatusLevel.Local);
                        }
                        if (result == 2)
                        {
                            return(AssetMoveResult.FailedMove);
                        }
                    }
                    if (VCCommands.Instance.Move(from, to))
                    {
                        D.Log("Version Control Move: " + from + " => " + to);
                        return(AssetMoveResult.DidMove);
                    }
                    return(AssetMoveResult.DidNotMove);
                }
                return(AssetMoveResult.FailedMove);
            }
            return(AssetMoveResult.DidNotMove);
        }
        private static bool DisplayConfirmationDialog(string command, string assetPath, VersionControlStatus assetStatus)
        {
            bool acceptOperation = true;

            if (assetStatus.lockStatus == VCLockStatus.LockedOther)
            {
                acceptOperation = EditorUtility.DisplayDialog(command + " on repository?", assetPath + "\nis " + Terminology.getlock + " by [" + assetStatus.owner + "], are you sure you want to " + command + "?", command, "Cancel");
            }
            if (acceptOperation && assetStatus.fileStatus == VCFileStatus.Modified)
            {
                acceptOperation = EditorUtility.DisplayDialog(command + " on repository?", assetPath + "\nFile is modified on repository, are you sure you want to " + command + "?", command, "Cancel");
            }
            return(acceptOperation);
        }
Beispiel #6
0
 public static bool ManagedByRepository(VersionControlStatus assetStatus)
 {
     return assetStatus.fileStatus != VCFileStatus.Unversioned && !ComposedString.IsNullOrEmpty(assetStatus.assetPath) && !Application.isPlaying;
 }
Beispiel #7
0
 public static bool HaveVCLock(VersionControlStatus assetStatus)
 {
     bool isManagedByRepository = ManagedByRepository(assetStatus);
     bool hasLocalLock = assetStatus.lockStatus == VCLockStatus.LockedHere;
     return isManagedByRepository && hasLocalLock;
 }
Beispiel #8
0
 public static bool HaveAssetControl(VersionControlStatus assetStatus)
 {
     return (!VCCommands.Active ||
             HaveVCLock(assetStatus) ||
             assetStatus.fileStatus == VCFileStatus.Added ||
             assetStatus.fileStatus == VCFileStatus.Unversioned ||
             assetStatus.fileStatus == VCFileStatus.Ignored ||
             assetStatus.LocalEditAllowed());
 }
Beispiel #9
0
 public static bool ManagedByRepository(VersionControlStatus assetStatus)
 {
     return(assetStatus.fileStatus != VCFileStatus.Unversioned && !ComposedString.IsNullOrEmpty(assetStatus.assetPath) && !Application.isPlaying);
 }
Beispiel #10
0
    protected override TreeViewItem BuildRoot()
    {
        VCTreeViewItem root = new VCTreeViewItem {
            id = 0, depth = -1, displayName = "Root"
        };

        Dictionary <string, int> dicDirectoryPathIdx = new Dictionary <string, int>();

        int  iStatusCount     = m_View.iStatusCount();
        bool bShowProgressBar = iStatusCount > 100;

        if (bShowProgressBar)
        {
            EditorUtility.DisplayCancelableProgressBar(cBuildRootProgressBarTitle, "Setup", 0);
        }

        List <TreeViewItem> liItems = new List <TreeViewItem>();

        for (int i = 0; i < iStatusCount; i++)
        {
            VersionControl.VersionControlStatus status = m_View.statusAtId(i);
            VCTreeViewItem treeViewItem = new VCTreeViewItem {
                id = i + 1, displayName = "Meow", m_data = status
            };
            liItems.Add(treeViewItem);

            string strDirPath = null;
            if (IsDirectory(strDirPath = treeViewItem.m_data.assetPath.Compose(), treeViewItem.m_data.fileStatus))
            {
                if (!dicDirectoryPathIdx.ContainsKey(strDirPath))
                {
                    dicDirectoryPathIdx.Add(strDirPath, i);
                }
            }

            if (bShowProgressBar)
            {
                if (EditorUtility.DisplayCancelableProgressBar(cBuildRootProgressBarTitle, "Setup", (i / (float)iStatusCount) * 0.5f))
                {
                    EditorUtility.ClearProgressBar();
                    return(root);
                }
            }
        }

        if (bShowProgressBar)
        {
            EditorUtility.DisplayCancelableProgressBar(cBuildRootProgressBarTitle, "Parenting", 0.5f);
        }

        for (int i = 0; i < liItems.Count; i++)
        {
            int iParent = m_View.iParentOfStatus(i, dicDirectoryPathIdx);
            if (iParent < 0)
            {
                root.AddChild(liItems[i]);
            }
            else
            {
                liItems[iParent].AddChild(liItems[i]);
            }
            if (bShowProgressBar)
            {
                if (EditorUtility.DisplayCancelableProgressBar(cBuildRootProgressBarTitle, "Parenting", (i / (float)liItems.Count) * 0.5f + 0.5f))
                {
                    EditorUtility.ClearProgressBar();
                    return(root);
                }
            }
        }

        if (bShowProgressBar)
        {
            EditorUtility.DisplayCancelableProgressBar(cBuildRootProgressBarTitle, "Finalizing TreeView...", 1f);
        }

        SetupDepthsFromParentsAndChildren(root);

        if (bShowProgressBar)
        {
            EditorUtility.ClearProgressBar();
        }

        return(root);
    }
    private int compareItems(VersionControl.VersionControlStatus _vcs1, VersionControl.VersionControlStatus _vcs2)
    {
        string str1 = "";
        string str2 = "";

        switch ((Column)m_treeView.multiColumnHeader.sortedColumnIndex)
        {
        case Column.Selection:
            //Todo: if selected set to a, if not to b
            break;

        case Column.Name:
            str1 = System.IO.Path.GetFileName((_vcs1.assetPath.Compose()));
            str2 = System.IO.Path.GetFileName((_vcs2.assetPath.Compose()));
            break;

        case Column.Status:
            str1 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileStatusContent((_vcs1)).text;
            str2 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileStatusContent((_vcs2)).text;
            break;

        case Column.AssetPath:
            str1 = _vcs1.assetPath.Compose();
            str2 = _vcs2.assetPath.Compose();
            break;

        case Column.Meta:
            str1 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileStatusContent((_vcs1.MetaStatus())).text;
            str2 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileStatusContent((_vcs2.MetaStatus())).text;
            break;

        case Column.Type:
            str1 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileType((_vcs1.assetPath.Compose()));
            str2 = VersionControl.UserInterface.VCMultiColumnAssetList.GetFileType((_vcs2.assetPath.Compose()));
            break;

        case Column.Owner:
            str1 = _vcs1.owner;
            str2 = _vcs2.owner;
            break;

        case Column.Conflict:
            str1 = _vcs1.treeConflictStatus.ToString();
            str2 = _vcs2.treeConflictStatus.ToString();
            break;

        case Column.ChangeList:
            str1 = _vcs1.changelist.Compose();
            str2 = _vcs2.changelist.Compose();
            break;

        default:
            break;
        }

        if (m_treeView.multiColumnHeader.IsSortedAscending(m_treeView.multiColumnHeader.sortedColumnIndex))
        {
            return(String.Compare(str2, str1, StringComparison.OrdinalIgnoreCase));
        }
        else
        {
            return(String.Compare(str1, str2, StringComparison.OrdinalIgnoreCase));
        }
    }