static void DoStatusOverlays( Rect iconRect, IAssetStatusCache assetStatusCache, string path) { AssetsOverlays.AssetStatus statusesToDraw = DrawAssetOverlay.GetStatusesToDraw( assetStatusCache.GetStatusForPath(path)); foreach (AssetsOverlays.AssetStatus status in Enum.GetValues(typeof(AssetsOverlays.AssetStatus))) { if (status == AssetsOverlays.AssetStatus.None) continue; if (!statusesToDraw.HasFlag(status)) continue; GetChangesOverlayIcon.Data overlayIconData = GetChangesOverlayIcon.ForAssetStatus(status); if (overlayIconData != null) { Rect overlayIconRect = new Rect( iconRect.x + overlayIconData.XOffset, iconRect.y + overlayIconData.YOffset, overlayIconData.Size, overlayIconData.Size); GUI.DrawTexture( overlayIconRect, overlayIconData.Texture, ScaleMode.ScaleToFit); } } }
static AssetStatus GetAssetStatus(Asset asset, IAssetStatusCache assetStatusCache) { string assetPath = Path.GetFullPath(asset.assetPath); if (MetaPath.IsMetaPath(assetPath)) { assetPath = MetaPath.GetPathFromMetaPath(assetPath); } return(assetStatusCache.GetStatusForPath(assetPath)); }
static bool IsConflicted( bool isGluonMode, IAssetStatusCache assetStatusCache, string fullPath) { if (!isGluonMode) { return(false); } return(ClassifyAssetStatus.IsConflicted( assetStatusCache.GetStatusForPath(fullPath))); }
void DoFileList( WorkspaceInfo wkInfo, List <string> paths, IAssetStatusCache assetStatusCache, MetaCache metaCache) { mFileListScrollPosition = GUILayout.BeginScrollView( mFileListScrollPosition, EditorStyles.helpBox, GUILayout.ExpandHeight(true)); foreach (string path in paths) { if (MetaPath.IsMetaPath(path)) { continue; } Texture fileIcon = Directory.Exists(path) ? Images.GetDirectoryIcon() : Images.GetFileIcon(path); string label = WorkspacePath.GetWorkspaceRelativePath( wkInfo.ClientPath, path); if (metaCache.HasMeta(path)) { label = string.Concat(label, UnityConstants.TREEVIEW_META_LABEL); } AssetsOverlays.AssetStatus assetStatus = assetStatusCache.GetStatusForPath(path); Rect selectionRect = EditorGUILayout.GetControlRect(); DoListViewItem(selectionRect, fileIcon, label, assetStatus); } GUILayout.EndScrollView(); }
internal static SelectedAssetGroupInfo BuildFromSingleFile( string path, bool isDirectory, IAssetStatusCache statusCache) { bool isCheckedInSelection = true; bool isControlledSelection = true; bool isCheckedOutSelection = true; bool isPrivateSelection = true; bool isAddedSelection = true; bool isFileSelection = true; bool hasAnyAddedInSelection = false; bool hasAnyRemoteLockedInSelection = false; string assetPath = Path.GetFullPath(path); WorkspaceTreeNode wkTreeNode = PlasticGui.Plastic.API.GetWorkspaceTreeNode(assetPath); if (isDirectory) { isFileSelection = false; } if (CheckWorkspaceTreeNodeStatus.IsPrivate(wkTreeNode)) { isControlledSelection = false; } else { isPrivateSelection = false; } if (CheckWorkspaceTreeNodeStatus.IsCheckedOut(wkTreeNode)) { isCheckedInSelection = false; } else { isCheckedOutSelection = false; } if (CheckWorkspaceTreeNodeStatus.IsAdded(wkTreeNode)) { hasAnyAddedInSelection = true; } else { isAddedSelection = false; } AssetsOverlays.AssetStatus assetStatus = statusCache.GetStatusForPath(assetPath); if (ClassifyAssetStatus.IsLockedRemote(assetStatus)) { hasAnyRemoteLockedInSelection = true; } return(new SelectedAssetGroupInfo() { IsCheckedInSelection = isCheckedInSelection, IsCheckedOutSelection = isCheckedOutSelection, IsControlledSelection = isControlledSelection, IsPrivateSelection = isPrivateSelection, IsAddedSelection = isAddedSelection, IsFileSelection = isFileSelection, HasAnyAddedInSelection = hasAnyAddedInSelection, HasAnyRemoteLockedInSelection = hasAnyRemoteLockedInSelection, SelectedCount = 1, }); }