From 97bfd3dfdbcfe278859ff426672da355b72f8485 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 31 Aug 2015 20:58:10 +0200 Subject: [PATCH] Display new version in plugin details if one is available --- picard/plugin.py | 1 + picard/ui/options/plugins.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/picard/plugin.py b/picard/plugin.py index c1d80c7f6..a7e24811c 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -94,6 +94,7 @@ class PluginShared(object): def __init__(self): super(PluginShared, self).__init__() + self.new_version = False self.flags = PluginFlags.NONE diff --git a/picard/ui/options/plugins.py b/picard/ui/options/plugins.py index 24e9894d1..75958dd9a 100644 --- a/picard/ui/options/plugins.py +++ b/picard/ui/options/plugins.py @@ -65,10 +65,16 @@ class PluginsOptionsPage(OptionsPage): def load(self): plugins = sorted(self.tagger.pluginmanager.plugins, cmp=cmp_plugins) enabled_plugins = config.setting["enabled_plugins"] + available_plugins = dict([(p.module_name, p.version) for p in + self.tagger.pluginmanager.available_plugins]) for plugin in plugins: plugin.flags = PluginFlags.NONE if plugin.module_name in enabled_plugins: plugin.flags |= PluginFlags.ENABLED + if plugin.module_name in available_plugins.keys(): + latest = available_plugins[plugin.module_name] + if latest.split('.') > plugin.version.split('.'): + plugin.new_version = latest item = self.add_plugin_item(plugin) self.ui.plugins.setCurrentItem(self.ui.plugins.topLevelItem(0)) @@ -80,6 +86,7 @@ class PluginsOptionsPage(OptionsPage): msgbox.setDefaultButton(QtGui.QMessageBox.Ok) msgbox.exec_() return + plugin.new_version = False plugin.flags = PluginFlags.NONE for i, p in self.items.items(): if plugin.module_name == p.module_name: @@ -114,6 +121,8 @@ class PluginsOptionsPage(OptionsPage): def change_details(self): plugin = self.items[self.ui.plugins.selectedItems()[0]] text = [] + if plugin.new_version: + text.append("" + _("New version available") + ": " + plugin.new_version + "") if plugin.description: text.append(plugin.description + "
") if plugin.name: