Display new version in plugin details if one is available

This commit is contained in:
Laurent Monin
2015-08-31 20:58:10 +02:00
parent 35f3f5ca66
commit 97bfd3dfdb
2 changed files with 10 additions and 0 deletions

View File

@@ -94,6 +94,7 @@ class PluginShared(object):
def __init__(self):
super(PluginShared, self).__init__()
self.new_version = False
self.flags = PluginFlags.NONE

View File

@@ -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("<b>" + _("New version available") + ": " + plugin.new_version + "</b>")
if plugin.description:
text.append(plugin.description + "<hr width='90%'/>")
if plugin.name: