private void OnImportButtonClicked() { var previousImports = m_Sample.previousImports; var previousImportPaths = string.Empty; foreach (var v in previousImports) { previousImportPaths += v.Replace(Application.dataPath, "Assets") + "\n"; } var warningMessage = string.Empty; if (previousImports.Count > 1) { warningMessage = L10n.Tr("Different versions of the sample are already imported at") + "\n\n" + previousImportPaths + "\n" + L10n.Tr("They will be deleted when you update."); } else if (previousImports.Count == 1) { if (m_Sample.isImported) { warningMessage = L10n.Tr("The sample is already imported at") + "\n\n" + previousImportPaths + "\n" + L10n.Tr("Importing again will override all changes you have made to it."); } else { warningMessage = L10n.Tr("A different version of the sample is already imported at") + "\n\n" + previousImportPaths + "\n" + L10n.Tr("It will be deleted when you update."); } } if (!string.IsNullOrEmpty(warningMessage) && EditorUtility.DisplayDialog(L10n.Tr("Unity Package Manager"), warningMessage + L10n.Tr(" Are you sure you want to continue?"), L10n.Tr("No"), L10n.Tr("Yes"))) { return; } PackageManagerWindowAnalytics.SendEvent("importSample", m_Version.uniqueId); if (m_Sample.Import(Sample.ImportOptions.OverridePreviousImports)) { RefreshImportStatus(); if (m_Sample.isImported) { // Highlight import path var importRelativePath = m_Sample.importPath.Replace(Application.dataPath, "Assets"); Object obj = AssetDatabase.LoadAssetAtPath(importRelativePath, typeof(Object)); m_Selection.activeObject = obj; EditorGUIUtility.PingObject(obj); } } }
private void DelayedSearchEvent() { if (DateTime.Now.Ticks - m_SearchTextChangeTimestamp > k_SearchEventDelayTicks) { EditorApplication.update -= DelayedSearchEvent; PackageFiltering.instance.currentSearchText = searchToolbar.value; if (!string.IsNullOrEmpty(searchToolbar.value)) { PackageManagerWindowAnalytics.SendEvent("search"); } } }
private void SetupAddMenu() { addMenu.menu.AppendAction("Add package from disk...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" }); if (Path.GetFileName(path) != "package.json") { Debug.Log("Please select a valid package.json file in a package folder."); return; } if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(Path.GetDirectoryName(path)); PackageManagerWindowAnalytics.SendEvent("addFromDisk"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from tarball...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "Package tarball", "tgz" }); if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(path); PackageManagerWindowAnalytics.SendEvent("addFromTarball"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from git URL...", a => { var addFromGitUrl = new PackagesAction("Add"); addFromGitUrl.actionClicked += url => { addFromGitUrl.Hide(); if (!PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromUrl(url); PackageManagerWindowAnalytics.SendEvent("addFromGitUrl"); } }; parent.Add(addFromGitUrl); addFromGitUrl.Show(); }, a => DropdownMenuAction.Status.Normal); PackageManagerExtensions.ExtensionCallback(() => { foreach (var extension in PackageManagerExtensions.MenuExtensions) { extension.OnAddMenuCreate(addMenu.menu); } }); }
private void DelayedSearchEvent() { if (DateTime.Now.Ticks - m_SearchTextChangeTimestamp > k_SearchEventDelayTicks) { if (string.IsNullOrEmpty(searchToolbar.value)) { return; } EditorApplication.update -= DelayedSearchEvent; PackageManagerWindowAnalytics.SendEvent("search"); } }
public void OnEnable() { packageDetails.OnEnable(); packageList.OnEnable(); packageLoadBar.OnEnable(); packageManagerToolbar.OnEnable(); packageStatusbar.OnEnable(); packageManagerToolbar.SetEnabled(!m_PackageDatabase.isEmpty); packageDetails.packageToolbarContainer.SetEnabled(!m_PackageDatabase.isEmpty); m_PageManager.onRefreshOperationFinish += OnRefreshOperationFinish; m_PageManager.onRefreshOperationStart += OnRefreshOperationStart; m_PageManager.onRefreshOperationError += OnRefreshOperationError; m_PackageFiltering.onFilterTabChanged += OnFilterChanged; PackageManagerWindowAnalytics.Setup(); var newTab = m_PackageManagerPrefs.lastUsedPackageFilter ?? m_PackageManagerPrefs.defaultFilterTab; m_PackageFiltering.SetCurrentFilterTabWithoutNotify(newTab); packageManagerToolbar.SetFilter(newTab); if (newTab != PackageFilterTab.AssetStore) { UIUtils.SetElementDisplay(packageLoadBar, false); } if (m_PageManager.GetRefreshTimestamp(newTab) == 0) { DelayRefresh(newTab); } if (newTab != PackageFilterTab.All && m_PageManager.GetRefreshTimestamp(PackageFilterTab.All) == 0) { DelayRefresh(PackageFilterTab.All); } mainContainer.leftWidth = m_SplitPaneLeftWidth; mainContainer.onSizeChanged += width => { m_SplitPaneLeftWidth = width; }; EditorApplication.focusChanged += OnFocusChanged; m_Selection.onSelectionChanged += RefreshSelectedInInspectorClass; focusable = true; RegisterCallback <AttachToPanelEvent>(OnAttachToPanel); RegisterCallback <DetachFromPanelEvent>(OnDetachFromPanel); RefreshSelectedInInspectorClass(); }
internal static void OpenPackageManager(string packageNameOrDisplayName) { var windows = UnityEngine.Resources.FindObjectsOfTypeAll <PackageManagerWindow>(); var isWindowAlreadyVisible = windows != null; if (!isWindowAlreadyVisible) { string packageId = null; if (!string.IsNullOrEmpty(packageNameOrDisplayName)) { var package = PackageDatabase.instance.GetPackage(packageNameOrDisplayName) ?? PackageDatabase.instance.GetPackageByDisplayName(packageNameOrDisplayName); packageId = package?.primaryVersion.uniqueId ?? $"{packageNameOrDisplayName}@primary"; } PackageManagerWindowAnalytics.SendEvent("openWindow", packageId); } SelectPackageAndFilter(packageNameOrDisplayName); }
internal static void OpenPackageManager(string packageNameOrDisplayName) { var window = GetWindowDontShow <PackageManagerWindow>(); var isWindowAlreadyVisible = window != null && window.m_Parent != null; SelectPackageAndFilter(packageNameOrDisplayName); if (!isWindowAlreadyVisible) { string packageId = null; if (!string.IsNullOrEmpty(packageNameOrDisplayName)) { var package = PackageDatabase.instance.GetPackage(packageNameOrDisplayName) ?? PackageDatabase.instance.GetPackageByDisplayName(packageNameOrDisplayName); packageId = package?.primaryVersion.uniqueId ?? $"{packageNameOrDisplayName}@primary"; } PackageManagerWindowAnalytics.SendEvent("openWindow", packageId); } }
private void UpdateClick() { // dissuade users from updating by showing a warning message if (package.versions.installed != null && !package.versions.installed.isDirectDependency && package.versions.installed != targetVersion) { var message = ApplicationUtil.instance.GetTranslationForText("This version of the package is being used by other packages. Upgrading a different version might break your project. Are you sure you want to continue?"); if (!EditorUtility.DisplayDialog(ApplicationUtil.instance.GetTranslationForText("Unity Package Manager"), message, ApplicationUtil.instance.GetTranslationForText("Yes"), ApplicationUtil.instance.GetTranslationForText("No"))) { return; } } detailError.ClearError(); PackageDatabase.instance.Install(targetVersion); RefreshPackageActionButtons(); var eventName = package.versions.installed == null ? "installNew" : "installUpdate"; PackageManagerWindowAnalytics.SendEvent(eventName, displayVersion?.uniqueId); }
internal static void OpenPackageManager(string packageToSelect) { var isWindowAlreadyVisible = Resources.FindObjectsOfTypeAll <PackageManagerWindow>()?.FirstOrDefault() != null; SelectPackageAndFilterStatic(packageToSelect); if (!isWindowAlreadyVisible) { string packageId = null; if (!string.IsNullOrEmpty(packageToSelect)) { var packageDatabase = ServicesContainer.instance.Resolve <Internal.PackageDatabase>(); Internal.IPackageVersion version; Internal.IPackage package; packageDatabase.GetPackageAndVersionByIdOrName(packageToSelect, out package, out version); packageId = version?.uniqueId ?? package?.versions.primary.uniqueId ?? string.Format("{0}@primary", packageToSelect); } PackageManagerWindowAnalytics.SendEvent("openWindow", packageId); } }
internal static void OpenPackageManager(string packageNameOrDisplayName) { var window = UnityEngine.Resources.FindObjectsOfTypeAll <PackageManagerWindow>()?.FirstOrDefault(); var isWindowAlreadyVisible = window != null; if (!isWindowAlreadyVisible) { string packageId = null; if (!string.IsNullOrEmpty(packageNameOrDisplayName)) { IPackageVersion version; IPackage package; PackageDatabase.instance.GetPackageAndVersionByIdOrName(packageNameOrDisplayName, out package, out version); packageId = version?.uniqueId ?? package?.versions.primary.uniqueId ?? string.Format(ApplicationUtil.instance.GetTranslationForText("{0}@primary"), packageNameOrDisplayName); } PackageManagerWindowAnalytics.SendEvent("openWindow", packageId); } SelectPackageAndFilter(packageNameOrDisplayName); }
public void OnEnable() { if (s_Root == null) { var windowResource = Resources.GetVisualTreeAsset("PackageManagerWindow.uxml"); if (windowResource != null) { s_Root = windowResource.CloneTree(); s_Root.styleSheets.Add(Resources.GetStyleSheet()); s_Cache = new VisualElementCache(s_Root); PackageDatabase.instance.Setup(); SelectionManager.instance.Setup(); packageDetails.Setup(); packageList.Setup(); packageManagerToolbar.Setup(); packageStatusbar.Setup(); SetupDelayedPackageSelection(); PackageManagerWindowAnalytics.Setup(); } } if (s_Root != null && s_Root.parent == null) { rootVisualElement.Add(s_Root); s_Root.StretchToParentSize(); if (!EditorApplication.isPlayingOrWillChangePlaymode) { RefreshDatabase(); } PackageFiltering.instance.currentFilterTab = PackageManagerPrefs.instance.lastUsedPackageFilter ?? PackageFilterTab.All; } }
public static void SendEvent(string action, string packageId = null) { // remove sensitive part of the id: file path or url is not tracked if (!string.IsNullOrEmpty(packageId)) { packageId = Regex.Replace(packageId, "(?<package>[^@]+)@(?<protocol>[^:]+):.+", "${package}@${protocol}"); } var parameters = new PackageManagerWindowAnalytics { action = action, package_id = packageId ?? string.Empty, search_text = PackageFiltering.instance.currentSearchText, filter_name = PackageFiltering.instance.currentFilterTab.ToString(), window_docked = EditorWindow.GetWindowDontShow <PackageManagerWindow>()?.docked ?? false, dependencies_visible = PackageManagerPrefs.instance.showPackageDependencies, preview_visible = PackageManagerPrefs.instance.showPreviewPackages, t_since_start = (long)(EditorApplication.timeSinceStartup * 1E6), ts = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond }; EditorAnalytics.SendEventWithLimit("packageManagerWindowUserAction", parameters); }
private void RemoveClick() { var roots = PackageDatabase.instance.GetReverseDependencies(displayVersion)?.Where(p => p.isDirectDependency && p.isInstalled).ToList(); // Only show this message on a package if it is installed by dependency only. This allows it to still be removed from the installed list. var showDialog = (roots?.Any() ?? false) && !(!displayVersion.HasTag(PackageTag.BuiltIn) && displayVersion.isDirectDependency); if (showDialog) { if (roots.Count > MaxDependentList) { Debug.Log(GetDependentMessage(displayVersion, roots, int.MaxValue)); } var message = GetDependentMessage(displayVersion, roots); var title = displayVersion.HasTag(PackageTag.BuiltIn) ? ApplicationUtil.instance.GetTranslationForText("Cannot disable built-in package") : ApplicationUtil.instance.GetTranslationForText("Cannot remove dependent package"); EditorUtility.DisplayDialog(title, message, ApplicationUtil.instance.GetTranslationForText("Ok")); return; } if (displayVersion.HasTag(PackageTag.InDevelopment)) { if (!EditorUtility.DisplayDialog(ApplicationUtil.instance.GetTranslationForText("Unity Package Manager"), ApplicationUtil.instance.GetTranslationForText("You will lose all your changes (if any) if you delete a package in development. Are you sure?"), ApplicationUtil.instance.GetTranslationForText("Yes"), ApplicationUtil.instance.GetTranslationForText("No"))) { return; } detailError.ClearError(); PackageDatabase.instance.RemoveEmbedded(package); RefreshPackageActionButtons(); PackageManagerWindowAnalytics.SendEvent("removeEmbedded", displayVersion.uniqueId); return; } var result = 0; if (displayVersion.HasTag(PackageTag.BuiltIn)) { if (!PackageManagerPrefs.instance.skipDisableConfirmation) { result = EditorUtility.DisplayDialogComplex(ApplicationUtil.instance.GetTranslationForText("Disable Built-In Package"), ApplicationUtil.instance.GetTranslationForText("Are you sure you want to disable this built-in package?"), ApplicationUtil.instance.GetTranslationForText("Disable"), ApplicationUtil.instance.GetTranslationForText("Cancel"), ApplicationUtil.instance.GetTranslationForText("Never ask")); } } else { if (!PackageManagerPrefs.instance.skipRemoveConfirmation) { result = EditorUtility.DisplayDialogComplex(ApplicationUtil.instance.GetTranslationForText("Removing Package"), ApplicationUtil.instance.GetTranslationForText("Are you sure you want to remove this package?"), ApplicationUtil.instance.GetTranslationForText("Remove"), ApplicationUtil.instance.GetTranslationForText("Cancel"), ApplicationUtil.instance.GetTranslationForText("Never ask")); } } // Cancel if (result == 1) { return; } // Do not ask again if (result == 2) { if (displayVersion.HasTag(PackageTag.BuiltIn)) { PackageManagerPrefs.instance.skipDisableConfirmation = true; } else { PackageManagerPrefs.instance.skipRemoveConfirmation = true; } } // Remove detailError.ClearError(); PackageDatabase.instance.Uninstall(package); RefreshPackageActionButtons(); PackageManagerWindowAnalytics.SendEvent("uninstall", displayVersion?.uniqueId); }
public void OnEnable() { this.SetAntiAliasing(4); if (instance == null) { instance = this; } if (instance != this) { return; } instance.titleContent = GetLocalizedTitleContent(); var windowResource = Resources.GetVisualTreeAsset("PackageManagerWindow.uxml"); if (windowResource != null) { var root = windowResource.Instantiate(); root.styleSheets.Add(Resources.GetMainWindowStyleSheet()); cache = new VisualElementCache(root); rootVisualElement.Add(root); LocalizeVisualElementAndAllChildrenText(rootVisualElement); PageManager.instance.Setup(); packageDetails.OnEnable(); packageList.OnEnable(); packageLoadBar.OnEnable(); packageManagerToolbar.OnEnable(); packageStatusbar.OnEnable(); packageManagerToolbar.SetEnabled(!PackageDatabase.instance.isEmpty); packageDetails.packageToolbarContainer.SetEnabled(!PackageDatabase.instance.isEmpty); PageManager.instance.onRefreshOperationFinish += OnRefreshOperationFinish; PageManager.instance.onRefreshOperationStart += OnRefreshOperationStart; PageManager.instance.onRefreshOperationError += OnRefreshOperationError; PackageFiltering.instance.onFilterTabChanged += OnFilterChanged; PackageManagerWindowAnalytics.Setup(); root.StretchToParentSize(); var newTab = PackageManagerPrefs.instance.lastUsedPackageFilter ?? PackageFiltering.instance.defaultFilterTab; PackageFiltering.instance.SetCurrentFilterTabWithoutNotify(newTab); packageManagerToolbar.SetFilter(newTab); if (newTab != PackageFilterTab.AssetStore) { UIUtils.SetElementDisplay(packageLoadBar, false); } if (PageManager.instance.GetRefreshTimestamp(newTab) == 0) { DelayRefresh(newTab); } if (newTab != PackageFilterTab.All && PageManager.instance.GetRefreshTimestamp(PackageFilterTab.All) == 0) { DelayRefresh(PackageFilterTab.All); } mainContainer.leftWidth = m_SplitPaneLeftWidth; mainContainer.onSizeChanged += width => { m_SplitPaneLeftWidth = width; }; EditorApplication.focusChanged += OnFocusChanged; Selection.selectionChanged += OnEditorSelectionChanged; rootVisualElement.focusable = true; rootVisualElement.RegisterCallback <AttachToPanelEvent>(OnAttachToPanel); rootVisualElement.RegisterCallback <DetachFromPanelEvent>(OnDetachFromPanel); } }
private void SetupAddMenu() { addMenu.menu.AppendAction("Add package from disk...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" }); if (Path.GetFileName(path) != "package.json") { Debug.Log("Please select a valid package.json file in a package folder."); return; } if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(Path.GetDirectoryName(path)); PackageManagerWindowAnalytics.SendEvent("addFromDisk"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from tarball...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "Package tarball", "tgz" }); if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(path); PackageManagerWindowAnalytics.SendEvent("addFromTarball"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from git URL...", a => { var addFromGitUrl = new PackagesAction("Add"); addFromGitUrl.actionClicked += url => { addFromGitUrl.Hide(); if (!PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromUrl(url); PackageManagerWindowAnalytics.SendEvent("addFromGitUrl"); } }; parent.Add(addFromGitUrl); addFromGitUrl.Show(); }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendSeparator(""); addMenu.menu.AppendAction("Create Package...", a => { var defaultName = PackageCreator.GenerateUniquePackageDisplayName("New Package"); var createPackage = new PackagesAction("Create", defaultName); createPackage.actionClicked += displayName => { createPackage.Hide(); var packagePath = PackageCreator.CreatePackage("Packages/" + displayName); PackageManagerWindowAnalytics.SendEvent("createPackage"); AssetDatabase.Refresh(); EditorApplication.delayCall += () => { var path = Path.Combine(packagePath, "package.json"); var o = AssetDatabase.LoadMainAssetAtPath(path); if (o != null) { UnityEditor.Selection.activeObject = o; } PackageManagerWindow.SelectPackageAndFilter(displayName, PackageFilterTab.InDevelopment, true); }; }; parent.Add(createPackage); createPackage.Show(); }, a => DropdownMenuAction.Status.Normal); PackageManagerExtensions.ExtensionCallback(() => { foreach (var extension in PackageManagerExtensions.MenuExtensions) { extension.OnAddMenuCreate(addMenu.menu); } }); }
private void SetFilterFromMenu(PackageFilterTab filter) { SetFilter(filter); PackageManagerWindowAnalytics.SendEvent("changeFilter"); }
public void OnEnable() { this.SetAntiAliasing(4); if (s_Window == null) { s_Window = this; } if (s_Window != this) { return; } var windowResource = Resources.GetVisualTreeAsset("PackageManagerWindow.uxml"); if (windowResource != null) { var root = windowResource.Instantiate(); root.styleSheets.Add(Resources.GetStyleSheet()); cache = new VisualElementCache(root); PageManager.instance.Setup(); packageDetails.OnEnable(); packageList.OnEnable(); packageManagerToolbar.OnEnable(); packageStatusbar.OnEnable(); packageManagerToolbar.SetEnabled(!PackageDatabase.instance.isEmpty); packageDetails.packageToolbarContainer.SetEnabled(!PackageDatabase.instance.isEmpty); PageManager.instance.onRefreshOperationFinish += OnRefreshOperationFinish; PageManager.instance.onRefreshOperationStart += OnRefreshOperationStart; PageManager.instance.onRefreshOperationError += OnRefreshOperationError; PackageManagerWindowAnalytics.Setup(); rootVisualElement.Add(root); root.StretchToParentSize(); var newTab = PackageManagerPrefs.instance.lastUsedPackageFilter ?? PackageFilterTab.All; PackageFiltering.instance.currentFilterTab = newTab; if (PageManager.instance.GetRefreshTimestamp(newTab) == 0) { PageManager.instance.Refresh(newTab); } if (newTab != PackageFilterTab.All && PageManager.instance.GetRefreshTimestamp(PackageFilterTab.All) == 0) { PageManager.instance.Refresh(PackageFilterTab.All); } mainContainer.leftWidth = m_SplitPaneLeftWidth; mainContainer.onSizeChanged += width => { m_SplitPaneLeftWidth = width; }; EditorApplication.focusChanged += OnFocusChanged; rootVisualElement.focusable = true; rootVisualElement.RegisterCallback <AttachToPanelEvent>(OnAttachToPanel); rootVisualElement.RegisterCallback <DetachFromPanelEvent>(OnDetachFromPanel); } }
private void RemoveClick() { var roots = PackageDatabase.instance.GetDependentVersions(displayVersion).Where(p => p.isDirectDependency && p.isInstalled).ToList(); // Only show this message on a package if it is installed by dependency only. This allows it to still be removed from the installed list. var showDialog = roots.Any() && !(!displayVersion.HasTag(PackageTag.BuiltIn) && displayVersion.isDirectDependency); if (showDialog) { if (roots.Count > MaxDependentList) { Debug.Log(GetDependentMessage(displayVersion, roots, int.MaxValue)); } var message = GetDependentMessage(displayVersion, roots); var title = displayVersion.HasTag(PackageTag.BuiltIn) ? "Cannot disable built-in package" : "Cannot remove dependent package"; EditorUtility.DisplayDialog(title, message, "Ok"); return; } if (displayVersion.HasTag(PackageTag.InDevelopment)) { if (!EditorUtility.DisplayDialog("Unity Package Manager", "You will loose all your changes (if any) if you delete a package in development. Are you sure?", "Yes", "No")) { return; } detailError.ClearError(); PackageDatabase.instance.RemoveEmbedded(package); RefreshPackageActionButtons(); PackageManagerWindowAnalytics.SendEvent("removeEmbedded", displayVersion.uniqueId); EditorApplication.delayCall += () => { PackageFilterTab?newFilterTab = null; if (PackageFiltering.instance.currentFilterTab == PackageFilterTab.InDevelopment) { var hasOtherInDevelopment = PackageDatabase.instance.allPackages.Any(p => { var installed = p.installedVersion; return(installed != null && installed.HasTag(PackageTag.InDevelopment) && p.uniqueId != package.uniqueId); }); newFilterTab = hasOtherInDevelopment ? PackageFilterTab.InDevelopment : PackageFilterTab.Local; } PackageManagerWindow.SelectPackageAndFilter(displayVersion.uniqueId, newFilterTab, true); }; return; } var result = 0; if (displayVersion.HasTag(PackageTag.BuiltIn)) { if (!PackageManagerPrefs.instance.skipDisableConfirmation) { result = EditorUtility.DisplayDialogComplex("Disable Built-In Package", "Are you sure you want to disable this built-in package?", "Disable", "Cancel", "Never ask"); } } else { if (!PackageManagerPrefs.instance.skipRemoveConfirmation) { result = EditorUtility.DisplayDialogComplex("Removing Package", "Are you sure you want to remove this package?", "Remove", "Cancel", "Never ask"); } } // Cancel if (result == 1) { return; } // Do not ask again if (result == 2) { if (displayVersion.HasTag(PackageTag.BuiltIn)) { PackageManagerPrefs.instance.skipDisableConfirmation = true; } else { PackageManagerPrefs.instance.skipRemoveConfirmation = true; } } // Remove detailError.ClearError(); PackageDatabase.instance.Uninstall(package); RefreshPackageActionButtons(); PackageManagerWindowAnalytics.SendEvent("uninstall", displayVersion?.uniqueId); }
public void OnEnable() { this.SetAntiAliasing(4); if (instance == null) { instance = this; } if (instance != this) { return; } ResolveDependencies(); instance.titleContent = GetLocalizedTitleContent(); var root = m_ResourceLoader.GetTemplate("PackageManagerWindow.uxml"); root.styleSheets.Add(m_ResourceLoader.GetMainWindowStyleSheet()); cache = new VisualElementCache(root); rootVisualElement.Add(root); packageDetails.OnEnable(); packageList.OnEnable(); packageLoadBar.OnEnable(); packageManagerToolbar.OnEnable(); packageStatusbar.OnEnable(); packageManagerToolbar.SetEnabled(!m_PackageDatabase.isEmpty); packageDetails.packageToolbarContainer.SetEnabled(!m_PackageDatabase.isEmpty); m_PageManager.onRefreshOperationFinish += OnRefreshOperationFinish; m_PageManager.onRefreshOperationStart += OnRefreshOperationStart; m_PageManager.onRefreshOperationError += OnRefreshOperationError; m_PackageFiltering.onFilterTabChanged += OnFilterChanged; PackageManagerWindowAnalytics.Setup(); root.StretchToParentSize(); var newTab = m_PackageManagerPrefs.lastUsedPackageFilter ?? m_PackageManagerPrefs.defaultFilterTab; m_PackageFiltering.SetCurrentFilterTabWithoutNotify(newTab); packageManagerToolbar.SetFilter(newTab); if (newTab != PackageFilterTab.AssetStore) { UIUtils.SetElementDisplay(packageLoadBar, false); } if (m_PageManager.GetRefreshTimestamp(newTab) == 0) { DelayRefresh(newTab); } if (newTab != PackageFilterTab.All && m_PageManager.GetRefreshTimestamp(PackageFilterTab.All) == 0) { DelayRefresh(PackageFilterTab.All); } mainContainer.leftWidth = m_SplitPaneLeftWidth; mainContainer.onSizeChanged += width => { m_SplitPaneLeftWidth = width; }; EditorApplication.focusChanged += OnFocusChanged; m_Selection.onSelectionChanged += RefreshSelectedInInspectorClass; rootVisualElement.focusable = true; rootVisualElement.RegisterCallback <AttachToPanelEvent>(OnAttachToPanel); rootVisualElement.RegisterCallback <DetachFromPanelEvent>(OnDetachFromPanel); RefreshSelectedInInspectorClass(); }