Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Reynish <billreynish>2018-09-11 09:49:52 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-09-11 09:52:18 +0300
commita0581daf753a81ac1e410c6aa0c9cfd233b04793 (patch)
tree3a1fc763e6d92fa754c8e73e4f9b7c99461ca78a /release/scripts/startup
parent17e57859e734681f33dc20bed76881a4e8ee47f5 (diff)
UI: use property split for motion paths
Diffstat (limited to 'release/scripts/startup')
-rw-r--r--release/scripts/startup/bl_ui/properties_animviz.py88
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py25
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py22
-rw-r--r--release/scripts/startup/bl_ui/properties_view_layer.py22
4 files changed, 114 insertions, 43 deletions
diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py
index 7ba503bffd2..eb031b54caa 100644
--- a/release/scripts/startup/bl_ui/properties_animviz.py
+++ b/release/scripts/startup/bl_ui/properties_animviz.py
@@ -38,63 +38,67 @@ class MotionPathButtonsPanel:
# Display Range
layout.use_property_split = True
- layout.row().prop(mps, "type")
- col = layout.column()
+ layout.prop(mps, "type")
- sub = col.column(align=True)
if mps.type == 'CURRENT_FRAME':
- sub.prop(mps, "frame_before", text="Frame Range Before")
- sub.prop(mps, "frame_after", text="After")
+ col = layout.column(align=True)
+ col.prop(mps, "frame_before", text="Frame Range Before")
+ col.prop(mps, "frame_after", text="After")
+ col.prop(mps, "frame_step", text="Step")
elif mps.type == 'RANGE':
+ row = layout.row()
+ sub = row.column()
+ if mps.type == 'RANGE':
+ if bones:
+ sub.operator("pose.paths_range_update", text="", icon='TIME')
+ else:
+ sub.operator("object.paths_range_update", text="", icon='TIME')
+ sub = row.column(align=True)
sub.prop(mps, "frame_start", text="Frame Range Start")
sub.prop(mps, "frame_end", text="End")
+ sub.prop(mps, "frame_step", text="Step")
- sub.prop(mps, "frame_step", text="Step")
-
- if mps.type == 'RANGE':
+ if mpath:
+ col = layout.column(align=True)
+ col.enabled = False
if bones:
- sub.operator("pose.paths_range_update")
+ col.prop(mpath, "frame_start", text="Bone Cache From")
else:
- sub.operator("object.paths_range_update")
-
- col = layout.column(align=True)
- if bones:
- col.label(text="Cache for Bone:")
- else:
- col.label(text="Cache")
+ col.prop(mpath, "frame_start", text="Cache From")
+ col.prop(mpath, "frame_end", text="To")
- if mpath:
- sub = col.column(align=True)
- sub.enabled = False
- sub.prop(mpath, "frame_start", text="From")
- sub.prop(mpath, "frame_end", text="To")
-
- sub = col.row(align=True)
+ row = layout.row(align=True)
if bones:
- sub.operator("pose.paths_update", text="Update Paths", icon='BONE_DATA')
- sub.operator("pose.paths_clear", text="", icon='X')
+ row.operator("pose.paths_update", text="Update Paths", icon='BONE_DATA')
+ row.operator("pose.paths_clear", text="", icon='X')
else:
- sub.operator("object.paths_update", text="Update Paths", icon='OBJECT_DATA')
- sub.operator("object.paths_clear", text="", icon='X')
+ row.operator("object.paths_update", text="Update Paths", icon='OBJECT_DATA')
+ row.operator("object.paths_clear", text="", icon='X')
else:
- sub = col.column(align=True)
- sub.label(text="Nothing to show yet...", icon='ERROR')
+ col = layout.column(align=True)
+ col.label(text="Nothing to show yet...", icon='ERROR')
if bones:
- sub.operator("pose.paths_calculate", text="Calculate...", icon='BONE_DATA')
+ col.operator("pose.paths_calculate", text="Calculate...", icon='BONE_DATA')
else:
- sub.operator("object.paths_calculate", text="Calculate...", icon='OBJECT_DATA')
+ col.operator("object.paths_calculate", text="Calculate...", icon='OBJECT_DATA')
- # Display Settings
- layout.label(text="Display")
+class MotionPathButtonsPanel_display:
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_label = "Display"
+
+ def draw_settings(self, context, avs, mpath, bones=False):
+ layout = self.layout
+
+ mps = avs.motion_path
+
+ layout.use_property_split = True
+ layout.use_property_decorate = False
col = layout.column()
col.prop(mps, "show_frame_numbers", text="Frame Numbers")
- if mpath is not None:
- col.prop(mpath, "lines", text="Lines")
- col.prop(mpath, "line_thickness", text="Thickness")
-
col.prop(mps, "show_keyframe_highlight", text="Keyframes")
sub = col.column()
sub.enabled = mps.show_keyframe_highlight
@@ -104,11 +108,15 @@ class MotionPathButtonsPanel:
# Customize path
if mpath is not None:
+ col.prop(mpath, "lines", text="Lines")
+ col.prop(mpath, "line_thickness", text="Thickness")
+
+ split = col.split(factor=0.6)
- col.prop(mpath, "use_custom_color", text="Custom Color")
- sub = col.column()
+ split.prop(mpath, "use_custom_color", text="Custom Color")
+ sub = split.column()
sub.enabled = mpath.use_custom_color
- sub.prop(mpath, "color")
+ sub.prop(mpath, "color", text="")
# FIXME: this panel still needs to be ported so that it will work correctly with animviz
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index 4f0f18889fc..833643cdafc 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -288,6 +288,7 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
from .properties_animviz import (
MotionPathButtonsPanel,
+ MotionPathButtonsPanel_display,
OnionSkinButtonsPanel,
)
@@ -313,6 +314,29 @@ class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel):
self.draw_settings(context, avs, mpath, bones=True)
+class DATA_PT_motion_paths_display(MotionPathButtonsPanel_display, Panel):
+ #bl_label = "Bones Motion Paths"
+ bl_context = "data"
+ bl_parent_id = "DATA_PT_motion_paths"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ # XXX: include pose-mode check?
+ return (context.object) and (context.armature)
+
+ def draw(self, context):
+ # layout = self.layout
+
+ ob = context.object
+ avs = ob.pose.animation_visualization
+
+ pchan = context.active_pose_bone
+ mpath = pchan.motion_path if pchan else None
+
+ self.draw_settings(context, avs, mpath, bones=True)
+
+
class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready
#bl_label = "Bones Onion Skinning"
bl_context = "data"
@@ -342,6 +366,7 @@ classes = (
DATA_PT_bone_groups,
DATA_PT_pose_library,
DATA_PT_motion_paths,
+ DATA_PT_motion_paths_display,
DATA_PT_ghost,
DATA_PT_iksolver_itasc,
DATA_PT_custom_props_arm,
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 4f95f1fbf05..65126691d8c 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -328,6 +328,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
from .properties_animviz import (
MotionPathButtonsPanel,
+ MotionPathButtonsPanel_display,
OnionSkinButtonsPanel,
)
@@ -351,6 +352,26 @@ class OBJECT_PT_motion_paths(MotionPathButtonsPanel, Panel):
self.draw_settings(context, avs, mpath)
+class OBJECT_PT_motion_paths_display(MotionPathButtonsPanel_display, Panel):
+ #bl_label = "Object Motion Paths"
+ bl_context = "object"
+ bl_parent_id = "OBJECT_PT_motion_paths"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ return (context.object)
+
+ def draw(self, context):
+ # layout = self.layout
+
+ ob = context.object
+ avs = ob.animation_visualization
+ mpath = ob.motion_path
+
+ self.draw_settings(context, avs, mpath)
+
+
class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready
#bl_label = "Object Onion Skinning"
bl_context = "object"
@@ -381,6 +402,7 @@ classes = (
OBJECT_PT_duplication,
OBJECT_PT_display,
OBJECT_PT_motion_paths,
+ OBJECT_PT_motion_paths_display,
OBJECT_PT_custom_props,
)
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py
index f96bf041311..b962c8f5828 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -38,14 +38,21 @@ class VIEWLAYER_PT_layer(ViewLayerButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
+ layout.use_property_split = True
+
+ flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False)
+
layout.use_property_split = True
scene = context.scene
rd = scene.render
layer = bpy.context.view_layer
- layout.prop(layer, "use", text="Use for Rendering")
- layout.prop(rd, "use_single_layer", text="Render Single Layer")
+ col = flow.column()
+ col.prop(layer, "use", text="Use for Rendering")
+ col = flow.column()
+ col.prop(rd, "use_single_layer", text="Render Single Layer")
class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
@@ -55,19 +62,28 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
layout.use_property_split = True
+ flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False)
+
scene = context.scene
rd = scene.render
view_layer = context.view_layer
- col = layout.column()
+ col = flow.column()
col.prop(view_layer, "use_pass_combined")
+ col = flow.column()
col.prop(view_layer, "use_pass_z")
+ col = flow.column()
col.prop(view_layer, "use_pass_mist")
+ col = flow.column()
col.prop(view_layer, "use_pass_normal")
+ col = flow.column()
col.prop(view_layer, "use_pass_ambient_occlusion")
+ col = flow.column()
col.prop(view_layer, "use_pass_subsurface_direct", text="Subsurface Direct")
+ col = flow.column()
col.prop(view_layer, "use_pass_subsurface_color", text="Subsurface Color")