示例#1
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);
        }
        internal override bool TryParse(ResolutionResult resolutionResult, out AddinResolution result)
        {
            result = new NewOrUpdatedAddinResolution();

            bool enabled; AddinHeaderResolution addinHeader;

            if (!AddinHeader.TryParse(resolutionResult, result, out enabled, out addinHeader))
            {
                return(false);
            }

            List <ExtensionPointResolution> extensionPoints = null; List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null;

            if (ExtensionSchema != null && !ExtensionSchema.TryParse(resolutionResult, result, out extensionPoints, out extensionBuilderGroups))
            {
                return(false);
            }

            List <ExtensionResolutionGroup> extensionGroups = null;

            if (Extensions != null && !Extensions.TryParse(resolutionResult, result, out extensionGroups))
            {
                return(false);
            }

            AddinActivatorResolution addinActivator = null;

            if (AddinActivator != null && !AddinActivator.TryParse(resolutionResult, result, out addinActivator))
            {
                return(false);
            }

            result.Enabled                = enabled;
            result.AddinHeader            = addinHeader;
            result.ManifestFile           = ManifestFile;
            result.ExtensionBuilderGroups = extensionBuilderGroups;
            result.ExtensionPoints        = extensionPoints;
            result.ExtensionGroups        = extensionGroups;
            result.AddinActivator         = addinActivator;

            if (AssemblyFiles != null)
            {
                result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count);
                foreach (var assemblyFile in AssemblyFiles)
                {
                    result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile));
                }
            }

            if (DataFiles != null)
            {
                result.DataFiles = new List <DataFileResolution>(DataFiles.Count);
                foreach (var dataFile in DataFiles)
                {
                    result.DataFiles.Add(dataFile);
                }
            }

            return(true);
        }
示例#3
0
        protected override void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon)
        {
            base.UpdateRow(iter, info, dataItem, enabled, icon);
            AddinRepositoryEntry arep = (AddinRepositoryEntry)dataItem;

            treeStore.SetValue(iter, ncol, arep.RepositoryName);
        }
示例#4
0
        public void SetUninstallMode(AddinHeader info)
        {
            btnPrev.Hide();
            btnNext.Sensitive = true;

            uninstallId = info.Id;
            wizardNotebook.CurrentPage = 1;

            StringBuilder sb = new StringBuilder();

            sb.Append("<b>").Append(Catalog.GetString("The following packages will be uninstalled:")).Append("</b>\n\n");
            sb.Append(info.Name + "\n\n");

            Addin[] sinfos = service.GetDependentAddins(info.Id, true);
            if (sinfos.Length > 0)
            {
                sb.Append("<b>").Append(Catalog.GetString("There are other extensions that depend on the previous ones which will also be uninstalled:")).Append("</b>\n\n");
                foreach (Addin si in sinfos)
                {
                    sb.Append(si.Description.Name + "\n");
                }
            }

            labelSummary.Markup = sb.ToString();
        }
示例#5
0
        protected virtual void UpdateRow(TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon)
        {
            bool sel = selected.Contains(info);

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

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

            treeStore.SetValue(iter, ColImage, icon);
            treeStore.SetValue(iter, ColShowImage, true);

            treeStore.SetValue(iter, ColSelected, sel);
        }
示例#6
0
        internal bool Introspect(IMessageDialog dialog)
        {
            var result = true;

            if (AddinHeader == null)
            {
                dialog.AddError("");
                result = false;
            }
            else
            {
                result &= AddinHeader.Introspect(dialog);
            }

            if (ExtensionDeclaration == null && ExtensionImplementation == null)
            {
                dialog.AddError("");
                result = false;
            }

            if (ExtensionDeclaration != null)
            {
                result &= ExtensionDeclaration.Introspect(dialog);
            }

            if (ExtensionImplementation != null)
            {
                result &= ExtensionImplementation.Introspect(dialog);
            }

            return(result);
        }
示例#7
0
        public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled, bool userDir)
        {
            Gdk.Pixbuf icon;
            if (userDir)
            {
                icon = userPackage;
            }
            else
            {
                icon = package;
            }

            addinData [info] = dataItem;
            TreeIter piter = TreeIter.Zero;

            if (info.Category == "")
            {
                string otherCat = Catalog.GetString("Other");
                piter = FindCategory(otherCat);
            }
            else
            {
                piter = FindCategory(info.Category);
            }

            TreeIter iter = treeStore.AppendNode(piter);

            UpdateRow(iter, info, dataItem, enabled, icon);
            return(iter);
        }
		public AddinInfoDialog (AddinHeader info)
		{
			Build ();
			this.info = info;
			packageImage.Stock = "md-package";
			packageImage.IconSize = (int)IconSize.Dialog;
			Fill ();
		}
