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);
                    }
                }
            }
        }
Beispiel #3
0
        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);
                        }
                    }
                }
            }
        }