Esempio n. 1
0
        /// <summary>
        /// Construct an Addin for a type.
        /// </summary>
        /// <param name="type">The type to be used</param>
        public Addin(Type type)
        {
            this.typeName = type.AssemblyQualifiedName;

            object[] attrs = type.GetCustomAttributes(typeof(NUnitAddinAttribute), false);
            if (attrs.Length == 1)
            {
                NUnitAddinAttribute attr = (NUnitAddinAttribute)attrs[0];
                this.name          = attr.Name;
                this.description   = attr.Description;
                this.extensionType = attr.Type;
            }

            if (this.name == null)
            {
                this.name = type.Name;
            }

            if (this.extensionType == 0)
            {
                this.extensionType = ExtensionType.Core;
            }

            this.status = AddinStatus.Enabled;
        }
Esempio n. 2
0
        public TreeIter AddAddin(AddinHeader info, object dataItem, AddinStatus status)
        {
            addinData [info] = dataItem;
            TreeIter iter;

            if (ShowCategories)
            {
                TreeIter piter = TreeIter.Zero;
                if (info.Category == "")
                {
                    string otherCat = Catalog.GetString("Other");
                    piter = FindCategory(otherCat);
                }
                else
                {
                    piter = FindCategory(info.Category);
                }
                iter = treeStore.AppendNode(piter);
            }
            else
            {
                iter = treeStore.AppendNode();
            }
            UpdateRow(iter, info, dataItem, status);
            return(iter);
        }
        public void SetEnabled(string addinId, bool enabled, bool defaultValue, bool exactVersionMatch)
        {
            if (IsRegisteredForUninstall(addinId))
            {
                return;
            }

            var addinName = exactVersionMatch ? addinId : Addin.GetIdName(addinId);

            AddinStatus s;

            addinStatus.TryGetValue(addinName, out s);

            if (s == null)
            {
                s = addinStatus [addinName] = new AddinStatus(addinName);
            }
            s.Enabled = enabled;

            // If enabling a specific version of an add-in, make sure the add-in is enabled as a whole
            if (enabled && exactVersionMatch)
            {
                SetEnabled(addinId, true, defaultValue, false);
            }
        }
Esempio n. 4
0
        void StoreIcon(TreeIter it, string iconId, Gdk.Pixbuf customPix, AddinStatus status)
        {
            if (customPix == null)
            {
                customPix = iconInstalled;
            }

            if ((status & AddinStatus.Installed) == 0)
            {
                treeStore.SetValue(it, ColImage, customPix);
                return;
            }
            else if (ShowInstalledMarkers && (status & AddinStatus.HasUpdate) == 0)
            {
                customPix = GetCachedIcon(iconId, "InstalledOverlay", delegate { return(Services.AddIconOverlay(customPix, installedOverlay)); });
                iconId    = iconId + "_Installed";
            }

            if ((status & AddinStatus.Disabled) != 0)
            {
                customPix = GetCachedIcon(iconId, "Desaturate", delegate { return(Services.DesaturateIcon(customPix)); });
                iconId    = iconId + "_Desaturate";
            }
            if ((status & AddinStatus.HasUpdate) != 0)
            {
                customPix = GetCachedIcon(iconId, "UpdateOverlay", delegate { return(Services.AddIconOverlay(customPix, updateOverlay)); });
            }

            treeStore.SetValue(it, ColImage, customPix);
        }
        public static DatabaseConfiguration Read(string file)
        {
            DatabaseConfiguration config = new DatabaseConfiguration ();
            XmlDocument doc = new XmlDocument ();
            doc.Load (file);

            XmlElement disabledElem = (XmlElement) doc.DocumentElement.SelectSingleNode ("DisabledAddins");
            if (disabledElem != null) {
                // For back compatibility
                foreach (XmlElement elem in disabledElem.SelectNodes ("Addin"))
                    config.SetEnabled (elem.InnerText, false, true);
                return config;
            }

            XmlElement statusElem = (XmlElement) doc.DocumentElement.SelectSingleNode ("AddinStatus");
            if (statusElem != null) {
                foreach (XmlElement elem in statusElem.SelectNodes ("Addin")) {
                    AddinStatus status = new AddinStatus (elem.GetAttribute ("id"));
                    string senabled = elem.GetAttribute ("enabled");
                    status.Enabled = senabled.Length == 0 || senabled == "True";
                    status.Uninstalled = elem.GetAttribute ("uninstalled") == "True";
                    config.addinStatus [status.AddinId] = status;
                    foreach (XmlElement fileElem in elem.SelectNodes ("File")) {
                        if (status.Files == null)
                            status.Files = new List<string> ();
                        status.Files.Add (fileElem.InnerText);
                    }
                }
            }
            return config;
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Sets the load status of an addin
        /// </summary>
        /// <param name="name">The name of the addin</param>
        /// <param name="status">The status to be set</param>
        /// <param name="message">An optional message explaining the status</param>
		public void SetStatus( string name, AddinStatus status, string message )
		{
            Addin addin = FindAddinByName(name);
            if (addin != null)
            {
                addin.Status = status;
                addin.Message = message;
            }
        }
Esempio n. 8
0
		public void SetStatus( string name, AddinStatus status, string message )
		{
			foreach( Addin addin in addins )
				if ( addin.Name == name )
				{
					addin.Status = status;
					addin.Message = message;
				}
		}
Esempio n. 9
0
        void OnAddinStatusChanged(AddinStatus status)
        {
            var evt = StatusChanged;

            if (evt != null)
            {
                evt.Invoke(this, new AddinStatusChangedEventArgs(status, this));
            }
        }
 public void SetStatus(string name, AddinStatus status)
 {
     foreach (Addin addin in addins)
     {
         if (addin.Name == name)
         {
             addin.Status = status;
         }
     }
 }
Esempio n. 11
0
        public void SetStatus(string name, AddinStatus status, string message)
        {
            Addin addin = FindAddinByName(name);

            if (addin != null)
            {
                addin.Status  = status;
                addin.Message = message;
            }
        }
 public void SetStatus(string name, AddinStatus status, string message)
 {
     foreach (Addin addin in addins)
     {
         if (addin.Name == name)
         {
             addin.Status  = status;
             addin.Message = message;
         }
     }
 }
        public void RegisterForUninstall(string addinId, IEnumerable <string> files)
        {
            AddinStatus s;

            if (!addinStatus.TryGetValue(addinId, out s))
            {
                s = addinStatus [addinId] = new AddinStatus(addinId);
            }

            s.Enabled     = false;
            s.Uninstalled = true;
            s.Files       = new List <string> (files);
        }
Esempio n. 14
0
        void LoadInstalled()
        {
            object s = tree.SaveStatus();

            int count = 0;

            tree.Clear();
            foreach (Addin ainfo in AddinManager.Registry.GetModules(AddinSearchFlags.IncludeAddins | AddinSearchFlags.LatestVersionsOnly))
            {
                if (Services.InApplicationNamespace(service, ainfo.Id) && !ainfo.Description.IsHidden)
                {
                    AddinHeader ah = SetupService.GetAddinHeader(ainfo);
                    if (IsFiltered(ah))
                    {
                        continue;
                    }
                    AddinStatus st = AddinStatus.Installed;
                    if (!ainfo.Enabled || Services.GetMissingDependencies(ainfo).Any())
                    {
                        st |= AddinStatus.Disabled;
                    }
                    if (addininfoInstalled.GetUpdate(ainfo) != null)
                    {
                        st |= AddinStatus.HasUpdate;
                    }
                    tree.AddAddin(ah, ainfo, st);
                    count++;
                }
            }

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

            UpdateAddinInfo();

            installedTabLabel.Text = Catalog.GetString("Installed");

            if (filterEntry.Text.Length != 0 && count > 0)
            {
                installedTabLabel.Text += " (" + count + ")";
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Installs the addins.
        /// </summary>
        public void InstallAddins()
        {
            log.Info("Installing Addins");

            if (AddinRegistry != null)
            {
                foreach (Addin addin in AddinRegistry.Addins)
                {
                    if ((this.ExtensionTypes & addin.ExtensionType) != 0)
                    {
                        AddinStatus status  = AddinStatus.Unknown;
                        string      message = null;

                        try
                        {
                            Type type = Type.GetType(addin.TypeName);
                            if (type == null)
                            {
                                status  = AddinStatus.Error;
                                message = string.Format("Unable to locate {0} Type", addin.TypeName);
                            }
                            else if (!InstallAddin(type))
                            {
                                status  = AddinStatus.Error;
                                message = "Install method returned false";
                            }
                            else
                            {
                                status = AddinStatus.Loaded;
                            }
                        }
                        catch (Exception ex)
                        {
                            status  = AddinStatus.Error;
                            message = ex.ToString();
                        }

                        AddinRegistry.SetStatus(addin.Name, status, message);
                        if (status != AddinStatus.Loaded)
                        {
                            log.Error("Failed to load {0}", addin.Name);
                            log.Error(message);
                        }
                    }
                }
            }
        }
Esempio n. 16
0
        void SetRowIcon(TreeIter it, AddinHeader info, object dataItem, AddinStatus status)
        {
            string customIcom = info.Properties.GetPropertyValue("Icon32");
            string iconId     = info.Id + " " + info.Version + " " + customIcom;

            Gdk.Pixbuf customPix;

            if (customIcom.Length == 0)
            {
                customPix = null;
                iconId    = "__";
            }
            else if (!cachedIcons.TryGetValue(iconId, out customPix))
            {
                if (dataItem is Addin)
                {
                    string file = Path.Combine(((Addin)dataItem).Description.BasePath, customIcom);
                    if (File.Exists(file))
                    {
                        try
                        {
                            customPix = new Gdk.Pixbuf(file);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                        }
                    }
                    cachedIcons [iconId] = customPix;
                }
                else if (dataItem is AddinRepositoryEntry)
                {
                    AddinRepositoryEntry arep = (AddinRepositoryEntry)dataItem;
                    string tmpId = iconId;
                    arep.BeginDownloadSupportFile(customIcom, delegate(IAsyncResult res)
                    {
                        Gtk.Application.Invoke(delegate
                        {
                            LoadRemoteIcon(it, tmpId, arep, res, info, dataItem, status);
                        });
                    }, null);
                    iconId = "__";
                }
            }

            StoreIcon(it, iconId, customPix, status);
        }
		public void SetEnabled (string addinId, bool enabled, bool defaultValue, bool exactVersionMatch)
		{
			if (IsRegisteredForUninstall (addinId))
				return;

			var addinName = exactVersionMatch ? addinId : Addin.GetIdName (addinId);

			AddinStatus s;
			addinStatus.TryGetValue (addinName, out s);
			
			if (enabled == defaultValue) {
				addinStatus.Remove (addinName);
				return;
			}
			if (s == null)
				s = addinStatus [addinName] = new AddinStatus (addinName);
			s.Enabled = enabled;
		}
Esempio n. 18
0
 private void UpdateAddinStatus()
 {
     for (int i = 0; i < moduleDT.Rows.Count; i++)
     {
         string name = (string)moduleDT.GetValue("Name", i);
         string type = (string)moduleDT.GetValue("Type", i);
         string status;
         if (type == "AddIn")
         {
             AddinStatus addinStatus = FrameworkAddinManager.GetAddinStatus(name);
             status = (addinStatus == AddinStatus.Running) ? "R" : "S";
         }
         else
         {
             status = "R"; // mark framework as running.
         }
         moduleDT.SetValue("Status", i, status);
     }
 }
        static DatabaseConfiguration ReadInternal(string file)
        {
            DatabaseConfiguration config = new DatabaseConfiguration();
            XmlDocument           doc    = new XmlDocument();

            doc.Load(file);

            XmlElement disabledElem = (XmlElement)doc.DocumentElement.SelectSingleNode("DisabledAddins");

            if (disabledElem != null)
            {
                // For back compatibility
                foreach (XmlElement elem in disabledElem.SelectNodes("Addin"))
                {
                    config.SetEnabled(elem.InnerText, false, true, false);
                }
                return(config);
            }

            XmlElement statusElem = (XmlElement)doc.DocumentElement.SelectSingleNode("AddinStatus");

            if (statusElem != null)
            {
                foreach (XmlElement elem in statusElem.SelectNodes("Addin"))
                {
                    AddinStatus status   = new AddinStatus(elem.GetAttribute("id"));
                    string      senabled = elem.GetAttribute("enabled");
                    status.Enabled     = senabled.Length == 0 || senabled == "True";
                    status.Uninstalled = elem.GetAttribute("uninstalled") == "True";
                    config.addinStatus [status.AddinId] = status;
                    foreach (XmlElement fileElem in elem.SelectNodes("File"))
                    {
                        if (status.Files == null)
                        {
                            status.Files = new List <string> ();
                        }
                        status.Files.Add(fileElem.InnerText);
                    }
                }
            }
            return(config);
        }
Esempio n. 20
0
		/// <summary>
		/// Construct an Addin for a type.
		/// </summary>
		/// <param name="type">The type to be used</param>
		public Addin( Type type )
		{
			this.typeName = type.AssemblyQualifiedName;

			object[] attrs = type.GetCustomAttributes( typeof(NUnitAddinAttribute), false );
			if ( attrs.Length == 1 )
			{
				NUnitAddinAttribute attr = (NUnitAddinAttribute)attrs[0];
				this.name = attr.Name;
				this.description = attr.Description;
				this.extensionType = attr.Type;
			}

			if ( this.name == null )
				this.name = type.Name;

			if ( this.extensionType == 0 )
				this.extensionType = ExtensionType.Core;

			this.status = AddinStatus.Enabled;
        }
Esempio n. 21
0
        public void SetStatus(string addinId, bool enabled, bool defaultValue)
        {
            AddinStatus s;

            addinStatus.TryGetValue(addinId, out s);

            if (s != null && s.Uninstalled)
            {
                return;
            }

            if (enabled == defaultValue)
            {
                addinStatus.Remove(addinId);
                return;
            }
            if (s == null)
            {
                s = addinStatus [addinId] = new AddinStatus(addinId);
            }
            s.Enabled = enabled;
        }
Esempio n. 22
0
        public void SetEnabled(string addinId, bool enabled, bool defaultValue, bool exactVersionMatch)
        {
            if (IsRegisteredForUninstall(addinId))
            {
                return;
            }

            var addinName = exactVersionMatch ? addinId : Addin.GetIdName(addinId);

            AddinStatus s;

            addinStatus.TryGetValue(addinName, out s);

            if (enabled == defaultValue)
            {
                addinStatus.Remove(addinName);
                return;
            }
            if (s == null)
            {
                s = addinStatus [addinName] = new AddinStatus(addinName);
            }
            s.Enabled = enabled;
        }
Esempio n. 23
0
        void SetRowIcon(TreeIter it, AddinHeader info, object dataItem, AddinStatus status)
        {
            string customIcom = info.Properties.GetPropertyValue ("Icon32");
            string iconId = info.Id + " " + info.Version + " " + customIcom;
            Gdk.Pixbuf customPix;

            if (customIcom.Length == 0) {
                customPix = null;
                iconId = "__";
            }
            else if (!cachedIcons.TryGetValue (iconId, out customPix)) {

                if (dataItem is Addin) {
                    string file = Path.Combine (((Addin)dataItem).Description.BasePath, customIcom);
                    if (File.Exists (file)) {
                        try {
                            customPix = new Gdk.Pixbuf (file);
                        } catch (Exception ex) {
                            Console.WriteLine (ex);
                        }
                    }
                    cachedIcons [iconId] = customPix;
                }
                else if (dataItem is AddinRepositoryEntry) {
                    AddinRepositoryEntry arep = (AddinRepositoryEntry) dataItem;
                    string tmpId = iconId;
                    arep.BeginDownloadSupportFile (customIcom, delegate (IAsyncResult res) {
                        Gtk.Application.Invoke (delegate {
                            LoadRemoteIcon (it, tmpId, arep, res, info, dataItem, status);
                        });
                    }, null);
                    iconId = "__";
                }
            }

            StoreIcon (it, iconId, customPix, status);
        }
Esempio n. 24
0
 internal AddinStatusChangedEventArgs(AddinStatus addinStatus, Addin addin)
 {
     AddinStatus = addinStatus;
     Addin       = addin;
 }
Esempio n. 25
0
        protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, AddinStatus status)
        {
            bool sel = selected.Contains(info);

            treeStore.SetValue(iter, ColAddin, info);
            treeStore.SetValue(iter, ColData, dataItem);

            string name = EscapeWithFilterMarker(info.Name);

            if (!string.IsNullOrEmpty(info.Description))
            {
                string desc = info.Description;
                int    i    = desc.IndexOf('\n');
                if (i != -1)
                {
                    desc = desc.Substring(0, i);
                }
                name += "\n<small><span foreground=\"darkgrey\">" + EscapeWithFilterMarker(desc) + "</span></small>";
            }

            if (status != AddinStatus.Disabled)
            {
                treeStore.SetValue(iter, ColName, name);
                treeStore.SetValue(iter, ColVersion, info.Version);
                treeStore.SetValue(iter, ColAllowSelection, allowSelection);
            }
            else
            {
                treeStore.SetValue(iter, ColName, "<span foreground=\"grey\">" + name + "</span>");
                treeStore.SetValue(iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>");
                treeStore.SetValue(iter, ColAllowSelection, false);
            }

            treeStore.SetValue(iter, ColShowImage, true);
            treeStore.SetValue(iter, ColSelected, sel);
            SetRowIcon(iter, info, dataItem, status);
        }
Esempio n. 26
0
        public void RegisterForUninstall(string addinId, IEnumerable<string> files)
        {
            AddinStatus s;
            if (!addinStatus.TryGetValue (addinId, out s))
                s = addinStatus [addinId] = new AddinStatus (addinId);

            s.Enabled = false;
            s.Uninstalled = true;
            s.Files = new List<string> (files);
        }
        public void SetStatus(string addinId, bool enabled, bool defaultValue)
        {
            AddinStatus s;
            addinStatus.TryGetValue (addinId, out s);

            if (s != null && s.Uninstalled)
                return;

            if (enabled == defaultValue) {
                addinStatus.Remove (addinId);
                return;
            }
            if (s == null)
                s = addinStatus [addinId] = new AddinStatus (addinId);
            s.Enabled = enabled;
        }
Esempio n. 28
0
        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 + ")";
            }
        }
Esempio n. 29
0
 public TreeIter AddAddin(AddinHeader info, object dataItem, AddinStatus status)
 {
     addinData [info] = dataItem;
     TreeIter iter;
     if (ShowCategories) {
         TreeIter piter = TreeIter.Zero;
         if (info.Category == "") {
             string otherCat = Catalog.GetString ("Other");
             piter = FindCategory (otherCat);
         } else {
             piter = FindCategory (info.Category);
         }
         iter = treeStore.AppendNode (piter);
     } else {
         iter = treeStore.AppendNode ();
     }
     UpdateRow (iter, info, dataItem, status);
     return iter;
 }
Esempio n. 30
0
        protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, AddinStatus status)
        {
            bool sel = selected.Contains (info);

            treeStore.SetValue (iter, ColAddin, info);
            treeStore.SetValue (iter, ColData, dataItem);

            string name = EscapeWithFilterMarker (info.Name);
            if (!string.IsNullOrEmpty (info.Description)) {
                string desc = info.Description;
                int i = desc.IndexOf ('\n');
                if (i != -1)
                    desc = desc.Substring (0, i);
                name += "\n<small><span foreground=\"darkgrey\">" + EscapeWithFilterMarker (desc) + "</span></small>";
            }

            if (status != AddinStatus.Disabled) {
                treeStore.SetValue (iter, ColName, name);
                treeStore.SetValue (iter, ColVersion, info.Version);
                treeStore.SetValue (iter, ColAllowSelection, allowSelection);
            }
            else {
                treeStore.SetValue (iter, ColName, "<span foreground=\"grey\">" + name + "</span>");
                treeStore.SetValue (iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>");
                treeStore.SetValue (iter, ColAllowSelection, false);
            }

            treeStore.SetValue (iter, ColShowImage, true);
            treeStore.SetValue (iter, ColSelected, sel);
            SetRowIcon (iter, info, dataItem, status);
        }
Esempio n. 31
0
 void LoadRemoteIcon(TreeIter it, string iconId, AddinRepositoryEntry arep, IAsyncResult res, AddinHeader info, object dataItem, AddinStatus status)
 {
     if (!disposed && treeStore.IterIsValid (it)) {
         Gdk.Pixbuf customPix = null;
         try {
             Gdk.PixbufLoader loader = new Gdk.PixbufLoader (arep.EndDownloadSupportFile (res));
             customPix = loader.Pixbuf;
         } catch (Exception ex) {
             Console.WriteLine (ex);
         }
         cachedIcons [iconId] = customPix;
         StoreIcon (it, iconId, customPix, status);
     }
 }
Esempio n. 32
0
		public void SetStatus( string name, AddinStatus status )
		{
			foreach( Addin addin in addins )
				if ( addin.Name == name )
					addin.Status = status;
		}
Esempio n. 33
0
 void LoadRemoteIcon(TreeIter it, string iconId, AddinRepositoryEntry arep, IAsyncResult res, AddinHeader info, object dataItem, AddinStatus status)
 {
     if (!disposed && treeStore.IterIsValid(it))
     {
         Gdk.Pixbuf customPix = null;
         try
         {
             Gdk.PixbufLoader loader = new Gdk.PixbufLoader(arep.EndDownloadSupportFile(res));
             customPix = loader.Pixbuf;
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex);
         }
         cachedIcons [iconId] = customPix;
         StoreIcon(it, iconId, customPix, status);
     }
 }
