@@ -15,6 +15,14 @@ class DependencyInstallationOperator(bpy.types.Operator):
1515 def execute (self , context : Context ):
1616 dependencies .install ()
1717 return {"FINISHED" }
18+
19+ class DependencyUninstallationOperator (bpy .types .Operator ):
20+ bl_idname = "threegen.uninstalldeps"
21+ bl_label = "Uninstall Dependencies"
22+
23+ def execute (self , context : Context ):
24+ dependencies .uninstall ()
25+ return {"FINISHED" }
1826
1927
2028class ConsentOperator (bpy .types .Operator ):
@@ -40,6 +48,13 @@ class ThreegenPreferences(AddonPreferences):
4048 data_collection : BoolProperty (default = True )
4149 data_collection_notice : BoolProperty (default = False )
4250
51+ @classmethod
52+ def poll (cls , context ):
53+ prefs = context .preferences .addons .get (__package__ )
54+ if not prefs :
55+ return False
56+ return prefs .preferences .data_collection_notice
57+
4358 def draw (self , context : Context ):
4459 layout : UILayout = self .layout
4560 col = layout .column ()
@@ -54,23 +69,18 @@ def draw(self, context: Context):
5469 col .prop (self , "url" , text = "URL" )
5570 col .prop (self , "token" , text = "API Key" )
5671 col .prop (self , "data_collection" , text = "Allow collection of anonymous usage data" )
72+ col .operator (DependencyUninstallationOperator .bl_idname )
5773
5874 else :
5975 col .operator (DependencyInstallationOperator .bl_idname )
6076
6177
6278classes = (
6379 DependencyInstallationOperator ,
80+ DependencyUninstallationOperator ,
6481 ConsentOperator ,
6582 ThreegenPreferences ,
6683)
6784
85+ register , unregister = bpy .utils .register_classes_factory (classes )
6886
69- def register ():
70- for cls in classes :
71- bpy .utils .register_class (cls )
72-
73-
74- def unregister ():
75- for cls in reversed (classes ):
76- bpy .utils .unregister_class (cls )
0 commit comments