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(); }
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(); } } }