From 6a49e2d869d4e04b7fac56465182fac65b38dfb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <forenjunkie@chello.at> Date: Sun, 25 Jun 2017 20:42:15 +0200 Subject: [PATCH] Fix plugin installation from zip --- src/plugins/gui.py | 4 ++-- src/plugins/pluginmanager.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/plugins/gui.py b/src/plugins/gui.py index b318707811..15aee42955 100644 --- a/src/plugins/gui.py +++ b/src/plugins/gui.py @@ -281,7 +281,7 @@ class PluginsWindow(object): for i, row in enumerate(model): if plugin == row[Column.PLUGIN]: - model.remove(model.get_iter((i, Column.PLUGIN))) + model.remove(row.iter) break iter_ = model.append([plugin, plugin.name, False, @@ -308,7 +308,7 @@ class PluginsWindow(object): return model = self.installed_plugins_model iter_ = model.append([plugin, plugin.name, False, - plugin.activatable], self.get_plugin_icon(plugin)) + plugin.activatable, self.get_plugin_icon(plugin)]) sel = self.installed_plugins_treeview.get_selection() sel.select_iter(iter_) diff --git a/src/plugins/pluginmanager.py b/src/plugins/pluginmanager.py index dc7e867eb6..13c64b4992 100644 --- a/src/plugins/pluginmanager.py +++ b/src/plugins/pluginmanager.py @@ -573,7 +573,7 @@ class PluginManager(metaclass=Singleton): def install_from_zip(self, zip_filename, owerwrite=None): ''' - Install plagin from zip and return plugin + Install plugin from zip and return plugin ''' try: zip_file = zipfile.ZipFile(zip_filename) @@ -595,7 +595,7 @@ class PluginManager(metaclass=Singleton): # members not safe raise PluginsystemError(_('Archive is malformed')) if filename.endswith('/') and filename.find('/', 0, -1) < 0: - dirs.append(filename) + dirs.append(filename.strip('/')) if 'manifest.ini' in filename.split('/')[1]: manifest = True if not manifest: @@ -614,8 +614,8 @@ class PluginManager(metaclass=Singleton): zip_file.extractall(user_dir) zip_file.close() - path = os.path.join(user_dir, dirs[0]) - plugins = self.scan_dir_for_plugins(plugin_dir, False) + + plugins = self.scan_dir_for_plugins(plugin_dir, package=True) if not plugins: return self.add_plugin(plugins[0]) -- GitLab