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:
authorCampbell Barton <ideasman42@gmail.com>2019-04-30 06:42:18 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-30 07:48:39 +0300
commite83d4d963766487919edb8858de0020ef2c3cfe8 (patch)
tree71e6c2b81ad7d7b349afc0b6c1e75e2eccb2373d /release
parent95a9646c00a1cbf727f24c506c4aeffe99016352 (diff)
UI: reorganize proportional editing options
- Move connected & projected into individual toggles. - Top-level proportional editing button now only toggles. - Use popover for proportional edit-mode falloff and options. Note that it's no longer possible to toggle connected via key bindings, although this could be supported again if it's needed. Resolves T58081
Diffstat (limited to 'release')
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_grease_pencil_common.py4
-rw-r--r--release/scripts/startup/bl_ui/space_image.py20
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py4
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py62
5 files changed, 52 insertions, 46 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index a0798ab60ab..97dd0743b6a 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -261,11 +261,11 @@ def _template_items_uv_select_mode(params):
def _template_items_proportional_editing(*, connected=False):
return [
op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
- ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
- {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_proportional_edit')]}),
*(() if not connected else (
- ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS', "alt": True},
- {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'CONNECTED')]}),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.use_proportional_connected')]}),
))
]
diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
index 14c616d14d5..734828bceaa 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -386,7 +386,7 @@ class GPENCIL_MT_pie_tool_palette(Menu):
row.operator("transform.resize", text="Scale", icon='MAN_SCALE')
row = col.row(align=True)
row.label(text="Proportional Edit:")
- row.prop(context.tool_settings, "proportional_edit", text="", icon_only=True)
+ row.prop(context.tool_settings, "use_proportional_edit", text="", icon_only=True)
row.prop(context.tool_settings, "proportional_edit_falloff", text="", icon_only=True)
# NW - Select (Non-Modal)
@@ -808,7 +808,7 @@ class GreasePencilToolsPanel:
layout.label(text="Proportional Edit:")
row = layout.row()
- row.prop(context.tool_settings, "proportional_edit", text="")
+ row.prop(context.tool_settings, "use_proportional_edit", text="")
row.prop(context.tool_settings, "proportional_edit_falloff", text="")
layout.separator()
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index 1db1eea9a47..8bffeedc25d 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -265,20 +265,6 @@ class IMAGE_MT_uvs_showhide(Menu):
layout.operator("uv.hide", text="Hide Unselected").unselected = True
-class IMAGE_MT_uvs_proportional(Menu):
- bl_label = "Proportional Editing"
-
- def draw(self, context):
- layout = self.layout
-
- layout.props_enum(context.tool_settings, "proportional_edit")
-
- layout.separator()
-
- layout.label(text="Falloff:")
- layout.props_enum(context.tool_settings, "proportional_edit_falloff")
-
-
class IMAGE_MT_uvs_transform(Menu):
bl_label = "Transform"
@@ -538,10 +524,9 @@ class IMAGE_HT_tool_header(Header):
# Proportional Editing
row = layout.row(align=True)
- row.prop(tool_settings, "proportional_edit", icon_only=True)
- # if tool_settings.proportional_edit != 'DISABLED':
+ row.prop(tool_settings, "use_proportional_edit", icon_only=True)
sub = row.row(align=True)
- sub.active = tool_settings.proportional_edit != 'DISABLED'
+ sub.active = tool_settings.use_proportional_edit
sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True)
layout.separator_spacer()
@@ -1588,7 +1573,6 @@ classes = (
IMAGE_MT_image_invert,
IMAGE_MT_uvs,
IMAGE_MT_uvs_showhide,
- IMAGE_MT_uvs_proportional,
IMAGE_MT_uvs_transform,
IMAGE_MT_uvs_snap,
IMAGE_MT_uvs_mirror,
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index bc21daa2043..b6494e33f93 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -125,8 +125,8 @@ class SEQUENCER_HT_header(Header):
# Proportional editing
if gpd and gpd.use_stroke_edit_mode:
row = layout.row(align=True)
- row.prop(tool_settings, "proportional_edit", icon_only=True)
- if tool_settings.proportional_edit != 'DISABLED':
+ row.prop(tool_settings, "use_proportional_edit", icon_only=True)
+ if tool_settings.use_proportional_edit:
row.prop(tool_settings, "proportional_edit_falloff", icon_only=True)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index fd45012eef8..b6e24671515 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -466,29 +466,29 @@ class VIEW3D_HT_header(Header):
)
# Proportional editing
- gpd = context.gpencil_data
- if object_mode in {'EDIT', 'PARTICLE_EDIT'}:
- row = layout.row(align=True)
- row.prop(tool_settings, "proportional_edit", icon_only=True)
- sub = row.row(align=True)
- sub.active = tool_settings.proportional_edit != 'DISABLED'
- sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True)
-
- elif object_mode == 'OBJECT':
+ if object_mode in {'EDIT', 'PARTICLE_EDIT', 'SCULPT_GPENCIL', 'EDIT_GPENCIL', 'OBJECT'}:
row = layout.row(align=True)
- row.prop(tool_settings, "use_proportional_edit_objects", icon_only=True)
- sub = row.row(align=True)
- sub.active = tool_settings.use_proportional_edit_objects
- sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True)
+ kw = {}
+ if object_mode == 'OBJECT':
+ attr = "use_proportional_edit_objects"
+ else:
+ attr = "use_proportional_edit"
- elif gpd is not None and obj.type == 'GPENCIL':
- if gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode:
- row = layout.row(align=True)
- row.prop(tool_settings, "proportional_edit", icon_only=True)
+ if tool_settings.use_proportional_connected:
+ kw["icon"] = 'PROP_CON'
+ elif tool_settings.use_proportional_projected:
+ kw["icon"] = 'PROP_PROJECTED'
- sub = row.row(align=True)
- sub.active = tool_settings.proportional_edit != 'DISABLED'
- sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True)
+ row.prop(tool_settings, attr, icon_only=True, **kw)
+ sub = row.row(align=True)
+ sub.active = getattr(tool_settings, attr)
+ sub.prop_with_popover(
+ tool_settings,
+ "proportional_edit_falloff",
+ text="",
+ icon_only=True,
+ panel="VIEW3D_PT_proportional_edit",
+ )
# grease pencil
if object_mode == 'PAINT_GPENCIL':
@@ -5761,6 +5761,27 @@ class VIEW3D_PT_snapping(Panel):
row.prop(tool_settings, "use_snap_scale", text="Scale", toggle=True)
+class VIEW3D_PT_proportional_edit(Panel):
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'HEADER'
+ bl_label = "Proportional Editing"
+ bl_ui_units_x = 8
+
+ def draw(self, context):
+ layout = self.layout
+ tool_settings = context.tool_settings
+ col = layout.column()
+
+ if context.mode != 'OBJECT':
+ col.prop(tool_settings, "use_proportional_connected")
+ sub = col.column()
+ sub.active = not tool_settings.use_proportional_connected
+ sub.prop(tool_settings, "use_proportional_projected")
+ col.separator()
+
+ col.prop(tool_settings, "proportional_edit_falloff", expand=True)
+
+
class VIEW3D_PT_transform_orientations(Panel):
bl_space_type = 'VIEW_3D'
bl_region_type = 'HEADER'
@@ -6479,6 +6500,7 @@ classes = (
VIEW3D_PT_overlay_sculpt,
VIEW3D_PT_pivot_point,
VIEW3D_PT_snapping,
+ VIEW3D_PT_proportional_edit,
VIEW3D_PT_gpencil_origin,
VIEW3D_PT_gpencil_lock,
VIEW3D_PT_gpencil_guide,