Esempio n. 34
0
        public void SetEnabled(string addinId, bool enabled, bool defaultValue, bool exactVersionMatch)
        {
            if (IsRegisteredForUninstall (addinId))
                return;

            var addinName = exactVersionMatch ? addinId : Addin.GetIdName (addinId);

            AddinStatus s;
            addinStatus.TryGetValue (addinName, out s);

            if (s == null)
                s = addinStatus [addinName] = new AddinStatus (addinName);
            s.Enabled = enabled;

            // If enabling a specific version of an add-in, make sure the add-in is enabled as a whole
            if (enabled && exactVersionMatch)
                SetEnabled (addinId, true, defaultValue, false);
        }
Esempio n. 35
0
        void StoreIcon(TreeIter it, string iconId, Gdk.Pixbuf customPix, AddinStatus status)
        {
            if (customPix == null)
                customPix = iconInstalled;

            if ((status & AddinStatus.Installed) == 0) {
                treeStore.SetValue (it, ColImage, customPix);
                return;
            } else if (ShowInstalledMarkers && (status & AddinStatus.HasUpdate) == 0) {
                customPix = GetCachedIcon (iconId, "InstalledOverlay", delegate { return Services.AddIconOverlay (customPix, installedOverlay); });
                iconId = iconId + "_Installed";
            }

            if ((status & AddinStatus.Disabled) != 0) {
                customPix = GetCachedIcon (iconId, "Desaturate", delegate { return Services.DesaturateIcon (customPix); });
                iconId = iconId + "_Desaturate";
            }
            if ((status & AddinStatus.HasUpdate) != 0)
                customPix = GetCachedIcon (iconId, "UpdateOverlay", delegate { return Services.AddIconOverlay (customPix, updateOverlay); });

            treeStore.SetValue (it, ColImage, customPix);
        }