private void setPluginInfoItem(PluginInfoItem pluginInfoItem, PluginPackageInfoCR plugin) { pluginInfoItem.PluginUUID = plugin.PluginUUID; pluginInfoItem.Description = plugin.PluginDescription; pluginInfoItem.PluginName = plugin.PluginName; pluginInfoItem.PluginVersion = Tr("Version: {0}", $"{plugin.PluginVersion.Major}.{plugin.PluginVersion.Minor}"); pluginInfoItem.PluginAuthor = Tr("Author: {0}", plugin.PluginAuthor); //pluginInfoItem.OnPluginInfoItemMouseClick = OnPluginInfoItemMouseClick; pluginInfoItem.OnDetailsClick = (s, e) => { if (!_pluginInfoDetails.ContainsKey(plugin.PluginUUID)) { return; } var detailsPanel = _pluginInfoDetails[plugin.PluginUUID].Details; if (detailsPanel == null) { return; } detailsPanel.BringToFront(); detailsPanel.Visible = true; }; pluginInfoItem.ButtonInstallRemoveText = PluginInstallRemoveText(plugin); pluginInfoItem.ButtonInstallRemoveEnabled = PluginInstallRemoveEnabled(plugin); pluginInfoItem.ButtonUpdateVisible = plugin.HasNewerVersion; pluginInfoItem.OnButtonInstallRemoveClick = OnButtonInstallRemoveClick; pluginInfoItem.OnButtonUpdateClick = OnButtonUpdateClick; // TODO maybe we would want a visible status pluginInfoItem.StatusVisible = false; FormHelpers.TranslateFormControls(pluginInfoItem); }
private void LoadAvailablePlugins(XmlDocument doc) { foreach (XmlNode node in doc.DocumentElement.SelectNodes("Plugin")) { var item = new PluginInfoItem { Name = node.SelectSingleNode("Name").InnerText.Trim('.'), Description = node.SelectSingleNode("Description").InnerText.Trim('.'), Version = node.SelectSingleNode("Version").InnerText, Date = node.SelectSingleNode("Date").InnerText, Url = node.SelectSingleNode("Url").InnerText, }; _downloadList.Add(item); foreach (ListViewItem installed in listViewInstalledPlugins.Items) { var installedVer = Convert.ToDouble(installed.SubItems[2].Text.Replace(',', '.').Replace(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, "."), CultureInfo.InvariantCulture); var currentVer = Convert.ToDouble(node.SelectSingleNode("Version").InnerText.Replace(',', '.').Replace(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, "."), CultureInfo.InvariantCulture); if (string.Compare(installed.Text, node.SelectSingleNode("Name").InnerText.Trim('.'), StringComparison.OrdinalIgnoreCase) == 0 && installedVer < currentVer) { installed.BackColor = Color.LightPink; installed.SubItems[1].Text = _language.UpdateAvailable + " " + installed.SubItems[1].Text; buttonUpdateAll.Visible = true; _updateAllListUrls.Add(item.Url); } } } }
private void LoadAvailablePlugins(XmlDocument doc) { foreach (XmlNode node in doc.DocumentElement.SelectNodes("Plugin")) { var item = new PluginInfoItem { Name = node.SelectSingleNode("Name").InnerText.Trim('.'), Description = node.SelectSingleNode("Description").InnerText.Trim('.'), Version = node.SelectSingleNode("Version").InnerText, Date = node.SelectSingleNode("Date").InnerText, Url = node.SelectSingleNode("Url").InnerText, }; _downloadList.Add(item); foreach (ListViewItem installed in listViewInstalledPlugins.Items) { if (string.Compare(installed.Text, node.SelectSingleNode("Name").InnerText.Trim('.'), StringComparison.OrdinalIgnoreCase) == 0) { var installedVer = MakeComparableVersionNumber(installed.SubItems[2].Text); var currentVer = MakeComparableVersionNumber(node.SelectSingleNode("Version").InnerText); if (installedVer < currentVer) { installed.BackColor = Configuration.Settings.General.UseDarkTheme ? Color.IndianRed : Color.LightPink; installed.SubItems[1].Text = $"{_language.UpdateAvailable} {installed.SubItems[1].Text}"; buttonUpdateAll.Visible = true; _updateAllListUrls.Add(item.Url); } } } } }