PyAPI: remove bpy.utils.register_module()

In preparation for it being removed, see: T47811
This commit is contained in:
Campbell Barton 2017-03-18 20:03:24 +11:00
parent 2fbc50e4c1
commit 9bdda427e6
79 changed files with 1367 additions and 81 deletions

View 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)

View File

@ -282,3 +282,8 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
classes = (
AddTorus,
)

View 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,
)

View 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,
)

View File

@ -159,3 +159,12 @@ class ConsoleLanguage(Operator):
remove_duplicates=True)
return {'FINISHED'}
classes = (
ConsoleAutocomplete,
ConsoleBanner,
ConsoleCopyAsScript,
ConsoleExec,
ConsoleLanguage,
)

View 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,
)

View File

@ -242,3 +242,11 @@ class ProjectApply(Operator):
bpy.ops.paint.project_image(image=image_name)
return {'FINISHED'}
classes = (
EditExternally,
ProjectApply,
ProjectEdit,
SaveDirty,
)

View 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,
)

View File

@ -248,3 +248,10 @@ class MehsSetNormalsFromFaces(Operator):
return {'FINISHED'}
classes = (
MehsSetNormalsFromFaces,
MeshMirrorUV,
MeshSelectNext,
MeshSelectPrev,
)

View 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,
)

View 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,
)

View File

@ -411,3 +411,8 @@ class AlignObjects(Operator):
return {'CANCELLED'}
else:
return {'FINISHED'}
classes = (
AlignObjects,
)

View File

@ -645,3 +645,11 @@ class QuickFluid(Operator):
bpy.ops.fluid.bake('INVOKE_DEFAULT')
return {'FINISHED'}
classes = (
QuickExplode,
QuickFluid,
QuickFur,
QuickSmoke,
)

View File

@ -185,3 +185,8 @@ class RandomizeLocRotSize(Operator):
loc, rot, scale, scale_even, scale_min)
return {'FINISHED'}
classes = (
RandomizeLocRotSize,
)

View 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,
)

View File

@ -309,3 +309,10 @@ class ConnectRigidBodies(Operator):
else:
self.report({'WARNING'}, "No other objects selected")
return {'CANCELLED'}
classes = (
BakeToKeyframes,
ConnectRigidBodies,
CopyRigidbodySettings,
)

View File

@ -180,3 +180,8 @@ class PlayRenderedAnim(Operator):
return {'CANCELLED'}
return {'FINISHED'}
classes = (
PlayRenderedAnim,
)

View File

@ -134,3 +134,10 @@ class SequencerDeinterlaceSelectedMovies(Operator):
s.use_deinterlace = True
return {'FINISHED'}
classes = (
SequencerCrossfadeSounds,
SequencerCutMulticam,
SequencerDeinterlaceSelectedMovies,
)

View 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,
)

View 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,
)

View 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,
)

View 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,
)

View 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,
)

View 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,
)

View 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

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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__)
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,
)
def unregister():
bpy.utils.register_module(__name__)
if __name__ == "__main__":
register()
if __name__ == "__main__": # only for live edit.
from bpy.utils import register_class
for cls in classes:
register_class(cls)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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)

View 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__)
classes = (
PROPERTIES_HT_header,
)
def unregister():
bpy.utils.unregister_module(__name__)
if __name__ == "__main__":
register()
if __name__ == "__main__": # only for live edit.
from bpy.utils import register_class
for cls in classes:
register_class(cls)

View 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)

View 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)

View 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)

View 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)

View 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__)
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,
)
def unregister():
bpy.utils.unregister_module(__name__)
if __name__ == "__main__":
register()
if __name__ == "__main__": # only for live edit.
from bpy.utils import register_class
for cls in classes:
register_class(cls)

View 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)

View 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__":