74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
using UnityEditor.TestTools.CodeCoverage.Analytics;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.TestTools.CodeCoverage
|
|
{
|
|
internal class PathToAddDropDownMenu
|
|
{
|
|
GenericMenu m_Menu;
|
|
string m_PathsToFilter;
|
|
readonly PathToAddHandler m_AddPathToIncludeHandler;
|
|
readonly PathToAddHandler m_AddPathToExcludeHandler;
|
|
readonly PathFilterType m_PathFilterType;
|
|
|
|
static class Styles
|
|
{
|
|
public static readonly GUIContent AddFolderLabel = EditorGUIUtility.TrTextContent("Add Folder");
|
|
public static readonly GUIContent AddFileLabel = EditorGUIUtility.TrTextContent("Add File");
|
|
}
|
|
|
|
public PathToAddDropDownMenu(CodeCoverageWindow parent, PathFilterType type)
|
|
{
|
|
m_PathFilterType = type;
|
|
|
|
m_AddPathToIncludeHandler = new PathToAddHandler(parent, PathFilterType.Include);
|
|
m_AddPathToExcludeHandler = new PathToAddHandler(parent, PathFilterType.Exclude);
|
|
}
|
|
|
|
private void PopulateMenu()
|
|
{
|
|
m_Menu = new GenericMenu();
|
|
|
|
m_Menu.AddItem(Styles.AddFolderLabel, false, () => AddFolder());
|
|
m_Menu.AddItem(Styles.AddFileLabel, false, () => AddFile());
|
|
}
|
|
|
|
public void Show(Rect position, string pathsToFilter)
|
|
{
|
|
m_PathsToFilter = pathsToFilter;
|
|
|
|
PopulateMenu();
|
|
|
|
m_Menu.DropDown(position);
|
|
}
|
|
|
|
private void AddFolder()
|
|
{
|
|
if (m_PathFilterType == PathFilterType.Include)
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.selectAddFolder_IncludedPaths = true;
|
|
m_AddPathToIncludeHandler.BrowseForDir(m_PathsToFilter);
|
|
}
|
|
else
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.selectAddFolder_ExcludedPaths = true;
|
|
m_AddPathToExcludeHandler.BrowseForDir(m_PathsToFilter);
|
|
}
|
|
}
|
|
|
|
private void AddFile()
|
|
{
|
|
if (m_PathFilterType == PathFilterType.Include)
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.selectAddFile_IncludedPaths = true;
|
|
m_AddPathToIncludeHandler.BrowseForFile(m_PathsToFilter);
|
|
}
|
|
else
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.selectAddFile_ExcludedPaths = true;
|
|
m_AddPathToExcludeHandler.BrowseForFile(m_PathsToFilter);
|
|
}
|
|
}
|
|
}
|
|
}
|