示例#9
0
 public AddinInfoDialog(AddinHeader info)
 {
     Build();
     this.info             = info;
     packageImage.Stock    = "md-package";
     packageImage.IconSize = (int)IconSize.Dialog;
     Fill();
 }
示例#10
0
        public AddinDetailsDialog(Addin addin, Window parent) : base(String.Empty, parent)
        {
            SetDefaultSize(400, -1);

            AddinHeader info = SetupService.GetAddinHeader(addin);

            HBox box = new HBox();

            box.BorderWidth = 10;
            box.Spacing     = 10;
            VBox.PackStart(box, false, false, 0);

            Image image = new Image();

            image.IconName = "package-x-generic";
            image.IconSize = (int)IconSize.Dialog;
            image.Yalign   = 0.0f;

            box.PackStart(image, false, false, 0);

            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("<b><big>{0}</big></b>\n\n", GLib.Markup.EscapeText(addin.Name));
            builder.AppendFormat(GLib.Markup.EscapeText(addin.Description.Description)).Append("\n\n");

            builder.Append("<small>");

            builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Version:"),
                                 GLib.Markup.EscapeText(addin.Description.Version));

            builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Authors:"),
                                 GLib.Markup.EscapeText(addin.Description.Author));

            builder.AppendFormat("<b>{0}</b> {1}\n\n", Catalog.GetString("Copyright/License:"),
                                 GLib.Markup.EscapeText(addin.Description.Copyright));

            if (info.Dependencies.Count > 0)
            {
                builder.AppendFormat("<b>{0}</b>\n", Catalog.GetString("Extension Dependencies:"));
                foreach (AddinDependency dep in info.Dependencies)
                {
                    builder.Append(GLib.Markup.EscapeText(dep.Name)).Append('\n');
                }
            }

            builder.Append("</small>");

            WrapLabel label = new WrapLabel();

            label.Markup = builder.ToString();
            box.PackStart(label, true, true, 0);

            VBox.ShowAll();

            AddDefaultCloseButton();
        }
示例#11
0
 string GetId(AddinHeader ainfo)
 {
     if (service.ApplicationNamespace != null && (ainfo.Namespace + ".").StartsWith(service.ApplicationNamespace + "."))
     {
         return(ainfo.Id.Substring(service.ApplicationNamespace.Length + 1));
     }
     else
     {
         return(ainfo.Id);
     }
 }
示例#12
0
        protected void OnGotoWeb(object sender, EventArgs e)
        {
            AddinHeader info = tree.ActiveAddin;

            if (info == null)
            {
                return;
            }

            if (info.Url != "")
            {
                Process.Start(info.Url);
            }
        }
        protected void OnGotoWeb(object sender, EventArgs e)
        {
            AddinHeader info = tree.ActiveAddin;

            if (info == null)
            {
                return;
            }

            if (info.Url != "")
            {
                Gnome.Url.Show(info.Url);
            }
        }
示例#14
0
        internal bool TryParse(IMessageDialog dialog, out AddinResolution result)
        {
            result = new NewAddinResolution();
            AddinHeaderResolution addinHeader;

            if (!AddinHeader.TryParse(dialog, result, out addinHeader))
            {
                return(false);
            }
            List <ExtensionPointResolution>        extensionPoints        = null;
            List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null;

            if (ExtensionDeclaration != null && !ExtensionDeclaration.TryParse(dialog, result, out extensionPoints, out extensionBuilderGroups))
            {
                return(false);
            }
            List <ExtensionResolutionGroup> extensionGroups = null;

            if (ExtensionImplementation != null && !ExtensionImplementation.TryParse(dialog, result, out extensionGroups))
            {
                return(false);
            }

            result.AddinHeader            = addinHeader;
            result.ManifestFile           = ManifestFile;
            result.ExtensionBuilderGroups = extensionBuilderGroups;
            result.ExtensionPoints        = extensionPoints;
            result.ExtensionGroups        = extensionGroups;
            result.RunningStatus          = addinHeader.Enabled ? AddinRunningStatus.Enabled : AddinRunningStatus.Disabled;

            if (AssemblyFiles != null)
            {
                result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count);
                foreach (var assemblyFile in AssemblyFiles)
                {
                    result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile));
                }
            }
            if (DataFiles != null)
            {
                result.DataFiles = new List <DataFileResolution>(DataFiles.Count);
                foreach (var dataFile in DataFiles)
                {
                    result.DataFiles.Add(dataFile);
                }
            }
            return(true);
        }
示例#15
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);
        }
