Fix installed status for plugins that have a different name in the MR index than the name defined in the plugin index

This commit is contained in:
Kovid Goyal 2017-01-19 10:42:07 +05:30
parent 26dfba5134
commit d85f985e9c

View File

@ -90,7 +90,7 @@ def get_installed_plugin_status(display_plugin):
display_plugin.installed_version = None display_plugin.installed_version = None
display_plugin.plugin = None display_plugin.plugin = None
for plugin in initialized_plugins(): for plugin in initialized_plugins():
if plugin.name == display_plugin.name and plugin.plugin_path is not None: if plugin.name == display_plugin.qname and plugin.plugin_path is not None:
display_plugin.plugin = plugin display_plugin.plugin = plugin
display_plugin.installed_version = plugin.version display_plugin.installed_version = plugin.version
break break
@ -196,6 +196,7 @@ class DisplayPlugin(object):
def __init__(self, plugin): def __init__(self, plugin):
self.name = plugin['index_name'] self.name = plugin['index_name']
self.qname = plugin.get('name', self.name)
self.forum_link = plugin['thread_url'] self.forum_link = plugin['thread_url']
self.zip_url = SERVER + plugin['file'] self.zip_url = SERVER + plugin['file']
self.installed_version = None self.installed_version = None
@ -664,7 +665,7 @@ class PluginUpdaterDialog(SizePersistedDialog):
if DEBUG: if DEBUG:
prints('Removing uninstall dependency for: ', display_plugin.name) prints('Removing uninstall dependency for: ', display_plugin.name)
display_plugin.uninstall_plugins.remove(name_to_remove) display_plugin.uninstall_plugins.remove(name_to_remove)
if display_plugin.name == name_to_remove: if display_plugin.qname == name_to_remove:
if DEBUG: if DEBUG:
prints('Resetting plugin to uninstalled status: ', display_plugin.name) prints('Resetting plugin to uninstalled status: ', display_plugin.name)
display_plugin.installed_version = None display_plugin.installed_version = None
@ -679,7 +680,7 @@ class PluginUpdaterDialog(SizePersistedDialog):
_('Are you sure you want to uninstall the <b>%s</b> plugin?')%display_plugin.name, _('Are you sure you want to uninstall the <b>%s</b> plugin?')%display_plugin.name,
show_copy_button=False): show_copy_button=False):
return return
self._uninstall_plugin(display_plugin.name) self._uninstall_plugin(display_plugin.qname)
if self.proxy_model.filter_criteria in [FILTER_INSTALLED, FILTER_UPDATE_AVAILABLE]: if self.proxy_model.filter_criteria in [FILTER_INSTALLED, FILTER_UPDATE_AVAILABLE]:
self.model.beginResetModel(), self.model.endResetModel() self.model.beginResetModel(), self.model.endResetModel()
self._select_and_focus_view() self._select_and_focus_view()