PyAPI: remove bpy.utils.register_module()
authorCampbell Barton <ideasman42@gmail.com>
Sat, 18 Mar 2017 09:03:24 +0000 (20:03 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 18 Mar 2017 09:03:24 +0000 (20:03 +1100)
In preparation for it being removed, see: T47811

79 files changed:
release/scripts/startup/bl_operators/__init__.py
release/scripts/startup/bl_operators/add_mesh_torus.py
release/scripts/startup/bl_operators/anim.py
release/scripts/startup/bl_operators/clip.py
release/scripts/startup/bl_operators/console.py
release/scripts/startup/bl_operators/file.py
release/scripts/startup/bl_operators/image.py
release/scripts/startup/bl_operators/mask.py
release/scripts/startup/bl_operators/mesh.py
release/scripts/startup/bl_operators/node.py
release/scripts/startup/bl_operators/object.py
release/scripts/startup/bl_operators/object_align.py
release/scripts/startup/bl_operators/object_quick_effects.py
release/scripts/startup/bl_operators/object_randomize_transform.py
release/scripts/startup/bl_operators/presets.py
release/scripts/startup/bl_operators/rigidbody.py
release/scripts/startup/bl_operators/screen_play_rendered_anim.py
release/scripts/startup/bl_operators/sequencer.py
release/scripts/startup/bl_operators/uvcalc_follow_active.py
release/scripts/startup/bl_operators/uvcalc_lightmap.py
release/scripts/startup/bl_operators/uvcalc_smart_project.py
release/scripts/startup/bl_operators/vertexpaint_dirt.py
release/scripts/startup/bl_operators/view3d.py
release/scripts/startup/bl_operators/wm.py
release/scripts/startup/bl_ui/__init__.py
release/scripts/startup/bl_ui/properties_animviz.py
release/scripts/startup/bl_ui/properties_constraint.py
release/scripts/startup/bl_ui/properties_data_armature.py
release/scripts/startup/bl_ui/properties_data_bone.py
release/scripts/startup/bl_ui/properties_data_camera.py
release/scripts/startup/bl_ui/properties_data_curve.py
release/scripts/startup/bl_ui/properties_data_empty.py
release/scripts/startup/bl_ui/properties_data_lamp.py
release/scripts/startup/bl_ui/properties_data_lattice.py
release/scripts/startup/bl_ui/properties_data_mesh.py
release/scripts/startup/bl_ui/properties_data_metaball.py
release/scripts/startup/bl_ui/properties_data_modifier.py
release/scripts/startup/bl_ui/properties_data_speaker.py
release/scripts/startup/bl_ui/properties_freestyle.py
release/scripts/startup/bl_ui/properties_game.py
release/scripts/startup/bl_ui/properties_grease_pencil_common.py
release/scripts/startup/bl_ui/properties_mask_common.py
release/scripts/startup/bl_ui/properties_material.py
release/scripts/startup/bl_ui/properties_object.py
release/scripts/startup/bl_ui/properties_paint_common.py
release/scripts/startup/bl_ui/properties_particle.py
release/scripts/startup/bl_ui/properties_physics_cloth.py
release/scripts/startup/bl_ui/properties_physics_common.py
release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
release/scripts/startup/bl_ui/properties_physics_field.py
release/scripts/startup/bl_ui/properties_physics_fluid.py
release/scripts/startup/bl_ui/properties_physics_rigidbody.py
release/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py
release/scripts/startup/bl_ui/properties_physics_smoke.py
release/scripts/startup/bl_ui/properties_physics_softbody.py
release/scripts/startup/bl_ui/properties_render.py
release/scripts/startup/bl_ui/properties_render_layer.py
release/scripts/startup/bl_ui/properties_scene.py
release/scripts/startup/bl_ui/properties_texture.py
release/scripts/startup/bl_ui/properties_world.py
release/scripts/startup/bl_ui/space_clip.py
release/scripts/startup/bl_ui/space_console.py
release/scripts/startup/bl_ui/space_dopesheet.py
release/scripts/startup/bl_ui/space_filebrowser.py
release/scripts/startup/bl_ui/space_graph.py
release/scripts/startup/bl_ui/space_image.py
release/scripts/startup/bl_ui/space_info.py
release/scripts/startup/bl_ui/space_logic.py
release/scripts/startup/bl_ui/space_nla.py
release/scripts/startup/bl_ui/space_node.py
release/scripts/startup/bl_ui/space_outliner.py
release/scripts/startup/bl_ui/space_properties.py
release/scripts/startup/bl_ui/space_sequencer.py
release/scripts/startup/bl_ui/space_text.py
release/scripts/startup/bl_ui/space_time.py
release/scripts/startup/bl_ui/space_userpref.py
release/scripts/startup/bl_ui/space_view3d.py
release/scripts/startup/bl_ui/space_view3d_toolbar.py
release/scripts/startup/keyingsets_builtins.py

index a696410ca1c029b8ad83ddedcee9bb5270e8a12e..c28c14610039bdc7666c402a9aea83774e6ccbf3 100644 (file)
@@ -63,8 +63,14 @@ del _namespace
 
 
 def register():
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for mod in _modules_loaded:
+        for cls in mod.classes:
+            register_class(cls)
 
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
+    from bpy.utils import unregister_class
+    for mod in reversed(_modules_loaded):
+        for cls in reversed(mod.classes):
+            unregister_class(cls)
index 247b91e147fe649a093446a616fe5cf263e67187..0e5acea94f9441893e919debd3fe0633c32e0598 100644 (file)
@@ -282,3 +282,8 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
         object_utils.object_data_add(context, mesh, operator=self)
 
         return {'FINISHED'}
+
+
+classes = (
+    AddTorus,
+)
\ No newline at end of file
index c20d591241c4e8e680774f519d4e9fc28d16be82..e1a0b3c990862f37b7f8bf3784f9a19292735e02 100644 (file)
@@ -412,3 +412,11 @@ class UpdateAnimatedTransformConstraint(Operator):
             text.from_string(log)
             self.report({'INFO'}, "Complete report available on '%s' text datablock" % text.name)
         return {'FINISHED'}
+
+
+classes = (
+    ANIM_OT_keying_set_export,
+    BakeAction,
+    ClearUselessActions,
+    UpdateAnimatedTransformConstraint,
+)
\ No newline at end of file
index 0c77ea2ab7e3d41dcede76a5389f1bbb62402e99..e82bc0bf2defb92e291eb3d8178f16b9b32098c6 100644 (file)
@@ -1071,3 +1071,17 @@ class CLIP_OT_track_settings_to_track(bpy.types.Operator):
                     setattr(marker_selected, attr, getattr(marker, attr))
 
         return {'FINISHED'}
+
+
+classes = (
+    CLIP_OT_bundles_to_mesh,
+    CLIP_OT_constraint_to_fcurve,
+    CLIP_OT_delete_proxy,
+    CLIP_OT_filter_tracks,
+    CLIP_OT_set_active_clip,
+    CLIP_OT_set_viewport_background,
+    CLIP_OT_setup_tracking_scene,
+    CLIP_OT_track_settings_as_default,
+    CLIP_OT_track_settings_to_track,
+    CLIP_OT_track_to_empty,
+)
\ No newline at end of file
index 8cfc977294a6bf65302b7f02a0a5ea157927700e..fb36f80239e29c466012b9096cdf40dfea282c87 100644 (file)
@@ -159,3 +159,12 @@ class ConsoleLanguage(Operator):
                                        remove_duplicates=True)
 
         return {'FINISHED'}
+
+
+classes = (
+    ConsoleAutocomplete,
+    ConsoleBanner,
+    ConsoleCopyAsScript,
+    ConsoleExec,
+    ConsoleLanguage,
+)
\ No newline at end of file
index 51e079164b6f9788bcdaebddee8b42a8f0176811..d710b9af7152e9312dae5de3fe5c2a7b2da8ff1c 100644 (file)
@@ -248,3 +248,8 @@ class WM_OT_previews_batch_clear(Operator):
 
         return {'FINISHED'}
 
+
+classes = (
+    WM_OT_previews_batch_clear,
+    WM_OT_previews_batch_generate,
+)
\ No newline at end of file
index d3460383fe7ede3e187b8ef7bf6dec02b70e43cc..6a538f0ae33ac5becf50b51c1d06586a90b0ddf2 100644 (file)
@@ -242,3 +242,11 @@ class ProjectApply(Operator):
         bpy.ops.paint.project_image(image=image_name)
 
         return {'FINISHED'}
+
+
+classes = (
+    EditExternally,
+    ProjectApply,
+    ProjectEdit,
+    SaveDirty,
+)
\ No newline at end of file
index aa984659430ed12191d7c4995c0d633c04d33024..78a4bd9af2758e5c12c002744ff6a70afec70548 100644 (file)
@@ -31,3 +31,8 @@ class MASK_MT_add(Menu):
         layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("mask.primitive_circle_add", text="Circle", icon='MESH_CIRCLE')
         layout.operator("mask.primitive_square_add", text="Square", icon='MESH_PLANE')
