Esempio n. 1
0
        internal void RefreshRow(int index, PackageManifest package)
        {
            if (index < 0 || index >= _packageList.Rows.Count)
            {
                return;
            }

            var row = _packageList.Rows[index];

            var state = WebManifestManager.GetStateForGuid(package.GUID);

            switch (state)
            {
            case WebManifestManager.GuidFilterState.BrokenList:
                Console.WriteLine("TODO");
                break;

            case WebManifestManager.GuidFilterState.Whitelist:
                row.DefaultCellStyle.ForeColor          = Color.Goldenrod;
                row.DefaultCellStyle.SelectionForeColor = Color.Goldenrod;
                break;
            }

            row.Cells[4].Value = package.TimeSinceRepoUpdatedPretty;

            if (CurrentInspectedPackage == package)
            {
                SetInfoboxPackage(package);
            }
        }
Esempio n. 2
0
        public BrowseModsPage()
        {
            Instance = this;
            InitializeComponent();
            _packageList.ColumnHeaderMouseClick += _packageList_ColumnHeaderMouseClick;

            _showInstalledCheck.Checked   = ShowInstalledPackages;
            _showOnlyTrustedCheck.Checked = OnlyShowTrusted;
            _libraryToggle.Checked        = ShowLibraries;

            MefinoGUI.SensitiveControls.AddRange(new Control[] { this._infoBoxInstallButton, this._refreshButton });

            // init some states
            _packageInfoBox.Visible    = false;
            _infoBoxTabs.SelectedIndex = 0;

            // Register callbacks
            _packageList.CellClick += _packageList_CellClick;

            LocalPackageManager.OnPackageInstalled   += (_) => { RefreshPackageList(); };
            LocalPackageManager.OnPackageUninstalled += (_) => { RefreshPackageList(); };

            // Force an update of web manifests on launch
            WebManifestManager.UpdateWebManifests();

            // Refresh tags after manifest update
            RefreshTags();

            RefreshPackageList();
        }
Esempio n. 3
0
        public void RefreshPackageList()
        {
            _packageList.Rows.Clear();
            //s_packageList.Clear();

            foreach (var pkg in WebManifestManager.s_webManifests)
            {
                AddPackageRow(pkg.Value);
            }

            void AddPackageRow(PackageManifest package)
            {
                if (!ShowInstalledPackages && package.IsInstalled)
                {
                    return;
                }

                if (!ShowLibraries && package.HasTag("Library"))
                {
                    return;
                }

                if (SelectedTag != "All" && !string.IsNullOrEmpty(SelectedTag))
                {
                    if (package.tags == null || !package.HasTag(SelectedTag))
                    {
                        return;
                    }
                }

                var state = WebManifestManager.GetStateForGuid(package.GUID);

                if (OnlyShowTrusted && state != WebManifestManager.GuidFilterState.Whitelist)
                {
                    return;
                }

                if (state == WebManifestManager.GuidFilterState.Blacklist)
                {
                    return;
                }

                _packageList.Rows.Add(new string[]
                {
                    package.name,
                    package.version,
                    package.author,
                    package.RepoLastUpdatedTime.ToString()
                });

                RefreshRow(_packageList.Rows.Count - 1, package);
            }

            //_packageList.Sort(_listColName, ListSortDirection.Ascending);

            if (s_currentPackage != null)
            {
                SetInfoboxPackage(s_currentPackage);
            }
        }
Esempio n. 4
0
        internal static void Cmd_RefreshModList(params string[] args)
        {
            if (!Folders.IsCurrentOutwardPathValid())
            {
                Console.WriteLine("You need to set the Outward path first!");
                return;
            }

            WebManifestManager.UpdateWebManifests();

            LocalPackageManager.RefreshInstalledPackages();
        }
Esempio n. 5
0
        /// <summary>
        /// Refresh all packages, online and local. Optionally re-download new manifests as well, if <paramref name="refreshOnline"/> is <see langword="true"/>
        /// </summary>
        public static void RefreshAllPackages(bool refreshOnline = false)
        {
            if (refreshOnline)
            {
                WebManifestManager.UpdateWebManifests();
            }
            else
            {
                WebManifestManager.LoadWebManifestCache();
            }

            // refresh installed packages
            LocalPackageManager.RefreshInstalledPackages();
        }