internal static void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { instance = GetWindow <PackageManagerWindow>(typeof(SceneView)); instance.minSize = new Vector2(700, 250); if (!string.IsNullOrEmpty(packageIdOrDisplayName) || filterTab != null) { if (filterTab == null) { IPackageVersion version; IPackage package; PackageDatabase.instance.GetPackageAndVersionByIdOrName(packageIdOrDisplayName, out package, out version); filterTab = PageManager.instance.FindTab(package, version); } instance.m_FilterToSelectAfterLoad = filterTab; instance.m_PackageToSelectOnLoaded = packageIdOrDisplayName; instance.packageManagerToolbar.SetCurrentSearch(searchText); if (refresh || PackageDatabase.instance.isEmpty) { instance.DelayRefresh((PackageFilterTab)filterTab); } else { instance.SelectPackageAndFilter(); } } instance.Show(); }
private void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { if (!string.IsNullOrEmpty(packageIdOrDisplayName) || filterTab != null) { if (filterTab == null) { IPackageVersion version; IPackage package; m_PackageDatabase.GetPackageAndVersionByIdOrName(packageIdOrDisplayName, out package, out version); filterTab = m_PageManager.FindTab(package, version); } m_FilterToSelectAfterLoad = filterTab; m_PackageToSelectOnLoaded = packageIdOrDisplayName; packageManagerToolbar.SetCurrentSearch(searchText); if (refresh || m_PackageDatabase.isEmpty) { DelayRefresh((PackageFilterTab)filterTab); } else { SelectPackageAndFilter(); } } Show(); }
internal static void SelectPackageAndFilterStatic(string packageToSelect, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { instance = GetWindow <PackageManagerWindow>(); instance.minSize = new Vector2(800, 250); instance.m_Root.SelectPackageAndFilter(packageToSelect, filterTab, refresh, searchText); instance.Show(); }
internal static void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { instance = GetWindow <PackageManagerWindow>(); instance.minSize = new Vector2(700, 250); if (!string.IsNullOrEmpty(packageIdOrDisplayName) || filterTab != null) { if (filterTab == null) { filterTab = PageManager.instance.FindTab(packageIdOrDisplayName); } instance.m_FilterToSelectAfterLoad = filterTab; instance.m_PackageToSelectOnLoaded = packageIdOrDisplayName; instance.packageManagerToolbar.SetCurrentSearch(searchText); if (refresh || PackageDatabase.instance.isEmpty) { PageManager.instance.Refresh(filterTab); } else { instance.SelectPackageAndFilter(); } } instance.Show(); }
private void SelectPackageAndFilter() { if (m_FilterToSelectAfterLoad != null) { PackageFiltering.instance.currentFilterTab = (PackageFilterTab)m_FilterToSelectAfterLoad; } if (string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { m_FilterToSelectAfterLoad = null; } else { var package = PackageDatabase.instance.GetPackage(m_PackageToSelectOnLoaded) ?? PackageDatabase.instance.GetPackageByDisplayName(m_PackageToSelectOnLoaded); if (m_FilterToSelectAfterLoad == PackageFilterTab.AssetStore && PackageFiltering.instance.currentFilterTab == PackageFilterTab.AssetStore) { if (package == null || package is PlaceholderPackage) { PageManager.instance.Fetch(m_PackageToSelectOnLoaded); } else { PageManager.instance.GetCurrentPage().Load(package); } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; return; } if (package != null) { if (m_FilterToSelectAfterLoad == null) { var newFilterTab = PackageFilterTab.All; if (package.versions.Any(v => v.HasTag(PackageTag.BuiltIn))) { newFilterTab = PackageFilterTab.BuiltIn; } else { var installedVersion = package.versions.installed; if (installedVersion != null && installedVersion.isDirectDependency) { newFilterTab = PackageFilterTab.InProject; } } PackageFiltering.instance.currentFilterTab = newFilterTab; } PageManager.instance.SetSelected(package); m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; } } }
private void SelectPackageAndFilter() { IPackageVersion version = null; IPackage package = null; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { var packageUniqueId = m_PackageToSelectOnLoaded.Split('@')[0]; PackageDatabase.instance.GetPackageAndVersion(packageUniqueId, m_PackageToSelectOnLoaded, out package, out version); if (package == null) { package = PackageDatabase.instance.GetPackage(m_PackageToSelectOnLoaded) ?? PackageDatabase.instance.GetPackageByDisplayName(m_PackageToSelectOnLoaded); } } if (m_FilterToSelectAfterLoad == PackageFilterTab.AssetStore) { PackageFiltering.instance.currentFilterTab = PackageFilterTab.AssetStore; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { if (package == null || package is PlaceholderPackage) { PageManager.instance.Fetch(m_PackageToSelectOnLoaded); } else { PageManager.instance.GetPage(PackageFilterTab.AssetStore).Load(package, version); } } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; return; } if (package != null || m_FilterToSelectAfterLoad != null) { var tab = m_FilterToSelectAfterLoad ?? PackageFilterTab.All; if (version != null) { if (!PackageManagerPrefs.instance.showPreviewPackages && version.HasTag(PackageTag.Preview)) { PackageManagerPrefs.instance.showPreviewPackages = true; } } PackageFiltering.instance.currentFilterTab = tab; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { PageManager.instance.GetPage(tab).SetSelected(package, version); packageList.OnFocus(); } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; } }
private IPage GetPageFromTab(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; IPage page; return(m_Pages.TryGetValue(filterTab, out page) ? page : CreatePageFromTab(tab)); }
public bool HasFetchedPageForFilterTab(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; if (!m_Pages.ContainsKey(filterTab)) { return(false); } return(m_Pages[filterTab].isAlreadyFetched); }
private void SelectPackageAndFilter() { IPackageVersion version = null; IPackage package = null; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { m_PackageDatabase.GetPackageAndVersionByIdOrName(m_PackageToSelectOnLoaded, out package, out version); } if (m_FilterToSelectAfterLoad == PackageFilterTab.AssetStore) { m_PackageFiltering.currentFilterTab = PackageFilterTab.AssetStore; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { if (package == null || package is PlaceholderPackage) { m_PageManager.Fetch(m_PackageToSelectOnLoaded); } else { m_PageManager.GetPage(PackageFilterTab.AssetStore).Load(package, version); } } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; return; } if (package != null || m_FilterToSelectAfterLoad != null) { var tab = m_FilterToSelectAfterLoad ?? PackageFilterTab.All; if (version != null) { if (!m_PackageManagerPrefs.showPreviewPackages && version.HasTag(PackageTag.Preview)) { m_PackageManagerPrefs.showPreviewPackages = true; } } m_PackageFiltering.currentFilterTab = tab; if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { m_PageManager.SetSelected(package, version, true); packageList.OnFocus(); } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; } }
private Page GetPageFromFilterTab(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; Page page; if (m_Pages.TryGetValue(filterTab, out page)) { return(page); } page = new Page(filterTab); m_Pages[filterTab] = page; RegisterPageEvents(page); return(page); }
public void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { if (!string.IsNullOrEmpty(packageIdOrDisplayName) || filterTab != null) { if (filterTab == null) { m_PackageDatabase.GetPackageAndVersionByIdOrName(packageIdOrDisplayName, out var package, out var version); if (package != null) { filterTab = m_PageManager.FindTab(package, version); } else { var packageIdOrDisplayNameSplit = packageIdOrDisplayName.Split('@'); var versionString = packageIdOrDisplayNameSplit.Length == 2 ? packageIdOrDisplayNameSplit[1] : string.Empty; // Package is not found in PackageDatabase but we can determine if it's a preview package or not with it's version string. SemVersionParser.TryParse(versionString, out var semVersion); if (!m_SettingsProxy.enablePreviewPackages && semVersion.HasValue && (semVersion.Value.Major == 0 || semVersion.Value.Prerelease.StartsWith("preview"))) { Debug.Log("You must check \"Enable Preview Packages\" in Project Settings > Package Manager in order to see this package."); filterTab = m_PackageFiltering.currentFilterTab; packageIdOrDisplayName = null; } else { filterTab = PackageFilterTab.All; } } } m_FilterToSelectAfterLoad = filterTab; m_PackageToSelectOnLoaded = packageIdOrDisplayName; packageManagerToolbar.SetCurrentSearch(searchText); if (refresh || m_PackageDatabase.isEmpty) { DelayRefresh((PackageFilterTab)filterTab); } else { SelectPackageAndFilter(); } } }
internal static void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false) { var window = GetWindow <PackageManagerWindow>(false, "Packages", true); window.minSize = new Vector2(700, 250); if (!string.IsNullOrEmpty(packageIdOrDisplayName)) { window.m_PackageToSelectOnLoaded = packageIdOrDisplayName; window.m_FilterToSelectAfterLoad = filterTab; if (!PackageDatabase.instance.isEmpty && !refresh) { window.SelectPackageAndFilter(); } else if (refresh) { window.RefreshDatabase(); } } window.Show(); }
internal static void SelectPackageAndFilter(string packageIdOrDisplayName, PackageFilterTab?filterTab = null, bool refresh = false, string searchText = "") { s_Window = GetWindow <PackageManagerWindow>(); s_Window.minSize = new Vector2(700, 250); if (!string.IsNullOrEmpty(packageIdOrDisplayName)) { s_Window.packageManagerToolbar.SetCurrentSearch(searchText); s_Window.m_PackageToSelectOnLoaded = packageIdOrDisplayName; s_Window.m_FilterToSelectAfterLoad = filterTab; if (refresh) { PageManager.instance.Refresh(filterTab ?? PackageFilterTab.All); } else if (!PackageDatabase.instance.isEmpty) { s_Window.SelectPackageAndFilter(); } } s_Window.Show(); }
private void SelectPackageAndFilter() { packageManagerToolbar.SetEnabled(true); if (m_FilterToSelectAfterLoad != null) { PackageFiltering.instance.currentFilterTab = (PackageFilterTab)m_FilterToSelectAfterLoad; } if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { var package = PackageDatabase.instance.GetPackage(m_PackageToSelectOnLoaded) ?? PackageDatabase.instance.GetPackageByDisplayName(m_PackageToSelectOnLoaded); if (package != null) { if (m_FilterToSelectAfterLoad == null) { var newFilterTab = PackageFilterTab.All; if (package.versions.Any(v => v.HasTag(PackageTag.BuiltIn))) { newFilterTab = PackageFilterTab.Modules; } else { var installdVersion = package.installedVersion; if (installdVersion != null && installdVersion.isDirectDependency) { newFilterTab = PackageFilterTab.Local; } } PackageFiltering.instance.currentFilterTab = newFilterTab; } SelectionManager.instance.SetSelected(package); } } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; }
public void SelectFilterSubPage(string filterTabOrSubPage = "") { if (!string.IsNullOrEmpty(filterTabOrSubPage)) { var split = filterTabOrSubPage.Split('/'); if (PackageFilterTab.TryParse(split[0], true, out PackageFilterTab tab)) { var subPage = split.Length > 1 ? split[1] : string.Empty; m_PackageToSelectOnLoaded = null; m_FilterToSelectAfterLoad = tab; m_SubPageToSelectAfterLoad = subPage; if (m_PackageDatabase.isEmpty) { DelayRefresh(tab, subPage); } else { SelectPackageAndFilter(); } } } }
public virtual bool IsInitialFetchingDone(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; return(IsInitialFetchingDone(GetRefreshOptionsByTab(filterTab))); }
public virtual bool IsRefreshInProgress(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; return(IsRefreshInProgress(GetRefreshOptionsByTab(filterTab))); }
public virtual UIError GetRefreshError(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; return(GetRefreshError(GetRefreshOptionsByTab(filterTab))); }
public virtual long GetRefreshTimestamp(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; return(GetRefreshTimestamp(GetRefreshOptionsByTab(filterTab))); }
public virtual void Refresh(PackageFilterTab?tab = null, int pageSize = k_DefaultPageSize) { Refresh(GetRefreshOptionsByTab(tab ?? m_PackageFiltering.currentFilterTab), pageSize); }
private void OnRefreshOperationFinish(PackageFilterTab tab) { packageManagerToolbar.SetEnabled(true); packageDetails.packageToolbarContainer.SetEnabled(true); if (m_FilterToSelectAfterLoad != null) { PackageFiltering.instance.currentFilterTab = (PackageFilterTab)m_FilterToSelectAfterLoad; } if (!string.IsNullOrEmpty(m_PackageToSelectOnLoaded) && (m_FilterToSelectAfterLoad == null || tab == m_FilterToSelectAfterLoad)) { var package = PackageDatabase.instance.GetPackage(m_PackageToSelectOnLoaded) ?? PackageDatabase.instance.GetPackageByDisplayName(m_PackageToSelectOnLoaded); if (m_FilterToSelectAfterLoad == PackageFilterTab.AssetStore && PackageFiltering.instance.currentFilterTab == PackageFilterTab.AssetStore) { if (package == null || package is PlaceholderPackage) { PageManager.instance.Fetch(m_PackageToSelectOnLoaded); } else { PageManager.instance.GetCurrentPage().Load(package); } m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; return; } if (package != null) { if (m_FilterToSelectAfterLoad == null) { var newFilterTab = PackageFilterTab.All; if (package.versions.Any(v => v.HasTag(PackageTag.BuiltIn))) { newFilterTab = PackageFilterTab.Modules; } else { var installedVersion = package.installedVersion; if (installedVersion != null && installedVersion.isDirectDependency) { newFilterTab = PackageFilterTab.Local; } } PackageFiltering.instance.currentFilterTab = newFilterTab; } PageManager.instance.SetSelected(package); m_FilterToSelectAfterLoad = null; m_PackageToSelectOnLoaded = null; } } else if (string.IsNullOrEmpty(m_PackageToSelectOnLoaded)) { m_FilterToSelectAfterLoad = null; } }
public bool IsRefreshInProgress(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; return(IsRefreshInProgress(GetRefreshOptionsByTab(filterTab))); }
public Error GetRefreshError(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; return(GetRefreshError(GetRefreshOptionsByTab(filterTab))); }
public bool HasPageForFilterTab(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; return(m_Pages.ContainsKey(filterTab)); }
public void Refresh(PackageFilterTab?tab = null) { Refresh(GetRefreshOptionsByTab(tab ?? PackageFiltering.instance.currentFilterTab)); }
public void Refresh(PackageFilterTab?tab = null, int pageSize = 25) { Refresh(GetRefreshOptionsByTab(tab ?? PackageFiltering.instance.currentFilterTab), pageSize); }
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(); 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(); }
private T GetPageFromTab <T>(PackageFilterTab?tab = null) where T : class, IPage { return(GetPageFromTab(tab) as T); }
public long GetRefreshTimestamp(PackageFilterTab?tab = null) { var filterTab = tab ?? PackageFiltering.instance.currentFilterTab; return(GetRefreshTimestamp(GetRefreshOptionsByTab(filterTab))); }
private IPage CreatePageFromTab(PackageFilterTab?tab = null) { var filterTab = tab ?? m_PackageFiltering.currentFilterTab; IPage page; if (filterTab == PackageFilterTab.AssetStore) { page = new PaginatedPage(m_PackageDatabase, m_AssetStoreClient, m_PackageFiltering, m_PackageManagerPrefs, filterTab, new PageCapability { requireUserLoggedIn = true, requireNetwork = true, supportFilters = true, orderingValues = new[] { new PageCapability.Ordering("Name", "name"), new PageCapability.Ordering("Purchased date", "purchased_date"), new PageCapability.Ordering("Update date", "update_date"), } }); } else if (filterTab == PackageFilterTab.All) { page = new SimplePage(m_PackageDatabase, m_PackageFiltering, filterTab, new PageCapability { requireUserLoggedIn = false, requireNetwork = false, orderingValues = new[] { new PageCapability.Ordering("Name", "displayName"), new PageCapability.Ordering("Published date", "publishedDate") } }); } else if (filterTab == PackageFilterTab.InProject) { page = new SimplePage(m_PackageDatabase, m_PackageFiltering, filterTab, new PageCapability { requireUserLoggedIn = false, requireNetwork = false, orderingValues = new[] { new PageCapability.Ordering("Name", "displayName"), new PageCapability.Ordering("Published date", "publishedDate"), new PageCapability.Ordering("Update date", "updateDate") } }); } else // filterTab == PackageFilterTab.BuiltIn { page = new SimplePage(m_PackageDatabase, m_PackageFiltering, filterTab, new PageCapability { requireUserLoggedIn = false, requireNetwork = false, orderingValues = new[] { new PageCapability.Ordering("Name", "displayName") } }); } m_Pages[filterTab] = page; RegisterPageEvents(page); return(page); }