Mono.Addins.Gui.AddinManagerDialog.LoadGallery C# (CSharp) Method

LoadGallery() private method

private LoadGallery ( ) : void
return void
        void LoadGallery()
        {
            object s = galleryTree.SaveStatus ();

            galleryTree.Clear ();

            string rep = GetRepoSelection ();

            AddinRepositoryEntry[] reps;
            if (rep == AllRepoMarker)
                reps = service.Repositories.GetAvailableAddins (RepositorySearchFlags.LatestVersionsOnly);
            else
                reps = service.Repositories.GetAvailableAddins (rep, RepositorySearchFlags.LatestVersionsOnly);

            int count = 0;

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

                if (IsFiltered (arep.Addin))
                    continue;

                AddinStatus status = AddinStatus.NotInstalled;

                // Find whatever version is installed
                Addin sinfo = AddinManager.Registry.GetAddin (Addin.GetIdName (arep.Addin.Id));

                if (sinfo != null) {
                    status |= AddinStatus.Installed;
                    if (!sinfo.Enabled || Services.GetMissingDependencies (sinfo).Any())
                        status |= AddinStatus.Disabled;
                    if (Addin.CompareVersions (sinfo.Version, arep.Addin.Version) > 0)
                        status |= AddinStatus.HasUpdate;
                }
                galleryTree.AddAddin (arep.Addin, arep, status);
                count++;
            }

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

            galleryTabLabel.Text = Catalog.GetString ("Gallery");

            if (filterEntry.Text.Length != 0 && count > 0)
                galleryTabLabel.Text += " (" + count + ")";
        }