protected override void RowGUI(RowGUIArgs args) { VCTreeViewItem item = (VCTreeViewItem)args.item; for (int i = 0; i < args.GetNumVisibleColumns(); ++i) { CellGUI(args.GetCellRect(i), item, (MultiColumnView.Column)args.GetColumn(i), ref args); } }
private void drawNameEntry(Rect _rectCell, VCTreeViewItem _item) { if (multiColumnHeader.sortedColumnIndex == (int)MultiColumnView.Column.AssetPath) { _rectCell.xMin += GetContentIndent(_item); } GUI.Label(_rectCell, new GUIContent(new GUIContent( image: UnityEditor.AssetDatabase.GetCachedIcon(_item.m_data.assetPath.Compose()), text: System.IO.Path.GetFileName((_item.m_data.assetPath.Compose()) )))); }
void CellGUI(Rect _rectCell, VCTreeViewItem _item, MultiColumnView.Column _column, ref RowGUIArgs _args) { // Center the cell rect vertically using EditorGUIUtility.singleLineHeight. // This makes it easier to place controls and icons in the cells. CenterRectUsingSingleLineHeight(ref _rectCell); switch (_column) { case MultiColumnView.Column.Selection: drawSelectionEntry(_rectCell, _item); break; case MultiColumnView.Column.Name: drawNameEntry(_rectCell, _item); break; case MultiColumnView.Column.Status: drawStatusEntry(_rectCell, _item); break; case MultiColumnView.Column.AssetPath: drawAssetPathEntry(_rectCell, _item); break; case MultiColumnView.Column.Meta: drawMetaEntry(_rectCell, _item); break; case MultiColumnView.Column.Type: drawTypeEntry(_rectCell, _item); break; case MultiColumnView.Column.Owner: drawOwnerEntry(_rectCell, _item); break; case MultiColumnView.Column.Conflict: drawConflictEntry(_rectCell, _item); break; case MultiColumnView.Column.ChangeList: drawChangeListEntry(_rectCell, _item); break; default: break; } }
protected override void DoubleClickedItem(int id) { base.DoubleClickedItem(id); VCTreeViewItem item = FindItem(id, rootItem) as VCTreeViewItem; if (VersionControl.VCUtility.IsDiffableAsset(item.m_data.assetPath) && VersionControl.VCUtility.ManagedByRepository(item.m_data) && item.m_data.fileStatus == VersionControl.VCFileStatus.Modified) { VersionControl.VCUtility.DiffWithBase(item.m_data.assetPath.Compose()); } else { AssetDatabase.OpenAsset(AssetDatabase.LoadMainAssetAtPath(item.m_data.assetPath.Compose())); } }
private void drawSelectionEntry(Rect _rectCell, VCTreeViewItem _item) { // columnSelection = new MultiColumnState.Column(new GUIContent("[]"), data => new GUIContent(masterSelection.Contains(data) ? " ☑" : " ☐")); bool bOld = _item.m_bSelectedForCommit; _item.m_bSelectedForCommit = GUI.Toggle(_rectCell, _item.m_bSelectedForCommit, ""); if (_item.m_bSelectedForCommit != bOld) { var rows = GetRows(); for (int i = 0; i < rows.Count; i++) { if (IsSelected(rows[i].id) && rows[i].id != _item.id) { (rows[i] as VCTreeViewItem).m_bSelectedForCommit = _item.m_bSelectedForCommit; } } } }
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 void drawChangeListEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, new GUIContent(_item.m_data.changelist.Compose())); }
private void drawConflictEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, new GUIContent(_item.m_data.treeConflictStatus.ToString())); }
private void drawOwnerEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, new GUIContent(_item.m_data.owner, _item.m_data.lockToken)); }
private void drawTypeEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, new GUIContent(VCMultiColumnAssetList.GetFileType(_item.m_data.assetPath.Compose()))); }
private void drawMetaEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, VCMultiColumnAssetList.GetFileStatusContent(_item.m_data.MetaStatus())); }
private void drawAssetPathEntry(Rect _rectCell, VCTreeViewItem _item) { GUI.Label(_rectCell, _item.m_data.assetPath.Compose()); }