summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjurassicplayer <jurassicplayer75@gmail.com>2023-08-28 07:00:37 -0700
committerGitHub <noreply@github.com>2023-08-28 07:00:37 -0700
commit22d579512d9bd0b60657a0df5c9aef9e9f83dad3 (patch)
treec0ac4dee6b8c68430691724835cc5754db5188b8
parentcaf4d75a06289cdfee6fed34d6db03ac1ad0126d (diff)
downloaddecky-loader-22d579512d9bd0b60657a0df5c9aef9e9f83dad3.tar.gz
decky-loader-22d579512d9bd0b60657a0df5c9aef9e9f83dad3.zip
Preserve plugin order when reinstalling/updating (#530)v2.10.5-pre2v2.10.5
-rw-r--r--backend/browser.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/backend/browser.py b/backend/browser.py
index 0b0c5b98..ce9b3dd7 100644
--- a/backend/browser.py
+++ b/backend/browser.py
@@ -139,6 +139,8 @@ class PluginBrowser:
# Check if plugin is installed
isInstalled = False
+ # Preserve plugin order before removing plugin (uninstall alters the order and removes the plugin from the list)
+ current_plugin_order = self.settings.getSetting("pluginOrder")[:]
if self.loader.watcher:
self.loader.watcher.disabled = True
try:
@@ -191,9 +193,9 @@ class PluginBrowser:
self.loader.plugins[name].stop()
self.loader.plugins.pop(name, None)
await sleep(1)
-
- current_plugin_order = self.settings.getSetting("pluginOrder")
- current_plugin_order.append(name)
+ if not isInstalled:
+ current_plugin_order = self.settings.getSetting("pluginOrder")
+ current_plugin_order.append(name)
self.settings.setSetting("pluginOrder", current_plugin_order)
logger.debug("Plugin %s was added to the pluginOrder setting", name)
self.loader.import_plugin(path.join(plugin_dir, "main.py"), plugin_folder)