public void OnEnable()
        {
            UpdateStatusMessage();

            m_PageManager.onRefreshOperationStart  += UpdateStatusMessage;
            m_PageManager.onRefreshOperationFinish += UpdateStatusMessage;
            m_PageManager.onRefreshOperationError  += OnRefreshOperationError;

            m_PackageFiltering.onFilterTabChanged      += OnFilterTabChanged;
            m_Application.onInternetReachabilityChange += OnInternetReachabilityChange;

            m_AssetStoreCallQueue.onCheckUpdateProgress += OnCheckUpdateProgress;

            refreshButton.SetIcon("refresh");
            refreshButton.iconTooltip = L10n.Tr("Refresh list");
            refreshButton.clicked    += () =>
            {
                if (!EditorApplication.isPlaying)
                {
                    m_PageManager.Refresh(m_PackageFiltering.currentFilterTab);
                }
            };
            refreshButton.SetEnabled(true);

            RefreshCheckUpdateMenuOption(m_PackageFiltering.currentFilterTab);
        }
Beispiel #2
0
        private void DelayRefresh(PackageFilterTab tab, string subPage = "")
        {
            if (!m_ApplicationProxy.isUpmRunning)
            {
                if (!m_ApplicationProxy.isBatchMode)
                {
                    Debug.Log(L10n.Tr("[Package Manager Window] UPM server is not running. Please check that your Editor was not launched with '-noUpm' command line option."));
                }

                packageList.HideListShowEmptyArea(L10n.Tr("UPM server is not running"));
                packageStatusbar.DisableRefresh();
                return;
            }

            if (tab == PackageFilterTab.AssetStore &&
                (m_PackageManagerPrefs.numItemsPerPage == null || !m_UnityConnectProxy.isUserInfoReady))
            {
                EditorApplication.delayCall += () => DelayRefresh(tab, subPage);
                return;
            }

            m_PageManager.Refresh(tab);
        }
        private void CheckUpdateFromStack()
        {
            if (!m_UnityConnect.isUserLoggedIn || m_CheckUpdateInProgress || !m_CheckUpdateStack.Any())
            {
                return;
            }

            var checkUpdateList = new List <string>(k_CheckUpdateChunkSize);

            while (m_CheckUpdateStack.Any() && checkUpdateList.Count < k_CheckUpdateChunkSize)
            {
                var id = m_CheckUpdateStack.Pop();
                if (m_ForceCheckUpdateLookup.TryGetValue(id, out var forceCheck))
                {
                    if (forceCheck || m_AssetStoreCache.GetLocalInfo(id)?.updateInfoFetched == false)
                    {
                        checkUpdateList.Add(id);
                    }
                    m_ForceCheckUpdateLookup.Remove(id);
                }
            }

            if (checkUpdateList.Any())
            {
                m_CheckUpdateInProgress = true;
                m_AssetStoreClient.CheckUpdate(checkUpdateList, () =>
                {
                    m_CheckUpdateInProgress = false;
                    onCheckUpdateProgress?.Invoke();

                    if (m_RefreshAfterCheckUpdates && !m_CheckUpdateStack.Any())
                    {
                        var page = m_PageManager.GetCurrentPage();
                        if (page.filters.updateAvailableOnly)
                        {
                            m_PageManager.Refresh();
                        }
                        m_RefreshAfterCheckUpdates = false;
                    }
                });
            }
            onCheckUpdateProgress?.Invoke();
        }
Beispiel #4
0
        private void SetupAdvancedMenu()
        {
            toolbarSettingsMenu.tooltip = L10n.Tr("Advanced");

            var dropdownItem = toolbarSettingsMenu.AddBuiltInDropdownItem();

            dropdownItem.text   = L10n.Tr("Project Settings");
            dropdownItem.action = () =>
            {
                if (!m_SettingsProxy.advancedSettingsExpanded)
                {
                    m_SettingsProxy.advancedSettingsExpanded = true;
                    m_SettingsProxy.Save();
                }
                SettingsWindow.Show(SettingsScope.Project, PackageManagerProjectSettingsProvider.k_PackageManagerSettingsPath);
                PackageManagerWindowAnalytics.SendEvent("advancedProjectSettings");
            };

            dropdownItem        = toolbarSettingsMenu.AddBuiltInDropdownItem();
            dropdownItem.text   = L10n.Tr("Preferences");
            dropdownItem.action = () =>
            {
                SettingsWindow.Show(SettingsScope.User, PackageManagerUserSettingsProvider.k_PackageManagerUserSettingsPath);
                PackageManagerWindowAnalytics.SendEvent("packageManagerUserSettings");
            };

            dropdownItem = toolbarSettingsMenu.AddBuiltInDropdownItem();
            dropdownItem.insertSeparatorBefore = true;
            dropdownItem.text   = L10n.Tr("Manual resolve");
            dropdownItem.action = () =>
            {
                if (!EditorApplication.isPlaying)
                {
                    m_UpmClient.Resolve();
                }
            };

            dropdownItem = toolbarSettingsMenu.AddBuiltInDropdownItem();
            dropdownItem.insertSeparatorBefore = true;
            dropdownItem.text   = L10n.Tr("Reset Packages to defaults");
            dropdownItem.action = () =>
            {
                EditorApplication.ExecuteMenuItem(k_ResetPackagesMenuPath);
                m_PageManager.Refresh(RefreshOptions.UpmListOffline);
                PackageManagerWindowAnalytics.SendEvent("resetToDefaults");
            };

            if (Unsupported.IsDeveloperBuild())
            {
                dropdownItem = toolbarSettingsMenu.AddBuiltInDropdownItem();
                dropdownItem.insertSeparatorBefore = true;
                dropdownItem.text   = L10n.Tr("Reset Package Database");
                dropdownItem.action = () =>
                {
                    PackageManagerWindow.instance?.Close();
                    m_PageManager.Reload();
                    ServicesContainer.instance.Resolve <AssetStoreCallQueue>().ClearFetchDetails();
                };

                dropdownItem        = toolbarSettingsMenu.AddBuiltInDropdownItem();
                dropdownItem.text   = L10n.Tr("Reset Stylesheets");
                dropdownItem.action = () =>
                {
                    PackageManagerWindow.instance?.Close();
                    m_ResourceLoader.Reset();
                };
            }
        }