Mono.Addins.GuiGtk3.AddinManagerDialog.LoadUpdates C# (CSharp) Method

LoadUpdates() private method

private LoadUpdates ( ) : void
return void
        void LoadUpdates()
        {
            object s = updatesTree.SaveStatus ();

            updatesTree.Clear ();

            AddinRepositoryEntry[] reps;
            reps = service.Repositories.GetAvailableAddins (RepositorySearchFlags.LatestVersionsOnly);

            int count = 0;

            foreach (AddinRepositoryEntry arep in reps)
            {
                if (!Services.InApplicationNamespace (service, arep.Addin.Id))
                    continue;

                // Find whatever version is installed
                Addin sinfo = AddinManager.Registry.GetAddin (Addin.GetIdName (arep.Addin.Id));
                if (sinfo == null || !sinfo.Enabled || Addin.CompareVersions (sinfo.Version, arep.Addin.Version) <= 0)
                    continue;

                if (IsFiltered (arep.Addin))
                    continue;

                AddinStatus status = AddinStatus.Installed;
                if (!sinfo.Enabled || Services.GetMissingDependencies (sinfo).Any())
                    status |= AddinStatus.Disabled;

                updatesTree.AddAddin (arep.Addin, arep, status | AddinStatus.HasUpdate);
                count++;
            }

            labelUpdates.Text = string.Format (Catalog.GetPluralString ("{0} update available", "{0} updates available", count), count);
            updatesTabLabel.Text = Catalog.GetString ("Updates");
            if (count > 0)
                updatesTabLabel.Text += " (" + count + ")";

            buttonUpdateAll.Visible = count > 0;

            if (count > 0)
                updatesTree.RestoreStatus (s);
            else
                updatesTree.ShowEmptyMessage ();
        }