+
+
+classes = (
+    MASK_MT_add,
+)
\ No newline at end of file
index 58eab5436e66163cc3dd87c7b37ed5b8dbf03e28..bce38a6bf3a5d1bd9994151813010e3d3a8aa3fa 100644 (file)
@@ -248,3 +248,10 @@ class MehsSetNormalsFromFaces(Operator):
 
         return {'FINISHED'}
 
+
+classes = (
+    MehsSetNormalsFromFaces,
+    MeshMirrorUV,
+    MeshSelectNext,
+    MeshSelectPrev,
+)
\ No newline at end of file
index acff259e50354f1afbcaf890639da5ee13521e2a..7b280507bbb0fcc324d8b4a1e88726c7b1cd908d 100644 (file)
@@ -295,3 +295,14 @@ class NODE_OT_tree_path_parent(Operator):
         space.path.pop()
 
         return {'FINISHED'}
+
+
+classes = (
+    NodeSetting,
+
+    NODE_OT_add_and_link_node,
+    NODE_OT_add_node,
+    NODE_OT_add_search,
+    NODE_OT_collapse_hide_unused_toggle,
+    NODE_OT_tree_path_parent,
+)
index 6356da216b1cc8d7f0f88c08c7caa4bed47559ab..7e9be607281b3cf79cf8a41037412b35505327bb 100644 (file)
@@ -1034,3 +1034,22 @@ class LodGenerate(Operator):
         scene.objects.active = ob
 
         return {'FINISHED'}
+
+
+classes = (
+    ClearAllRestrictRender,
+    DupliOffsetFromCursor,
+    IsolateTypeRender,
+    JoinUVs,
+    LodByName,
+    LodClearAll,
+    LodGenerate,
+    MakeDupliFace,
+    SelectCamera,
+    SelectHierarchy,
+    SelectPattern,
+    ShapeTransfer,
+    SubdivisionSet,
+    TransformsToDeltas,
+    TransformsToDeltasAnim,
+)
\ No newline at end of file
index a6ee16e6b71388f48779ab63aa77cfc3b32d7abb..a088898b14dee94274151cb5897c7967ce1cb1b2 100644 (file)
@@ -411,3 +411,8 @@ class AlignObjects(Operator):
             return {'CANCELLED'}
         else:
             return {'FINISHED'}
+
+
+classes = (
+    AlignObjects,
+)
\ No newline at end of file
index 0b9e7fd730585dae575619c3212b0324b780408e..57d7f03fcd4cf0869fc9e2bc116a67c833e29705 100644 (file)
@@ -645,3 +645,11 @@ class QuickFluid(Operator):
             bpy.ops.fluid.bake('INVOKE_DEFAULT')
 
         return {'FINISHED'}
+
+
+classes = (
+    QuickExplode,
+    QuickFluid,
+    QuickFur,
+    QuickSmoke,
+)
\ No newline at end of file
index 3811032860358e22cd3f6b4835123fd6f85a46ca..f856b85844e970cf0538a5227342a71025e9714e 100644 (file)
@@ -185,3 +185,8 @@ class RandomizeLocRotSize(Operator):
                            loc, rot, scale, scale_even, scale_min)
 
         return {'FINISHED'}
+
+
+classes = (
+    RandomizeLocRotSize,
+)
\ No newline at end of file
index cb332c181274de4670895a2231263b3794581f64..fdacf24f6e082bb53bbc2b76d0b8a0055697f270 100644 (file)
@@ -680,3 +680,26 @@ class AddPresetUnitsLength(AddPresetBase, Operator):
     ]
 
     preset_subdir = "units_length"
+
+
+classes = (
+    AddPresetCamera,
+    AddPresetCloth,
+    AddPresetFluid,
+    AddPresetHairDynamics,
+    AddPresetInteraction,
+    AddPresetInterfaceTheme,
+    AddPresetKeyconfig,
+    AddPresetNodeColor,
+    AddPresetOperator,
+    AddPresetRender,
+    AddPresetSSS,
+    AddPresetSafeAreas,
+    AddPresetSunSky,
+    AddPresetTrackingCamera,
+    AddPresetTrackingSettings,
+    AddPresetTrackingTrackColor,
+    AddPresetUnitsLength,
+    ExecutePreset,
+    WM_MT_operator_presets,
+)
\ No newline at end of file
index 750a5b0bf0f8cbbbd5d390ca2f6ea9e10246be2a..639a558fbab7f0fe7437ac14a6916314bf7dc613 100644 (file)
@@ -309,3 +309,10 @@ class ConnectRigidBodies(Operator):
         else:
             self.report({'WARNING'}, "No other objects selected")
             return {'CANCELLED'}
+
+
+classes = (
+    BakeToKeyframes,
+    ConnectRigidBodies,
+    CopyRigidbodySettings,
+)
\ No newline at end of file
index a55656993647a1d3416197c274ed65b995a41415..f4d6c7065a93cdbad6327cca1d8b2772060b18f7 100644 (file)
@@ -180,3 +180,8 @@ class PlayRenderedAnim(Operator):
             return {'CANCELLED'}
 
         return {'FINISHED'}
+
+
+classes = (
+    PlayRenderedAnim,
+)
\ No newline at end of file
index 31ca4249a9d0c72e171d17f7fadf7289397081ab..7209b6b478f116eeaca6f22cd8851792f63ea42b 100644 (file)
@@ -134,3 +134,10 @@ class SequencerDeinterlaceSelectedMovies(Operator):
                 s.use_deinterlace = True
 
         return {'FINISHED'}
+
+
+classes = (
+    SequencerCrossfadeSounds,
+    SequencerCutMulticam,
+    SequencerDeinterlaceSelectedMovies,
+)
\ No newline at end of file
index d1ac9e0b586b7b1e55cec8dddd2533008400d5be..25ee5cafe818d5a4c18f99ad7502f1504a67fa03 100644 (file)
@@ -248,3 +248,8 @@ class FollowActiveQuads(Operator):
     def invoke(self, context, event):
         wm = context.window_manager
         return wm.invoke_props_dialog(self)
+
+
+classes = (
+    FollowActiveQuads,
+)
\ No newline at end of file
index 3b095c883a3fc6cb8ef47b970e396dcc727d9791..8ee29d15d1b25ea3983b939c5e072bfc3fdcc2fc 100644 (file)
@@ -668,3 +668,8 @@ class LightMapPack(Operator):
     def invoke(self, context, event):
         wm = context.window_manager
         return wm.invoke_props_dialog(self)
+
+
+classes = (
+    LightMapPack,
+)
\ No newline at end of file
index 52e7b0e0ae45c13a68f127e0fe8e90eba0affbdc..1dd5b78d5999f32fad4c4d9767613612a00acb6c 100644 (file)
@@ -1100,3 +1100,8 @@ class SmartProject(Operator):
     def invoke(self, context, event):
         wm = context.window_manager
         return wm.invoke_props_dialog(self)
+
+
+classes = (
+    SmartProject,
+)
\ No newline at end of file
index 892e1822d68fa58f2a96a561e9d35476f6a540e2..c006e8e6e92fc10b508f16873dbc65c579b43f07 100644 (file)
@@ -182,3 +182,8 @@ class VertexPaintDirt(Operator):
         ret = applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, self.dirt_angle, self.clean_angle, self.dirt_only)
 
         return ret
+
+
+classes = (
+    VertexPaintDirt,
+)
\ No newline at end of file
index df4a93bb87faefe88e8589bc34f3d5415e8f87a2..acec2d8fe91d0fa0fd5c676816b9be0273e7b11b 100644 (file)
@@ -213,3 +213,11 @@ class VIEW3D_OT_select_or_deselect_all(Operator):
                                      enumerate=self.enumerate,
                                      object=self.object,
                                      location=(x, y))
+
+
+classes = (
+    VIEW3D_OT_edit_mesh_extrude_individual_move,
+    VIEW3D_OT_edit_mesh_extrude_move,
+    VIEW3D_OT_edit_mesh_extrude_shrink_fatten,
+    VIEW3D_OT_select_or_deselect_all,
+)
\ No newline at end of file
index 869070ed778b895a85355bd1f6e68747338232e2..42f1e723d1aef13f1028ddd2b716343a8fbccd90 100644 (file)
@@ -2192,3 +2192,58 @@ class WM_OT_addon_userpref_show(Operator):
             bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
 
         return {'FINISHED'}
