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; }
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); } } } }
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); }
public static bool ManagedByRepository(VersionControlStatus assetStatus) { return assetStatus.fileStatus != VCFileStatus.Unversioned && !ComposedString.IsNullOrEmpty(assetStatus.assetPath) && !Application.isPlaying; }
public static bool HaveVCLock(VersionControlStatus assetStatus) { bool isManagedByRepository = ManagedByRepository(assetStatus); bool hasLocalLock = assetStatus.lockStatus == VCLockStatus.LockedHere; return isManagedByRepository && hasLocalLock; }
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()); }
public static bool ManagedByRepository(VersionControlStatus assetStatus) { return(assetStatus.fileStatus != VCFileStatus.Unversioned && !ComposedString.IsNullOrEmpty(assetStatus.assetPath) && !Application.isPlaying); }
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)); } }