Maze / Library /PackageCache /com.unity.collab-proxy@2.0.4 /Editor /PlasticSCM /AssetsUtils /GetSelectedPaths.cs
| using System.Collections.Generic; | |
| using System.IO; | |
| using Unity.PlasticSCM.Editor.AssetMenu; | |
| using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; | |
| using UnityEditor.VersionControl; | |
| namespace Unity.PlasticSCM.Editor.AssetUtils | |
| { | |
| internal static class GetSelectedPaths | |
| { | |
| internal static List<string> ForOperation( | |
| string wkPath, | |
| AssetList assetList, | |
| IAssetStatusCache assetStatusCache, | |
| AssetMenuOperations operation) | |
| { | |
| List<string> selectedPaths = AssetsSelection. | |
| GetSelectedPaths(wkPath, assetList); | |
| List<string> result = new List<string>(selectedPaths); | |
| foreach (string path in selectedPaths) | |
| { | |
| if (MetaPath.IsMetaPath(path)) | |
| continue; | |
| string metaPath = MetaPath.GetMetaPath(path); | |
| if (!File.Exists(metaPath)) | |
| continue; | |
| if (result.Contains(metaPath)) | |
| continue; | |
| if (!IsApplicableForOperation( | |
| metaPath, false, operation, assetStatusCache)) | |
| continue; | |
| result.Add(metaPath); | |
| } | |
| return result; | |
| } | |
| static bool IsApplicableForOperation( | |
| string path, | |
| bool isDirectory, | |
| AssetMenuOperations operation, | |
| IAssetStatusCache assetStatusCache) | |
| { | |
| SelectedAssetGroupInfo info = SelectedAssetGroupInfo.BuildFromSingleFile( | |
| path, isDirectory, assetStatusCache); | |
| return AssetMenuUpdater.GetAvailableMenuOperations(info).HasFlag(operation); | |
| } | |
| } | |
| } | |