+
+
+classes = (
+    BRUSH_OT_active_index_set,
+    WM_OT_addon_disable,
+    WM_OT_addon_enable,
+    WM_OT_addon_expand,
+    WM_OT_addon_install,
+    WM_OT_addon_refresh,
+    WM_OT_addon_remove,
+    WM_OT_addon_userpref_show,
+    WM_OT_appconfig_activate,
+    WM_OT_appconfig_default,
+    WM_OT_blenderplayer_start,
+    WM_OT_context_collection_boolean_set,
+    WM_OT_context_cycle_array,
+    WM_OT_context_cycle_enum,
+    WM_OT_context_cycle_int,
+    WM_OT_context_menu_enum,
+    WM_OT_context_modal_mouse,
+    WM_OT_context_pie_enum,
+    WM_OT_context_scale_float,
+    WM_OT_context_scale_int,
+    WM_OT_context_set_boolean,
+    WM_OT_context_set_enum,
+    WM_OT_context_set_float,
+    WM_OT_context_set_id,
+    WM_OT_context_set_int,
+    WM_OT_context_set_string,
+    WM_OT_context_set_value,
+    WM_OT_context_toggle,
+    WM_OT_context_toggle_enum,
+    WM_OT_copy_prev_settings,
+    WM_OT_doc_view,
+    WM_OT_doc_view_manual,
+    WM_OT_keyconfig_activate,
+    WM_OT_keyconfig_export,
+    WM_OT_keyconfig_import,
+    WM_OT_keyconfig_remove,
+    WM_OT_keyconfig_test,
+    WM_OT_keyitem_add,
+    WM_OT_keyitem_remove,
+    WM_OT_keyitem_restore,
+    WM_OT_keymap_restore,
+    WM_OT_operator_cheat_sheet,
+    WM_OT_operator_pie_enum,
+    WM_OT_path_open,
+    WM_OT_properties_add,
+    WM_OT_properties_context_change,
+    WM_OT_properties_edit,
+    WM_OT_properties_remove,
+    WM_OT_sysinfo,
+    WM_OT_theme_install,
+    WM_OT_url_open,
+)
\ No newline at end of file
index 2389be6787d2dfc5cd7f213918e357b754a147f5..3e81724c1f922d59468f0b138b75608e22da2027 100644 (file)
@@ -94,7 +94,10 @@ del _namespace
 
 
 def register():
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for mod in _modules_loaded:
+        for cls in mod.classes:
+            register_class(cls)
 
     # space_userprefs.py
     from bpy.props import StringProperty, EnumProperty
@@ -143,8 +146,10 @@ def register():
 
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
-
+    from bpy.utils import unregister_class
+    for mod in reversed(_modules_loaded):
+        for cls in reversed(mod.classes):
+            unregister_class(cls)
 
 # Define a default UIList, when a list does not need any custom drawing...
 # Keep in sync with its #defined name in UI_interface.h
index 046b5eb2aa55c2774884c728abff5d88bd371e7b..84bae18dd6fa320ebc21a9b2482da3e24e9f1469 100644 (file)
@@ -139,6 +139,11 @@ class OnionSkinButtonsPanel:
         col.label(text="Display:")
         col.prop(arm, "show_only_ghost_selected", text="Selected Only")
 
+
+classes = (
+)
+
 if __name__ == "__main__":  # only for live edit.
-    import bpy
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index cb5f1595ff333ef31db04d3ee24510e01c71aa8d..8a080d855ba68b37904c433af6ce0666a0ec2375 100644 (file)
@@ -941,5 +941,12 @@ class BONE_PT_constraints(ConstraintButtonsPanel, Panel):
         for con in context.pose_bone.constraints:
             self.draw_constraint(context, con)
 
