summaryrefslogtreecommitdiff
path: root/backend/browser.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/browser.py')
-rw-r--r--backend/browser.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/backend/browser.py b/backend/browser.py
index 388a01e3..ab71a89d 100644
--- a/backend/browser.py
+++ b/backend/browser.py
@@ -122,10 +122,7 @@ class PluginBrowser:
logger.debug("Plugin %s was stopped", name)
del self.plugins[name]
logger.debug("Plugin %s was removed from the dictionary", name)
- current_plugin_order = self.settings.getSetting("pluginOrder")
- current_plugin_order.remove(name)
- self.settings.setSetting("pluginOrder", current_plugin_order)
- logger.debug("Plugin %s was removed from the pluginOrder setting", name)
+ self.cleanup_plugin_settings(name)
logger.debug("removing files %s" % str(name))
rmtree(plugin_dir)
except FileNotFoundError:
@@ -234,3 +231,18 @@ class PluginBrowser:
def cancel_plugin_install(self, request_id):
self.install_requests.pop(request_id)
+
+ def cleanup_plugin_settings(self, name):
+ """Removes any settings related to a plugin. Propably called when a plugin is uninstalled.
+
+ Args:
+ name (string): The name of the plugin
+ """
+ hidden_plugins = self.settings.getSetting("hiddenPlugins", [])
+ hidden_plugins.remove(name)
+ self.settings.setSetting("hiddenPlugins", hidden_plugins)
+
+ plugin_order = self.settings.getSetting("pluginOrder")
+ plugin_order.remove(name)
+ self.settings.setSetting("pluginOrder", plugin_order)
+ logger.debug("Removed any settings for plugin %s", name)