- using System;
- using UnityEditor;
- using UnityEditor.VersionControl;
- using Unity.PlasticSCM.Editor.AssetUtils;
- namespace Unity.PlasticSCM.Editor.AssetMenu
- {
- internal class ProjectViewAssetSelection : AssetVcsOperations.IAssetSelection
- {
- internal ProjectViewAssetSelection(Action assetSelectionChangedAction)
- {
- mAssetSelectionChangedAction = assetSelectionChangedAction;
- Selection.selectionChanged += SelectionChanged;
- }
- internal void Dispose()
- {
- Selection.selectionChanged -= SelectionChanged;
- }
- void SelectionChanged()
- {
-
-
-
- if (HasSelectedAssets())
- mAssetSelectionChangedAction();
- }
- AssetList AssetVcsOperations.IAssetSelection.GetSelectedAssets()
- {
- if (Selection.assetGUIDs.Length == 0)
- return new AssetList();
- AssetList result = new AssetList();
- foreach (string guid in Selection.assetGUIDs)
- {
- string assetPath = AssetsPath.GetFullPath.ForGuid(guid);
- if (string.IsNullOrEmpty(assetPath))
- continue;
- result.Add(new Asset(assetPath));
- }
- return result;
- }
- bool HasSelectedAssets()
- {
-
- return Selection.assetGUIDs.Length > 0;
- }
- Action mAssetSelectionChangedAction;
- }
- }