[Bf-blender-cvs] [0415d046172] soc-2017-package_manager: Move enable/disable into Package class
gandalf3
noreply at git.blender.org
Tue Aug 29 11:45:49 CEST 2017
Commit: 0415d04617249feb21c2d310811e9c9c6d881709
Author: gandalf3
Date: Mon Aug 28 22:16:39 2017 -0700
Branches: soc-2017-package_manager
https://developer.blender.org/rB0415d04617249feb21c2d310811e9c9c6d881709
Move enable/disable into Package class
===================================================================
M release/scripts/modules/bpkg/types.py
M release/scripts/startup/bl_operators/package.py
===================================================================
diff --git a/release/scripts/modules/bpkg/types.py b/release/scripts/modules/bpkg/types.py
index 276df38290c..c5eacc7f02e 100644
--- a/release/scripts/modules/bpkg/types.py
+++ b/release/scripts/modules/bpkg/types.py
@@ -258,6 +258,24 @@ class Package:
return (self.module_name in bpy.context.user_preferences.addons)
else:
return False
+
+ def enable(self):
+ """Enable package"""
+ # TODO: just use addon_utils for now
+ if not self.module_name:
+ raise PackageException("Cannot enable package with unset module_name")
+ import addon_utils
+ addon_utils.enable(self.module_name, default_set=True)
+ self.enabled = True
+
+ def disable(self):
+ """Disable package"""
+ if not self.module_name:
+ raise PackageException("Cannot disable package with unset module_name")
+ import addon_utils
+ addon_utils.enable(self.module_name, default_set=True)
+ self.enabled = False
+
def test_installed(self) -> bool:
"""Return true if package is installed"""
diff --git a/release/scripts/startup/bl_operators/package.py b/release/scripts/startup/bl_operators/package.py
index 80182de3558..9045ba05fed 100644
--- a/release/scripts/startup/bl_operators/package.py
+++ b/release/scripts/startup/bl_operators/package.py
@@ -525,20 +525,11 @@ else:
self.report({'ERROR'}, "Can't enable package which isn't installed")
return {'CANCELLED'}
- # enable/disable all installed versions, just in case there are more than one
- for pkg in metapkg.versions:
- if not pkg.installed:
- continue
- if not pkg.module_name:
- self.log.warning("Can't enable package `%s` without a module name", pkg.name)
- continue
-
- if pkg.enabled:
- addon_utils.disable(pkg.module_name, default_set=True)
- pkg.enabled = False
- else:
- addon_utils.enable(pkg.module_name, default_set=True)
- pkg.enabled = True
+ pkg = metapkg.get_latest_installed_version()
+ if pkg.enabled:
+ pkg.disable()
+ else:
+ pkg.enable()
return {'FINISHED'}
More information about the Bf-blender-cvs
mailing list