示例#16
0
        protected void OnShowInfo(object sender, EventArgs e)
        {
            AddinHeader info = tree.ActiveAddin;

            if (info == null)
            {
                return;
            }

            AddinInfoDialog dlg = new AddinInfoDialog(info);

            try {
                dlg.Run();
            } finally {
                dlg.Destroy();
            }
        }
        internal override bool Introspect(INameConvention nameConvention, ResolutionResult resolutionResult)
        {
            var result = true;

            if (AddinHeader == null)
            {
                resolutionResult.AddError(
                    string.Format("The addin located at [{0}] does not define any addin properties (name, guid, etc) in the Addin node of manifest file, which is required!", ManifestFile.Directory));
                result = false;
            }
            else
            {
                result &= AddinHeader.Introspect(ManifestFile.Directory, resolutionResult);
            }
            if (!result)
            {
                return(false);
            }

            if (AddinActivator != null)
            {
                result &= AddinActivator.Introspect(resolutionResult);
            }

            if (ExtensionSchema == null && Extensions == null)
            {
                resolutionResult.AddError(string.Format(
                                              "A valid addin manifest file must contain either an extension schema node, or an extension node, or both, while the addin [{0}] located at [{1}] does not provide any of them!", AddinHeader.Name, ManifestFile.Directory));
                result = false;
            }

            if (ExtensionSchema != null)
            {
                result &= ExtensionSchema.Introspect(nameConvention, resolutionResult);
            }

            if (Extensions != null)
            {
                result &= Extensions.Introspect(resolutionResult);
            }

            return(result);
        }
示例#18
0
        void UnselectAll(TreeIter iter)
        {
            AddinHeader info = (AddinHeader)treeStore.GetValue(iter, ColAddin);

            if (info != null)
            {
                treeStore.SetValue(iter, ColSelected, false);
                selected.Remove(info);
            }
            else
            {
                if (treeStore.IterChildren(out iter, iter))
                {
                    do
                    {
                        UnselectAll(iter);
                    } while (treeStore.IterNext(ref iter));
                }
            }
        }
示例#19
0
        void OnAddinToggled(object o, ToggledArgs args)
        {
            TreeIter it;

            if (treeStore.GetIter(out it, new TreePath(args.Path)))
            {
                bool sel = !(bool)treeStore.GetValue(it, 5);
                treeStore.SetValue(it, 5, sel);
                AddinHeader info = (AddinHeader)treeStore.GetValue(it, 0);
                if (sel)
                {
                    selected.Add(info);
                }
                else
                {
                    selected.Remove(info);
                }

                OnSelectionChanged(EventArgs.Empty);
            }
        }
示例#20
0
        void FillAddinInfo()
        {
            AddinHeader info = tree.ActiveAddin;

            btnInfo.Sensitive = info != null;

/*			if (info == null) {
 *                              infoLabel.Markup = "";
 *                              linkLabel.Visible = false;
 *                              return;
 *                      }
 *
 *                      StringBuilder sb = new StringBuilder ();
 *                      sb.Append ("<b><big>" + info.Name + "</big></b>\n\n");
 *
 *                      if (info.Description != "")
 *                              sb.Append (info.Description + "\n\n");
 *
 *                      sb.Append ("<small>");
 *
 *                      sb.Append ("<b>").Append (Catalog.GetString ("Version:")).Append ("</b>\n").Append (info.Version).Append ("\n\n");
 *
 *                      if (info.Author != "")
 *                              sb.Append ("<b>").Append (Catalog.GetString ("Author:")).Append ("</b>\n").Append (info.Author).Append ("\n\n");
 *
 *                      if (info.Copyright != "")
 *                              sb.Append ("<b>").Append (Catalog.GetString ("Copyright:")).Append ("</b>\n").Append (info.Copyright).Append ("\n\n");
 *
 *                      if (info.Dependencies.Count > 0) {
 *                              sb.Append ("<b>").Append (Catalog.GetString ("Extension Dependencies:")).Append ("</b>\n");
 *                              foreach (PackageDependency dep in info.Dependencies)
 *                                      sb.Append (dep.Name + "\n");
 *                      }
 *
 *                      sb.Append ("</small>");
 *
 *                      linkLabel.Visible = info.Url != "";
 *
 *                      infoLabel.Markup = sb.ToString ();*/
        }
示例#21
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);
        }
示例#22
0
        void SelectAll(TreeIter iter)
        {
            AddinHeader info = (AddinHeader)treeStore.GetValue(iter, ColAddin);

            if (info != null)
            {
                treeStore.SetValue(iter, ColSelected, true);
                if (!selected.Contains(info))
                {
                    selected.Add(info);
                }
                treeView.ExpandToPath(treeStore.GetPath(iter));
            }
            else
            {
                if (treeStore.IterChildren(out iter, iter))
                {
                    do
                    {
                        SelectAll(iter);
                    } while (treeStore.IterNext(ref iter));
                }
            }
        }
示例#23
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);
        }
示例#24
0
 public object GetAddinData(AddinHeader info)
 {
     return addinData [info];
 }
示例#25
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;
 }