+classes = (
+    BONE_PT_constraints,
+    OBJECT_PT_constraints,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 8261f0c777049402d25e7fb41da671eaf6e2cec4..48ec160c232b5b498910b96bff99f7f36c13c1ec 100644 (file)
@@ -328,5 +328,21 @@ class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.Armature
 
+
+classes = (
+    DATA_PT_bone_group_specials,
+    DATA_PT_bone_groups,
+    DATA_PT_context_arm,
+    DATA_PT_custom_props_arm,
+    DATA_PT_display,
+    DATA_PT_ghost,
+    DATA_PT_iksolver_itasc,
+    DATA_PT_motion_paths,
+    DATA_PT_pose_library,
+    DATA_PT_skeleton,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 3a5475514c9243d098224fd34c270ed4a1083885..75e828e5a0201ae5b7d7db4a163d498a10b85cbf 100644 (file)
@@ -449,5 +449,20 @@ class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, Panel):
         else:
             return "active_bone"
 
+
+classes = (
+    BONE_PT_context_bone,
+    BONE_PT_curved,
+    BONE_PT_custom_props,
+    BONE_PT_deform,
+    BONE_PT_display,
+    BONE_PT_inverse_kinematics,
+    BONE_PT_relations,
+    BONE_PT_transform,
+    BONE_PT_transform_locks,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index c6fa77aec001bb61d51a0f361cc2df0061d9d24f..177012dec3209b4fe709180eab40dff132668878 100644 (file)
@@ -325,5 +325,20 @@ def draw_display_safe_settings(layout, safe_data, settings):
     col.prop(safe_data, "action_center", slider=True)
 
 
+classes = (
+    CAMERA_MT_presets,
+    DATA_PT_camera,
+    DATA_PT_camera_display,
+    DATA_PT_camera_dof,
+    DATA_PT_camera_safe_areas,
+    DATA_PT_camera_stereoscopy,
+    DATA_PT_context_camera,
+    DATA_PT_custom_props_camera,
+    DATA_PT_lens,
+    SAFE_AREAS_MT_presets,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 33af812b6c43aa2ca43d91dcbca72f27ce486d4e..9c8a4a90f3349f422b34fef9ddb3e559bfbee5e9 100644 (file)
@@ -431,5 +431,21 @@ class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.Curve
 
+
+classes = (
+    DATA_PT_active_spline,
+    DATA_PT_context_curve,
+    DATA_PT_curve_texture_space,
+    DATA_PT_custom_props_curve,
+    DATA_PT_font,
+    DATA_PT_geometry_curve,
+    DATA_PT_paragraph,
+    DATA_PT_pathanim,
+    DATA_PT_shape_curve,
+    DATA_PT_text_boxes,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index a752d3517de69b767ddaec0721dec0ff43b0b2f9..c66ff87ecbdfc8b2f38b62f949314f0af36699b6 100644 (file)
@@ -55,5 +55,12 @@ class DATA_PT_empty(DataButtonsPanel, Panel):
 
         layout.prop(ob, "empty_draw_size", text="Size")
 
+
+classes = (
+    DATA_PT_empty,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 30cd39d2e2f8e597c02b5bceaed9ab2c75de01a0..2213781c7d995071800e0276763aba8d92d89773 100644 (file)
@@ -394,5 +394,21 @@ class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.Lamp
 
+
+classes = (
+    DATA_PT_area,
+    DATA_PT_context_lamp,
+    DATA_PT_custom_props_lamp,
+    DATA_PT_falloff_curve,
+    DATA_PT_lamp,
+    DATA_PT_preview,
+    DATA_PT_shadow,
+    DATA_PT_spot,
+    DATA_PT_sunsky,
+    LAMP_MT_sunsky_presets,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index cbfa6961e8c1028b262f70ef0855c35b1518100d..7f0294cdd20040df0e8242370e923e1940181b97 100644 (file)
@@ -82,5 +82,14 @@ class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.Lattice
 
+
+classes = (
+    DATA_PT_context_lattice,
+    DATA_PT_custom_props_lattice,
+    DATA_PT_lattice,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 59907692fe0a5b17a785b13c6ea63888eea42654..8647d5d6644a52a3043298300a34ca377f3ab8c3 100644 (file)
@@ -392,5 +392,24 @@ class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, Panel):
     _property_type = bpy.types.Mesh
 
 
+classes = (
+    DATA_PT_context_mesh,
+    DATA_PT_custom_props_mesh,
+    DATA_PT_customdata,
+    DATA_PT_normals,
+    DATA_PT_shape_keys,
+    DATA_PT_texture_space,
+    DATA_PT_uv_texture,
+    DATA_PT_vertex_colors,
+    DATA_PT_vertex_groups,
+    MESH_MT_shape_key_specials,
+    MESH_MT_vertex_group_specials,
+    MESH_UL_shape_keys,
+    MESH_UL_uvmaps_vcols,
+    MESH_UL_vgroups,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index b42258c386abd2cfcc29cdc2a8cf3f76d55c3e72..239d16ed77cf513ea2287dfc5d1373ca64f33e2d 100644 (file)
@@ -135,5 +135,16 @@ class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.MetaBall
 
+
+classes = (
+    DATA_PT_context_metaball,
+    DATA_PT_custom_props_metaball,
+    DATA_PT_mball_texture_space,
+    DATA_PT_metaball,
+    DATA_PT_metaball_element,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 68b6265ab153f0cd31e40e1978237294e3b34496..a098953699e023ac23f67bde628630fe97c46e20 100644 (file)
@@ -1522,5 +1522,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
             layout.operator("object.correctivesmooth_bind", text="Unbind" if is_bind else "Bind")
 
 
+classes = (
+    DATA_PT_modifiers,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 5ed0f8c326543b9f5317facd3ce144737a6f2771..3f30e214f24f417107d04fe3b4ea64f2ad42d62f 100644 (file)
@@ -121,5 +121,16 @@ class DATA_PT_custom_props_speaker(DataButtonsPanel, PropertyPanel, Panel):
     _context_path = "object.data"
     _property_type = bpy.types.Speaker
 
+
+classes = (
+    DATA_PT_cone,
+    DATA_PT_context_speaker,
+    DATA_PT_custom_props_speaker,
+    DATA_PT_distance,
+    DATA_PT_speaker,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index e0620447185961eb90a7757498a33ec5860f5569..aee35c70ec8a7ce8080f4ac95a7b5f237d051cea 100644 (file)
@@ -829,4 +829,6 @@ class MATERIAL_PT_freestyle_line(MaterialFreestyleButtonsPanel, Panel):
 
 
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index ec061370fe51ba2ad0c1939300cdc8dcad42f224..2e309a10940e0ce889f1bdfef8d2d7070ba20d59 100644 (file)
@@ -852,5 +852,30 @@ class OBJECT_PT_levels_of_detail(ObjectButtonsPanel, Panel):
         row.menu("OBJECT_MT_lod_tools", text="", icon='TRIA_DOWN')
 
 
+classes = (
+    DATA_PT_shadow_game,
+    OBJECT_MT_lod_tools,
+    OBJECT_PT_levels_of_detail,
+    PHYSICS_PT_game_collision_bounds,
+    PHYSICS_PT_game_obstacles,
+    PHYSICS_PT_game_physics,
+    RENDER_PT_embedded,
+    RENDER_PT_game_display,
+    RENDER_PT_game_player,
+    RENDER_PT_game_shading,
+    RENDER_PT_game_stereo,
+    RENDER_PT_game_system,
+    SCENE_PT_game_hysteresis,
+    SCENE_PT_game_navmesh,
+    SCENE_PT_game_physics,
+    SCENE_PT_game_physics_obstacles,
+    WORLD_PT_game_context_world,
+    WORLD_PT_game_environment_lighting,
+    WORLD_PT_game_mist,
+    WORLD_PT_game_world,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 4529c1278390c44d1603f191accb11c3fde8dfd7..83c27c1ccfc3eee7ffa08d1ccac7b7c54e33a82c 100644 (file)
@@ -1155,3 +1155,24 @@ class GreasePencilToolsPanel:
         layout.separator()
 
         gpencil_stroke_placement_settings(context, layout)
+
+
+classes = (
+    GPENCIL_MT_brush_specials,
+    GPENCIL_MT_gpencil_edit_specials,
+    GPENCIL_MT_layer_specials,
+    GPENCIL_MT_palettecolor_specials,
+    GPENCIL_MT_snap,
+    GPENCIL_PIE_sculpt,
+    GPENCIL_PIE_settings_palette,
+    GPENCIL_PIE_tool_palette,
+    GPENCIL_PIE_tools_more,
+    GPENCIL_UL_brush,
+    GPENCIL_UL_layer,
+    GPENCIL_UL_palettecolor,
+)
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index f4836da50bc5d9c53f1185cca8d075f580d05242..78fb7843f1454f33b0ea0f00fcdf2cebc81a847d 100644 (file)
@@ -392,5 +392,17 @@ class MASK_MT_select(Menu):
         layout.operator("mask.select_all", text="Inverse").action = 'INVERT'
         layout.operator("mask.select_linked", text="Select Linked")
 
+
+classes = (
+    MASK_MT_animation,
+    MASK_MT_mask,
+    MASK_MT_select,
+    MASK_MT_transform,
+    MASK_MT_visibility,
+    MASK_UL_layers,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index d916007ea41bd810f7bf3c75c86d537e50a57182..def272d504501b424b3df377fecac98cf04ea2fd 100644 (file)
@@ -1052,5 +1052,38 @@ class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel):
     _context_path = "material"
     _property_type = bpy.types.Material
 
+
+classes = (
+    MATERIAL_MT_specials,
+    MATERIAL_MT_sss_presets,
+    MATERIAL_PT_context_material,
+    MATERIAL_PT_custom_props,
+    MATERIAL_PT_diffuse,
+    MATERIAL_PT_flare,
+    MATERIAL_PT_game_settings,
+    MATERIAL_PT_halo,
+    MATERIAL_PT_mirror,
+    MATERIAL_PT_options,
+    MATERIAL_PT_physics,
+    MATERIAL_PT_pipeline,
+    MATERIAL_PT_preview,
+    MATERIAL_PT_shading,
+    MATERIAL_PT_shadow,
+    MATERIAL_PT_specular,
+    MATERIAL_PT_sss,
+    MATERIAL_PT_strand,
+    MATERIAL_PT_transp,
+    MATERIAL_PT_transp_game,
+    MATERIAL_PT_volume_density,
+    MATERIAL_PT_volume_integration,
+    MATERIAL_PT_volume_lighting,
+    MATERIAL_PT_volume_options,
+    MATERIAL_PT_volume_shading,
+    MATERIAL_PT_volume_transp,
+    MATERIAL_UL_matslots,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 4a596981983bb393214aff116b6a0335980752da..099b82e000e000d2139eac939166830c377aeb75 100644 (file)
@@ -366,5 +366,23 @@ class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, Panel):
     _context_path = "object"
     _property_type = bpy.types.Object
 
+
+classes = (
+    GROUP_MT_specials,
+    OBJECT_PT_context_object,
+    OBJECT_PT_custom_props,
+    OBJECT_PT_delta_transform,
+    OBJECT_PT_display,
+    OBJECT_PT_duplication,
+    OBJECT_PT_groups,
+    OBJECT_PT_motion_paths,
+    OBJECT_PT_relations,
+    OBJECT_PT_relations_extras,
+    OBJECT_PT_transform,
+    OBJECT_PT_transform_locks,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 09a3a19cbcee0ed011542817932684ff0d7fffe9..dfd20d90ec4a4538fab96d3fe1b871fa1e9511fd 100644 (file)
@@ -309,3 +309,13 @@ def brush_mask_texture_settings(layout, brush):
     split = layout.split()
     split.prop(mask_tex_slot, "offset")
     split.prop(mask_tex_slot, "scale")
+
+
+classes = (
+    VIEW3D_MT_tools_projectpaint_clone,
+)
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 29fc56c3faddd171eabdc0d4765eab0d675a47ba..deaf6cd4f37ffa33335e613e5e0b6f65102123ad 100644 (file)
@@ -1404,5 +1404,29 @@ class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, Panel):
     _context_path = "particle_system.settings"
     _property_type = bpy.types.ParticleSettings
 
+
+classes = (
+    PARTICLE_MT_hair_dynamics_presets,
+    PARTICLE_MT_specials,
+    PARTICLE_PT_boidbrain,
+    PARTICLE_PT_cache,
+    PARTICLE_PT_children,
+    PARTICLE_PT_context_particles,
+    PARTICLE_PT_custom_props,
+    PARTICLE_PT_draw,
+    PARTICLE_PT_emission,
+    PARTICLE_PT_field_weights,
+    PARTICLE_PT_force_fields,
+    PARTICLE_PT_hair_dynamics,
+    PARTICLE_PT_physics,
+    PARTICLE_PT_render,
+    PARTICLE_PT_rotation,
+    PARTICLE_PT_velocity,
+    PARTICLE_PT_vertexgroups,
+    PARTICLE_UL_particle_systems,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 3ebf2691b4c6c41935b37363d64ec8b8d795d185..0a7890670b23556e99d0e7fcf70e6c5070bff588 100644 (file)
@@ -256,5 +256,17 @@ class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, Panel):
         cloth = context.cloth.settings
         effector_weights_ui(self, context, cloth.effector_weights, 'CLOTH')
 
+classes = (
+    CLOTH_MT_presets,
+    PHYSICS_PT_cloth,
+    PHYSICS_PT_cloth_cache,
+    PHYSICS_PT_cloth_collision,
+    PHYSICS_PT_cloth_stiffness,
+    PHYSICS_PT_cloth_sewing,
+    PHYSICS_PT_cloth_field_weights,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 4478c6a43792dd0f71b10e819dca47339b32a4cd..0b98d8738dcda170c4b8701ffb20bb19ff8b238f 100644 (file)
@@ -318,5 +318,12 @@ def basic_force_field_falloff_ui(self, context, field):
     sub.active = field.use_max_distance
     sub.prop(field, "distance_max", text="Maximum")
 
+
+classes = (
+    PHYSICS_PT_add,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 6c3a3246cf6988216df9800e3fab03ffc47deca8..4758f72edb5d16d4e9bb6dd1d9acb45015875ce8 100644 (file)
@@ -529,12 +529,20 @@ class PHYSICS_PT_dp_brush_wave(PhysicButtonsPanel, Panel):
             row.prop(brush, "wave_clamp")
 
 
-def register():
-    bpy.utils.register_module(__name__)
-
-
-def unregister():
-    bpy.utils.register_module(__name__)
-
-if __name__ == "__main__":
-    register()
+classes = (
+    PHYSICS_PT_dp_advanced_canvas,
+    PHYSICS_PT_dp_brush_source,
+    PHYSICS_PT_dp_brush_velocity,
+    PHYSICS_PT_dp_brush_wave,
+    PHYSICS_PT_dp_cache,
+    PHYSICS_PT_dp_canvas_initial_color,
+    PHYSICS_PT_dp_canvas_output,
+    PHYSICS_PT_dp_effects,
+    PHYSICS_PT_dynamic_paint,
+    PHYSICS_UL_dynapaint_surfaces,
+)
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 1cebc0496b05c18346cd973b404b3a0694540f92..a1c160d4a7e90b87b6b5bcd802d97e378a61ae02 100644 (file)
@@ -228,5 +228,13 @@ class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
             col.label(text="Force Fields:")
             col.prop(settings, "absorption", text="Absorption")
 
+
+classes = (
+    PHYSICS_PT_collision,
+    PHYSICS_PT_field,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 5d7034c2e685f30d433b849071f139f7cb339bd8..6c7fba449886a3707463797e87b1805e7871b699 100644 (file)
@@ -308,5 +308,16 @@ class PHYSICS_PT_domain_particles(PhysicButtonsPanel, Panel):
         row.prop(fluid, "tracer_particles", text="Tracer")
         row.prop(fluid, "generate_particles", text="Generate")
 
+
+classes = (
+    FLUID_MT_presets,
+    PHYSICS_PT_domain_boundary,
+    PHYSICS_PT_domain_gravity,
+    PHYSICS_PT_domain_particles,
+    PHYSICS_PT_fluid,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index eeb21c046bfcdc1ee346d22319cb4a0aa14bd4bc..6afdd800b880e51dbb7a503ab01076a688451b01 100644 (file)
@@ -137,5 +137,14 @@ class PHYSICS_PT_rigid_body_dynamics(PHYSICS_PT_rigidbody_panel, Panel):
         col.prop(rbo, "linear_damping", text="Translation")
         col.prop(rbo, "angular_damping", text="Rotation")
 
+
+classes = (
+    PHYSICS_PT_rigid_body,
+    PHYSICS_PT_rigid_body_collisions,
+    PHYSICS_PT_rigid_body_dynamics,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 9d4f51b256bf75a0b73867612b92359feed60bf8..84a4cbb4b68b455a1fc19a4b17902c344508e46c 100644 (file)
@@ -260,5 +260,11 @@ class PHYSICS_PT_rigid_body_constraint(PHYSICS_PT_rigidbody_constraint_panel, Pa
                 sub.prop(rbc, "spring_damping_ang_z", text="Damping")
 
 
+classes = (
+    PHYSICS_PT_rigid_body_constraint,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index ee9135b9dbff92211b67fe8e874f05cf6bc9725a..028333a8e3b17f92da21cd33fbdb509c57946a86 100644 (file)
@@ -410,5 +410,19 @@ class PHYSICS_PT_smoke_display_settings(PhysicButtonsPanel, Panel):
         col.template_color_ramp(domain, "color_ramp", expand=True)
 
 
+classes = (
+    PHYSICS_PT_smoke,
+    PHYSICS_PT_smoke_adaptive_domain,
+    PHYSICS_PT_smoke_cache,
+    PHYSICS_PT_smoke_display_settings,
+    PHYSICS_PT_smoke_field_weights,
+    PHYSICS_PT_smoke_fire,
+    PHYSICS_PT_smoke_flow_advanced,
+    PHYSICS_PT_smoke_groups,
+    PHYSICS_PT_smoke_highres,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index a458af739f2abe2c84eb35dc84dc1bdcbf81ed43..f463f56bac0ebddcbf4d022d4b561b1cea9e680d 100644 (file)
@@ -244,5 +244,18 @@ class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel):
 
         effector_weights_ui(self, context, softbody.effector_weights, 'SOFTBODY')
 
+
+classes = (
+    PHYSICS_PT_softbody,
+    PHYSICS_PT_softbody_cache,
+    PHYSICS_PT_softbody_collision,
+    PHYSICS_PT_softbody_edge,
+    PHYSICS_PT_softbody_field_weights,
+    PHYSICS_PT_softbody_goal,
+    PHYSICS_PT_softbody_solver,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 6d23c07152e3a39963279f590a8d55d9f2eda847..da33b3c560d0d5188a2a8e836f5fd78c703c47ae 100644 (file)
@@ -584,5 +584,24 @@ class RENDER_PT_bake(RenderButtonsPanel, Panel):
             sub.prop(rd, "bake_user_scale", text="User Scale")
 
 
+classes = (
+    RENDER_MT_ffmpeg_presets,
+    RENDER_MT_framerate_presets,
+    RENDER_MT_presets,
+    RENDER_PT_antialiasing,
+    RENDER_PT_bake,
+    RENDER_PT_dimensions,
+    RENDER_PT_encoding,
+    RENDER_PT_motion_blur,
+    RENDER_PT_output,
+    RENDER_PT_performance,
+    RENDER_PT_post_processing,
+    RENDER_PT_render,
+    RENDER_PT_shading,
+    RENDER_PT_stamp,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 9b8bc237db96dfdc65434bb46db96fcc78c43ced..42c1638900c4159596f95fe262cf6c8a2c8e5c50 100644 (file)
@@ -227,5 +227,16 @@ class RENDERLAYER_PT_views(RenderLayerButtonsPanel, Panel):
             row.prop(rv, "camera_suffix", text="")
 
 
+classes = (
+    RENDERLAYER_PT_layer_options,
+    RENDERLAYER_PT_layer_passes,
+    RENDERLAYER_PT_layers,
+    RENDERLAYER_PT_views,
+    RENDERLAYER_UL_renderlayers,
+    RENDERLAYER_UL_renderviews,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index d6253ec7fbc743bc8af7699aee5f3c52b10e74d0..7268a68a7247cc11eb0ebcb303bb36b2645bf0b7 100644 (file)
@@ -443,5 +443,25 @@ class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
     _context_path = "scene"
     _property_type = bpy.types.Scene
 
+
+classes = (
+    SCENE_MT_units_length_presets,
+    SCENE_PT_audio,
+    SCENE_PT_color_management,
+    SCENE_PT_custom_props,
+    SCENE_PT_keying_set_paths,
+    SCENE_PT_keying_sets,
+    SCENE_PT_physics,
+    SCENE_PT_rigid_body_cache,
+    SCENE_PT_rigid_body_field_weights,
+    SCENE_PT_rigid_body_world,
+    SCENE_PT_scene,
+    SCENE_PT_simplify,
+    SCENE_PT_unit,
+    SCENE_UL_keying_set_paths,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index caf19a9e46909c912993fddb05a8f531f4de7287..c3f160e03d7656df0bc1fb34be182c5f035d0f08 100644 (file)
@@ -1224,5 +1224,38 @@ class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, Panel):
     _context_path = "texture"
     _property_type = Texture
 
+
+classes = (
+    TEXTURE_MT_envmap_specials,
+    TEXTURE_MT_specials,
+    TEXTURE_PT_blend,
+    TEXTURE_PT_clouds,
+    TEXTURE_PT_colors,
+    TEXTURE_PT_context_texture,
+    TEXTURE_PT_custom_props,
+    TEXTURE_PT_distortednoise,
+    TEXTURE_PT_envmap,
+    TEXTURE_PT_envmap_sampling,
+    TEXTURE_PT_image,
+    TEXTURE_PT_image_mapping,
+    TEXTURE_PT_image_sampling,
+    TEXTURE_PT_influence,
+    TEXTURE_PT_magic,
+    TEXTURE_PT_mapping,
+    TEXTURE_PT_marble,
+    TEXTURE_PT_musgrave,
+    TEXTURE_PT_ocean,
+    TEXTURE_PT_pointdensity,
+    TEXTURE_PT_pointdensity_turbulence,
+    TEXTURE_PT_preview,
+    TEXTURE_PT_stucci,
+    TEXTURE_PT_voronoi,
+    TEXTURE_PT_voxeldata,
+    TEXTURE_PT_wood,
+    TEXTURE_UL_texslots,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index e07349a99eed27606de69479cd192f08c0702afa..16283040c3cac7b14524db1ae43820ea2ca10379 100644 (file)
@@ -248,5 +248,20 @@ class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel):
     _context_path = "world"
     _property_type = bpy.types.World
 
+
+classes = (
+    WORLD_PT_ambient_occlusion,
+    WORLD_PT_context_world,
+    WORLD_PT_custom_props,
+    WORLD_PT_environment_lighting,
+    WORLD_PT_gather,
+    WORLD_PT_indirect_lighting,
+    WORLD_PT_mist,
+    WORLD_PT_preview,
+    WORLD_PT_world,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 5cc135392c11ff96d570ec691432de0b2db78cea..44509b42b6bd33f36df0be4c3d91ea9c5a32e5b5 100644 (file)
@@ -1486,5 +1486,69 @@ class CLIP_MT_stabilize_2d_rotation_specials(Menu):
         layout.operator("clip.stabilize_2d_rotation_select")
 
 
+classes = (
+    CLIP_HT_header,
+    CLIP_MT_camera_presets,
+    CLIP_MT_clip,
+    CLIP_MT_masking_editor_menus,
+    CLIP_MT_proxy,
+    CLIP_MT_reconstruction,
+    CLIP_MT_select,
+    CLIP_MT_select_grouped,
+    CLIP_MT_stabilize_2d_rotation_specials,
+    CLIP_MT_stabilize_2d_specials,
+    CLIP_MT_track,
+    CLIP_MT_track_color_presets,
+    CLIP_MT_track_color_specials,
+    CLIP_MT_track_transform,
+    CLIP_MT_track_visibility,
+    CLIP_MT_tracking_editor_menus,
+    CLIP_MT_tracking_settings_presets,
+    CLIP_MT_tracking_specials,
+    CLIP_MT_view,
+    CLIP_PT_active_mask_point,
+    CLIP_PT_active_mask_spline,
+    CLIP_PT_display,
+    CLIP_PT_footage,
+    CLIP_PT_footage_info,
+    CLIP_PT_grease_pencil,
+    CLIP_PT_grease_pencil_palettecolor,
+    CLIP_PT_marker,
+    CLIP_PT_marker_display,
+    CLIP_PT_mask,
+    CLIP_PT_mask_display,
+    CLIP_PT_mask_layers,
+    CLIP_PT_objects,
+    CLIP_PT_plane_track,
+    CLIP_PT_proxy,
+    CLIP_PT_stabilization,
+    CLIP_PT_tools_cleanup,
+    CLIP_PT_tools_clip,
+    CLIP_PT_tools_geometry,
+    CLIP_PT_tools_grease_pencil_brush,
+    CLIP_PT_tools_grease_pencil_brushcurves,
+    CLIP_PT_tools_grease_pencil_draw,
+    CLIP_PT_tools_grease_pencil_edit,
+    CLIP_PT_tools_grease_pencil_sculpt,
+    CLIP_PT_tools_marker,
+    CLIP_PT_tools_mask,
+    CLIP_PT_tools_mask_add,
+    CLIP_PT_tools_mask_transforms,
+    CLIP_PT_tools_object,
+    CLIP_PT_tools_orientation,
+    CLIP_PT_tools_plane_tracking,
+    CLIP_PT_tools_scenesetup,
+    CLIP_PT_tools_solve,
+    CLIP_PT_tools_tracking,
+    CLIP_PT_track,
+    CLIP_PT_track_settings,
+    CLIP_PT_tracking_camera,
+    CLIP_PT_tracking_lens,
+    CLIP_PT_tracking_settings,
+    CLIP_UL_tracking_objects,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 4266abc5ad7b0b7b026e11a64270ccf930e2886c..487f006196480115640b94ccd2f5a0323f85fd02 100644 (file)
@@ -102,5 +102,15 @@ def add_scrollback(text, text_type):
         bpy.ops.console.scrollback_append(text=l.expandtabs(4),
                                           type=text_type)
 
+
+classes = (
+    CONSOLE_HT_header,
+    CONSOLE_MT_console,
+    CONSOLE_MT_editor_menus,
+    CONSOLE_MT_language,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 4d365c8dc08e4b5ede08069ebc037e6676de1659..5e4afbf1bf26d8a04e1d1afc2b84c9e28da4b2ea 100644 (file)
@@ -449,5 +449,21 @@ class DOPESHEET_MT_delete(Menu):
         layout.operator("action.clean", text="Clean Channels").channels = True
 
 
+classes = (
+    DOPESHEET_HT_header,
+    DOPESHEET_MT_channel,
+    DOPESHEET_MT_delete,
+    DOPESHEET_MT_editor_menus,
+    DOPESHEET_MT_gpencil_channel,
+    DOPESHEET_MT_gpencil_frame,
+    DOPESHEET_MT_key,
+    DOPESHEET_MT_key_transform,
+    DOPESHEET_MT_marker,
+    DOPESHEET_MT_select,
+    DOPESHEET_MT_view,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index d7b93dc36f05397e83130e9e891dbf7b60e51bd0..117d90fe031712a63d25680f28d1b80902e4ae8b 100644 (file)
@@ -247,5 +247,18 @@ class FILEBROWSER_PT_advanced_filter(Panel):
                 col.prop(params, "filter_id")
 
 
+classes = (
+    FILEBROWSER_HT_header,
+    FILEBROWSER_MT_bookmarks_specials,
+    FILEBROWSER_PT_advanced_filter,
+    FILEBROWSER_PT_bookmarks,
+    FILEBROWSER_PT_recent_folders,
+    FILEBROWSER_PT_system_bookmarks,
+    FILEBROWSER_PT_system_folders,
+    FILEBROWSER_UL_dir,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index cec3b26f35a8dc2215998e778c376b47e889c52a..d48b6650460b52b07120a7f1920aae322044150e 100644 (file)
@@ -299,6 +299,19 @@ class GRAPH_MT_delete(Menu):
         layout.operator("graph.clean").channels = False
         layout.operator("graph.clean", text="Clean Channels").channels = True
 
+classes = (
+    GRAPH_HT_header,
+    GRAPH_MT_channel,
+    GRAPH_MT_delete,
+    GRAPH_MT_editor_menus,
+    GRAPH_MT_key,
+    GRAPH_MT_key_transform,
+    GRAPH_MT_marker,
+    GRAPH_MT_select,
+    GRAPH_MT_view,
+)
 
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 04b4cef95123592ac890012e8cf7f655c2022161..38ec1b7a8594c04050a8c99a6190ee90d4e08c49 100644 (file)
@@ -1242,5 +1242,59 @@ class IMAGE_PT_tools_grease_pencil_brushcurves(GreasePencilBrushCurvesPanel, Pan
     bl_space_type = 'IMAGE_EDITOR'
 
 
+classes = (
+    IMAGE_HT_header,
+    IMAGE_MT_brush,
+    IMAGE_MT_image,
+    IMAGE_MT_image_invert,
+    IMAGE_MT_select,
+    IMAGE_MT_uvs,
+    IMAGE_MT_uvs_mirror,
+    IMAGE_MT_uvs_proportional,
+    IMAGE_MT_uvs_select_mode,
+    IMAGE_MT_uvs_showhide,
+    IMAGE_MT_uvs_snap,
+    IMAGE_MT_uvs_transform,
+    IMAGE_MT_uvs_weldalign,
+    IMAGE_MT_view,
+    IMAGE_PT_active_mask_point,
+    IMAGE_PT_active_mask_spline,
+    IMAGE_PT_game_properties,
+    IMAGE_PT_grease_pencil,
+    IMAGE_PT_grease_pencil_palettecolor,
+    IMAGE_PT_image_properties,
+    IMAGE_PT_mask,
+    IMAGE_PT_mask_display,
+    IMAGE_PT_mask_layers,
+    IMAGE_PT_paint,
+    IMAGE_PT_paint_curve,
+    IMAGE_PT_paint_stroke,
+    IMAGE_PT_sample_line,
+    IMAGE_PT_scope_sample,
+    IMAGE_PT_tools_brush_appearance,
+    IMAGE_PT_tools_brush_overlay,
+    IMAGE_PT_tools_brush_texture,
+    IMAGE_PT_tools_brush_tool,
+    IMAGE_PT_tools_grease_pencil_brush,
+    IMAGE_PT_tools_grease_pencil_brushcurves,
+    IMAGE_PT_tools_grease_pencil_draw,
+    IMAGE_PT_tools_grease_pencil_edit,
+    IMAGE_PT_tools_grease_pencil_sculpt,
+    IMAGE_PT_tools_imagepaint_symmetry,
+    IMAGE_PT_tools_mask,
+    IMAGE_PT_tools_mask_texture,
+    IMAGE_PT_tools_paint_options,
+    IMAGE_PT_tools_transform_uvs,
+    IMAGE_PT_view_histogram,
+    IMAGE_PT_view_properties,
+    IMAGE_PT_view_vectorscope,
+    IMAGE_PT_view_waveform,
+    IMAGE_UV_sculpt,
+    IMAGE_UV_sculpt_curve,
+    MASK_MT_editor_menus,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 2a085b8aadafc557db20546907b2f15e7893fa6e..e6adb87bc9fc4d2831299595847dbf160be543c1 100644 (file)
@@ -340,5 +340,23 @@ class INFO_MT_help(Menu):
 
         layout.operator("wm.splash", icon='BLENDER')
 
+
+classes = (
+    INFO_HT_header,
+    INFO_MT_editor_menus,
+    INFO_MT_file,
+    INFO_MT_file_export,
+    INFO_MT_file_external_data,
+    INFO_MT_file_import,
+    INFO_MT_file_previews,
+    INFO_MT_game,
+    INFO_MT_help,
+    INFO_MT_opengl_render,
+    INFO_MT_render,
+    INFO_MT_window,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 1b316a3eedef0b16c53e2a6cd862ee82945f6362..0b538131b0e51d57f75f9ce8a469baaefc59188c 100644 (file)
@@ -130,5 +130,16 @@ class LOGIC_MT_view(Menu):
         layout.operator("screen.screen_full_area")
         layout.operator("screen.screen_full_area", text="Toggle Fullscreen Area").use_hide_panels = True
 
+
+classes = (
+    LOGIC_HT_header,
+    LOGIC_MT_editor_menus,
+    LOGIC_MT_logicbricks_add,
+    LOGIC_MT_view,
+    LOGIC_PT_properties,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 8fbf9bfc6aca1466e4704607daa46d2291818d32..2a855f47d378ade391a2fef1b41793361f6b98a8 100644 (file)
@@ -209,5 +209,19 @@ class NLA_MT_edit_transform(Menu):
         layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
         layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
 
+
+classes = (
+    NLA_HT_header,
+    NLA_MT_add,
+    NLA_MT_edit,
+    NLA_MT_edit_transform,
+    NLA_MT_editor_menus,
+    NLA_MT_marker,
+    NLA_MT_select,
+    NLA_MT_view,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 8821fa0ca58fd5a683c0fe3ec57269840c65e8f2..4d8d9f50a9e9d93ab952ff9b856e9b67d07c9907 100644 (file)
@@ -526,6 +526,33 @@ class NODE_PT_tools_grease_pencil_brushcurves(GreasePencilBrushCurvesPanel, Pane
 def node_draw_tree_view(layout, context):
     pass
 
+classes = (
+    NODE_HT_header,
+    NODE_MT_add,
+    NODE_MT_editor_menus,
+    NODE_MT_node,
+    NODE_MT_node_color_presets,
+    NODE_MT_node_color_specials,
+    NODE_MT_select,
+    NODE_MT_view,
+    NODE_PT_active_node_color,
+    NODE_PT_active_node_generic,
+    NODE_PT_active_node_properties,
+    NODE_PT_backdrop,
+    NODE_PT_grease_pencil,
+    NODE_PT_grease_pencil_palettecolor,
+    NODE_PT_grease_pencil_tools,
+    NODE_PT_quality,
+    NODE_PT_tools_grease_pencil_brush,
+    NODE_PT_tools_grease_pencil_brushcurves,
+    NODE_PT_tools_grease_pencil_draw,
+    NODE_PT_tools_grease_pencil_edit,
+    NODE_PT_tools_grease_pencil_sculpt,
+    NODE_UL_interface_sockets,
+)
+
 
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 6f7c535fe2199c2217f82922500f9cc05d360a55..6ff5498cb4aefc0b68dc581db7ee58fef01d19dc 100644 (file)
@@ -130,5 +130,16 @@ class OUTLINER_MT_edit_datablocks(Menu):
         layout.operator("outliner.drivers_add_selected")
         layout.operator("outliner.drivers_delete_selected")
 
+
+classes = (
+    OUTLINER_HT_header,
+    OUTLINER_MT_edit_datablocks,
+    OUTLINER_MT_editor_menus,
+    OUTLINER_MT_search,
+    OUTLINER_MT_view,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index f0ca01ec3ba397af7b02cb20020e1680837f6aeb..20cb5719e206dceacee6e093ef4566b9d1aeebb9 100644 (file)
@@ -34,13 +34,11 @@ class PROPERTIES_HT_header(Header):
         row.prop(view, "context", expand=True, icon_only=True)
 
 
-def register():
-    bpy.utils.register_module(__name__)
-
-
-def unregister():
-    bpy.utils.unregister_module(__name__)
-
-
-if __name__ == "__main__":
-    register()
+classes = (
+    PROPERTIES_HT_header,
+)
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 67ffaa7fccf21357602081c22c9479e1026c09cb..ec347bdd666f9507af2f0c1043885d87dda8e975 100644 (file)
@@ -1239,5 +1239,37 @@ class SEQUENCER_PT_custom_props(SequencerButtonsPanel, PropertyPanel, Panel):
     bl_category = "Strip"
 
 
+classes = (
+    SEQUENCER_HT_header,
+    SEQUENCER_MT_add,
+    SEQUENCER_MT_add_effect,
+    SEQUENCER_MT_change,
+    SEQUENCER_MT_editor_menus,
+    SEQUENCER_MT_frame,
+    SEQUENCER_MT_marker,
+    SEQUENCER_MT_select,
+    SEQUENCER_MT_strip,
+    SEQUENCER_MT_view,
+    SEQUENCER_MT_view_toggle,
+    SEQUENCER_PT_custom_props,
+    SEQUENCER_PT_edit,
+    SEQUENCER_PT_effect,
+    SEQUENCER_PT_filter,
+    SEQUENCER_PT_grease_pencil,
+    SEQUENCER_PT_grease_pencil_palettecolor,
+    SEQUENCER_PT_grease_pencil_tools,
+    SEQUENCER_PT_input,
+    SEQUENCER_PT_mask,
+    SEQUENCER_PT_modifiers,
+    SEQUENCER_PT_preview,
+    SEQUENCER_PT_proxy,
+    SEQUENCER_PT_scene,
+    SEQUENCER_PT_sound,
+    SEQUENCER_PT_view,
+    SEQUENCER_PT_view_safe_areas,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 8c5418161cadfe4a2e2b045e86aa8c06a1173973..67b98d530a82ca0949f9987ed26f4c05d2bacc9c 100644 (file)
@@ -343,5 +343,25 @@ class TEXT_MT_toolbox(Menu):
 
         layout.operator("text.run_script")
 
+
+classes = (
+    TEXT_HT_header,
+    TEXT_MT_edit,
+    TEXT_MT_edit_select,
+    TEXT_MT_edit_to3d,
+    TEXT_MT_editor_menus,
+    TEXT_MT_format,
+    TEXT_MT_templates,
+    TEXT_MT_templates_osl,
+    TEXT_MT_templates_py,
+    TEXT_MT_text,
+    TEXT_MT_toolbox,
+    TEXT_MT_view,
+    TEXT_PT_find,
+    TEXT_PT_properties,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 1f62d8d6968aa42aa53b546160762f2c01ca7419..9b2f6b69f80350e4c4016d90cacd5aac679c7039 100644 (file)
@@ -269,5 +269,18 @@ def marker_menu_generic(layout):
     layout.prop(ts, "lock_markers")
 
 
+classes = (
+    TIME_HT_header,
+    TIME_MT_autokey,
+    TIME_MT_cache,
+    TIME_MT_editor_menus,
+    TIME_MT_frame,
+    TIME_MT_marker,
+    TIME_MT_playback,
+    TIME_MT_view,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index cd12255c24c72b1caec67de11b3fcb425fda109f..faaf54173ff5d6b2498ce3a606ee7a5ba984aa5e 100644 (file)
@@ -1481,5 +1481,27 @@ class USERPREF_PT_addons(Panel):
                 row.label(text=module_name, translate=False)
 
 
+classes = (
+    USERPREF_HT_header,
+    USERPREF_MT_addons_online_resources,
+    USERPREF_MT_appconfigs,
+    USERPREF_MT_interaction_presets,
+    USERPREF_MT_interface_theme_presets,
+    USERPREF_MT_keyconfigs,
+    USERPREF_MT_ndof_settings,
+    USERPREF_MT_splash,
+    USERPREF_MT_splash_footer,
+    USERPREF_PT_addons,
+    USERPREF_PT_edit,
+    USERPREF_PT_file,
+    USERPREF_PT_input,
+    USERPREF_PT_interface,
+    USERPREF_PT_system,
+    USERPREF_PT_tabs,
+    USERPREF_PT_theme,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index a4238c5330865a6387955ab20423f6abf8dcad73..920fd1b70674d135e2c1c778a0f9040c6d358c47 100644 (file)
@@ -3787,13 +3787,142 @@ class VIEW3D_PT_context_properties(Panel):
             # Draw with no edit button
             rna_prop_ui.draw(self.layout, context, member, object, False)
 
-
-def register():
-    bpy.utils.register_module(__name__)
-
-
-def unregister():
-    bpy.utils.unregister_module(__name__)
-
-if __name__ == "__main__":
-    register()
+classes = (
+    INFO_MT_add,
+    INFO_MT_armature_add,
+    INFO_MT_curve_add,
+    INFO_MT_edit_armature_add,
+    INFO_MT_edit_curve_add,
+    INFO_MT_lamp_add,
+    INFO_MT_mesh_add,
+    INFO_MT_metaball_add,
+    INFO_MT_surface_add,
+    VIEW3D_HT_header,
+    VIEW3D_MT_angle_control,
+    VIEW3D_MT_armature_specials,
+    VIEW3D_MT_bone_options_disable,
+    VIEW3D_MT_bone_options_enable,
+    VIEW3D_MT_bone_options_toggle,
+    VIEW3D_MT_brush,
+    VIEW3D_MT_brush_paint_modes,
+    VIEW3D_MT_edit_armature,
+    VIEW3D_MT_edit_armature_delete,
+    VIEW3D_MT_edit_armature_parent,
+    VIEW3D_MT_edit_armature_roll,
+    VIEW3D_MT_edit_curve,
+    VIEW3D_MT_edit_curve_ctrlpoints,
+    VIEW3D_MT_edit_curve_delete,
+    VIEW3D_MT_edit_curve_segments,
+    VIEW3D_MT_edit_curve_showhide,
+    VIEW3D_MT_edit_curve_specials,
+    VIEW3D_MT_edit_font,
+    VIEW3D_MT_edit_gpencil,
+    VIEW3D_MT_edit_gpencil_delete,
+    VIEW3D_MT_edit_gpencil_interpolate,
+    VIEW3D_MT_edit_gpencil_transform,
+    VIEW3D_MT_edit_lattice,
+    VIEW3D_MT_edit_mesh,
+    VIEW3D_MT_edit_mesh_clean,
+    VIEW3D_MT_edit_mesh_delete,
+    VIEW3D_MT_edit_mesh_edges,
+    VIEW3D_MT_edit_mesh_extrude,
+    VIEW3D_MT_edit_mesh_faces,
+    VIEW3D_MT_edit_mesh_normals,
+    VIEW3D_MT_edit_mesh_select_by_trait,
+    VIEW3D_MT_edit_mesh_select_mode,
+    VIEW3D_MT_edit_mesh_select_more_less,
+    VIEW3D_MT_edit_mesh_select_similar,
+    VIEW3D_MT_edit_mesh_showhide,
+    VIEW3D_MT_edit_mesh_specials,
+    VIEW3D_MT_edit_mesh_vertices,
+    VIEW3D_MT_edit_meta,
+    VIEW3D_MT_edit_meta_showhide,
+    VIEW3D_MT_edit_proportional,
+    VIEW3D_MT_edit_surface,
+    VIEW3D_MT_edit_text_chars,
+    VIEW3D_MT_editor_menus,
+    VIEW3D_MT_hide_mask,
+    VIEW3D_MT_hook,
+    VIEW3D_MT_make_links,
+    VIEW3D_MT_make_single_user,
+    VIEW3D_MT_mirror,
+    VIEW3D_MT_object,
+    VIEW3D_MT_object_animation,
+    VIEW3D_MT_object_apply,
+    VIEW3D_MT_object_clear,
+    VIEW3D_MT_object_constraints,
+    VIEW3D_MT_object_game,
+    VIEW3D_MT_object_group,
+    VIEW3D_MT_object_parent,
+    VIEW3D_MT_object_quick_effects,
+    VIEW3D_MT_object_showhide,
+    VIEW3D_MT_object_specials,
+    VIEW3D_MT_object_track,
+    VIEW3D_MT_paint_vertex,
+    VIEW3D_MT_paint_weight,
+    VIEW3D_MT_particle,
+    VIEW3D_MT_particle_showhide,
+    VIEW3D_MT_particle_specials,
+    VIEW3D_MT_pose,
+    VIEW3D_MT_pose_apply,
+    VIEW3D_MT_pose_constraints,
+    VIEW3D_MT_pose_group,
+    VIEW3D_MT_pose_ik,
+    VIEW3D_MT_pose_library,
+    VIEW3D_MT_pose_motion,
+    VIEW3D_MT_pose_propagate,
+    VIEW3D_MT_pose_showhide,
+    VIEW3D_MT_pose_slide,
+    VIEW3D_MT_pose_specials,
+    VIEW3D_MT_pose_transform,
+    VIEW3D_MT_sculpt,
+    VIEW3D_MT_select_edit_armature,
+    VIEW3D_MT_select_edit_curve,
+    VIEW3D_MT_select_edit_lattice,
+    VIEW3D_MT_select_edit_mesh,
+    VIEW3D_MT_select_edit_metaball,
+    VIEW3D_MT_select_edit_surface,
+    VIEW3D_MT_select_edit_text,
+    VIEW3D_MT_select_gpencil,
+    VIEW3D_MT_select_object,
+    VIEW3D_MT_select_object_more_less,
+    VIEW3D_MT_select_paint_mask,
+    VIEW3D_MT_select_paint_mask_vertex,
+    VIEW3D_MT_select_particle,
+    VIEW3D_MT_select_pose,
+    VIEW3D_MT_select_pose_more_less,
+    VIEW3D_MT_snap,
+    VIEW3D_MT_transform,
+    VIEW3D_MT_transform_armature,
+    VIEW3D_MT_transform_base,
+    VIEW3D_MT_transform_object,
+    VIEW3D_MT_uv_map,
+    VIEW3D_MT_vertex_group,
+    VIEW3D_MT_view,
+    VIEW3D_MT_view_align,
+    VIEW3D_MT_view_align_selected,
+    VIEW3D_MT_view_cameras,
+    VIEW3D_MT_view_navigation,
+    VIEW3D_PT_background_image,
+    VIEW3D_PT_context_properties,
+    VIEW3D_PT_etch_a_ton,
+    VIEW3D_PT_grease_pencil,
+    VIEW3D_PT_grease_pencil_palettecolor,
+    VIEW3D_PT_transform_orientations,
+    VIEW3D_PT_view3d_cursor,
+    VIEW3D_PT_view3d_curvedisplay,
+    VIEW3D_PT_view3d_display,
+    VIEW3D_PT_view3d_meshdisplay,
+    VIEW3D_PT_view3d_meshstatvis,
+    VIEW3D_PT_view3d_motion_tracking,
+    VIEW3D_PT_view3d_name,
+    VIEW3D_PT_view3d_properties,
+    VIEW3D_PT_view3d_shading,
+    VIEW3D_PT_view3d_stereo,
+)
+
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 60e86d7544dbac67ff37ed95e947d1d8cebae98a..ad83da7db83fe6125a6211613f6bf4b430af40b4 100644 (file)
@@ -2008,5 +2008,69 @@ class VIEW3D_PT_tools_history(View3DPanel, Panel):
         col.operator("screen.repeat_history", text="History...")
 
 
+classes = (
+    TEXTURE_UL_texpaintslots,
+    VIEW3D_MT_tools_projectpaint_stencil,
+    VIEW3D_MT_tools_projectpaint_uvlayer,
+    VIEW3D_PT_imapaint_tools_missing,
+    VIEW3D_PT_sculpt_dyntopo,
+    VIEW3D_PT_sculpt_options,
+    VIEW3D_PT_sculpt_symmetry,
+    VIEW3D_PT_slots_projectpaint,
+    VIEW3D_PT_stencil_projectpaint,
+    VIEW3D_PT_tools_add_curve_edit,
+    VIEW3D_PT_tools_add_mball_edit,
+    VIEW3D_PT_tools_add_mesh_edit,
+    VIEW3D_PT_tools_add_object,
+    VIEW3D_PT_tools_add_surface_edit,
+    VIEW3D_PT_tools_animation,
+    VIEW3D_PT_tools_armatureedit,
+    VIEW3D_PT_tools_armatureedit_options,
+    VIEW3D_PT_tools_armatureedit_transform,
+    VIEW3D_PT_tools_brush,
+    VIEW3D_PT_tools_brush_appearance,
+    VIEW3D_PT_tools_brush_curve,
+    VIEW3D_PT_tools_brush_overlay,
+    VIEW3D_PT_tools_brush_stroke,
+    VIEW3D_PT_tools_brush_texture,
+    VIEW3D_PT_tools_curveedit,
+    VIEW3D_PT_tools_curveedit_options_stroke,
+    VIEW3D_PT_tools_grease_pencil_brush,
+    VIEW3D_PT_tools_grease_pencil_brushcurves,
+    VIEW3D_PT_tools_grease_pencil_draw,
+    VIEW3D_PT_tools_grease_pencil_edit,
+    VIEW3D_PT_tools_grease_pencil_interpolate,
+    VIEW3D_PT_tools_grease_pencil_sculpt,
+    VIEW3D_PT_tools_history,
+    VIEW3D_PT_tools_imagepaint_external,
+    VIEW3D_PT_tools_imagepaint_symmetry,
+    VIEW3D_PT_tools_latticeedit,
+    VIEW3D_PT_tools_mask_texture,
+    VIEW3D_PT_tools_mballedit,
+    VIEW3D_PT_tools_meshedit,
+    VIEW3D_PT_tools_meshedit_options,
+    VIEW3D_PT_tools_meshweight,
+    VIEW3D_PT_tools_object,
+    VIEW3D_PT_tools_particlemode,
+    VIEW3D_PT_tools_posemode,
+    VIEW3D_PT_tools_posemode_options,
+    VIEW3D_PT_tools_projectpaint,
+    VIEW3D_PT_tools_relations,
+    VIEW3D_PT_tools_rigid_body,
+    VIEW3D_PT_tools_shading,
+    VIEW3D_PT_tools_surfaceedit,
+    VIEW3D_PT_tools_textedit,
+    VIEW3D_PT_tools_transform,
+    VIEW3D_PT_tools_transform_curve,
+    VIEW3D_PT_tools_transform_mesh,
+    VIEW3D_PT_tools_transform_surface,
+    VIEW3D_PT_tools_uvs,
+    VIEW3D_PT_tools_vertexpaint,
+    VIEW3D_PT_tools_weightpaint,
+    VIEW3D_PT_tools_weightpaint_options,
+)
+
 if __name__ == "__main__":  # only for live edit.
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
index 97320e56378a45ab2412a4d643381b1959ac9c4f..ce0b1b62d444bbb244bd4ef6842c72ee13994afc 100644 (file)
@@ -643,13 +643,41 @@ class BUILTIN_KSI_DeltaScale(KeyingSetInfo):
 
 ###############################
 
+classes = (
+    BUILTIN_KSI_Available,
+    BUILTIN_KSI_BendyBones,
+    BUILTIN_KSI_DeltaLocation,
+    BUILTIN_KSI_DeltaRotation,
+    BUILTIN_KSI_DeltaScale,
+    BUILTIN_KSI_LocRot,
+    BUILTIN_KSI_LocRotScale,
+    BUILTIN_KSI_LocScale,
+    BUILTIN_KSI_Location,
+    BUILTIN_KSI_RotScale,
+    BUILTIN_KSI_Rotation,
+    BUILTIN_KSI_Scaling,
+    BUILTIN_KSI_VisualLoc,
+    BUILTIN_KSI_VisualLocRot,
+    BUILTIN_KSI_VisualLocRotScale,
+    BUILTIN_KSI_VisualLocScale,
+    BUILTIN_KSI_VisualRot,
+    BUILTIN_KSI_VisualRotScale,
+    BUILTIN_KSI_VisualScaling,
+    BUILTIN_KSI_WholeCharacter,
+    BUILTIN_KSI_WholeCharacterSelected,
+)
+
 
 def register():
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
 
 
 def unregister():
-    bpy.utils.unregister_module(__name__)
+    from bpy.utils import unregister_class
+    for cls in classes:
+        unregister_class(cls)
 
 
 if __name__ == "__main__":