示例#26
0
 public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled, bool userDir)
 {
     return AddAddin (info, dataItem, enabled ? AddinStatus.Installed : AddinStatus.Disabled | AddinStatus.Installed);
 }
示例#27
0
 public TreeIter AddAddin(AddinHeader info, object dataItem, bool enabled)
 {
     return AddAddin (info, dataItem, enabled, true);
 }
		public void SetUninstallMode (AddinHeader info)
		{
			btnPrev.Hide ();
			btnNext.Sensitive = true;
			
			uninstallId = info.Id;
			wizardNotebook.CurrentPage = 1;
			
			StringBuilder sb = new StringBuilder ();
			sb.Append (Catalog.GetString ("<b>The following packages will be uninstalled:</b>\n\n"));
			sb.Append (info.Name + "\n\n");
			
			Addin[] sinfos = service.GetDependentAddins (info.Id, true);
			if (sinfos.Length > 0) {
				sb.Append (Catalog.GetString ("<b>There are other add-ins that depend on the previous ones which will also be uninstalled:</b>\n\n"));
				foreach (Addin si in sinfos)
					sb.Append (si.Description.Name + "\n");
			}
			
			labelSummary.Markup = sb.ToString ();
		}
示例#29
0
 string GetId(AddinHeader ainfo)
 {
     if (service.ApplicationNamespace != null && (ainfo.Namespace + ".").StartsWith (service.ApplicationNamespace + "."))
         return ainfo.Id.Substring (service.ApplicationNamespace.Length + 1);
     else
         return ainfo.Id;
 }
示例#30
0
 bool IsFiltered(AddinHeader ah)
 {
     if (filterEntry.Text.Length == 0)
         return false;
     if (ah.Name.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1)
         return false;
     if (ah.Description.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1)
         return false;
     if (ah.Id.IndexOf (filterEntry.Text, StringComparison.CurrentCultureIgnoreCase) != -1)
         return false;
     return true;
 }
		public TreeIter AddAddin (AddinHeader info, object dataItem, bool enabled, bool userDir)
		{
			Gdk.Pixbuf icon;
			if (userDir)
				icon = userPackage;
			else
				icon = package;

			addinData [info] = dataItem;
			TreeIter piter = TreeIter.Zero;
			if (info.Category == "") {
				string otherCat = Catalog.GetString ("Other");
				piter = FindCategory (otherCat);
			} else {
				piter = FindCategory (info.Category);
			}
			
			TreeIter iter = treeStore.AppendNode (piter);
			UpdateRow (iter, info, dataItem, enabled, icon);
			return iter;
		}
		protected virtual void UpdateRow (TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon)
		{
			bool sel = selected.Contains (info);
			
			treeStore.SetValue (iter, ColAddin, info);
			treeStore.SetValue (iter, ColData, dataItem);
			
			if (enabled) {
				treeStore.SetValue (iter, ColName, info.Name);
				treeStore.SetValue (iter, ColVersion, info.Version);
				treeStore.SetValue (iter, ColAllowSelection, allowSelection);
			}
			else {
				treeStore.SetValue (iter, ColName, "<span foreground=\"grey\">" + info.Name + "</span>");
				treeStore.SetValue (iter, ColVersion, "<span foreground=\"grey\">" + info.Version + "</span>");
				treeStore.SetValue (iter, ColAllowSelection, false);
			}
			
			treeStore.SetValue (iter, ColImage, icon);
			treeStore.SetValue (iter, ColShowImage, true);
			
			treeStore.SetValue (iter, ColSelected, sel);
		}
示例#33
0
 internal static string GetUninstallErrorNoRoot(AddinHeader ainfo)
 {
     return string.Format ("The add-in '{0} v{1}' can't be uninstalled with the current user permissions.", ainfo.Name, ainfo.Version);
 }
示例#34
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);
     }
 }
示例#35
0
 bool IsHidden(AddinHeader ainfo)
 {
     return service.ApplicationNamespace != null && !(ainfo.Namespace + ".").StartsWith (service.ApplicationNamespace + ".");
 }
示例#36
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);
        }
 bool IsHidden(AddinHeader ainfo)
 {
     return(service.ApplicationNamespace != null && !(ainfo.Namespace + ".").StartsWith(service.ApplicationNamespace + "."));
 }
示例#38
0
 public int CompareVersionTo(AddinHeader other)
 {
     return Addin.CompareVersions (this.version, other.Version);
 }
		protected override void UpdateRow (TreeIter iter, AddinHeader info, object dataItem, bool enabled, Gdk.Pixbuf icon)
		{
			base.UpdateRow (iter, info, dataItem, enabled, icon);
			AddinRepositoryEntry arep = (AddinRepositoryEntry) dataItem;
			treeStore.SetValue (iter, ncol, arep.RepositoryName);
		}