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>2018-12-19 14:36:33 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-12-19 14:45:36 +0300
commit2af0ec9457b2997e1e903f284dd48bae6534682b (patch)
tree863b1befb6caecc590187ed8ed855e895ae819a4 /release
parent25fcb44d2db2837b611aefb43207fc011b68a34a (diff)
UI: move gizmo orientation settings into popover
Instead of link toggle with enum, use a single popover that contains both settings. The code for this isn't nice - needing 3x panels for now. See D4075
Diffstat (limited to 'release')
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py24
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py37
2 files changed, 55 insertions, 6 deletions
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 590d4299968..6a2de414ae7 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -67,13 +67,25 @@ class _template_widget:
class TRANSFORM_GGT_gizmo:
@staticmethod
def draw_settings_with_index(context, layout, index):
- row = layout.row(align=True)
scene = context.scene
- orientation_slot = scene.transform_orientation_slots[index]
- value = orientation_slot.use
- row.prop(orientation_slot, "use", text="", icon='LINKED' if value else 'UNLINKED')
- if not value:
- row.prop(orientation_slot, "type", text="")
+ orient_slot = scene.transform_orientation_slots[index]
+ use_global = orient_slot.use_global
+ row = layout.row(align=True)
+
+ row.label(text="Orientation:")
+
+ popover_kw = {
+ "panel": "VIEW3D_PT_transform_orientations_gizmo_" f"{index}",
+ }
+
+ if use_global:
+ popover_kw["text"], popover_kw["icon"] = "Scene", 'OBJECT_ORIGIN'
+ else:
+ popover_kw["text"], popover_kw["icon_value"] = orient_slot.ui_info()
+
+ sub = layout.row()
+ sub.ui_units_x = 4
+ sub.popover(**popover_kw)
class _defs_view3d_generic:
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 7922cdb90ec..ce2fa8a51e4 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -5270,6 +5270,40 @@ class VIEW3D_PT_transform_orientations(Panel):
row.operator("transform.delete_orientation", text="", icon='X', emboss=False)
+# XXX, each panel needs to access a different orientation index.
+# look into a way to pass this from the UI that draws it.
+def VIEW3D_PT_transform_orientations_gizmo_factory(index):
+ class VIEW3D_PT_transform_orientations_other_n(Panel):
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'HEADER'
+ bl_label = "Transform Orientations"
+ bl_ui_units_x = 8
+ bl_idname = "VIEW3D_PT_transform_orientations_gizmo_" + str(index)
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.label(text="Transform Orientations")
+
+ scene = context.scene
+ orient_slot = scene.transform_orientation_slots[index]
+
+ layout.prop(orient_slot, "use_global", text="Scene Orientation", icon='OBJECT_ORIGIN')
+ use_global = orient_slot.use_global
+
+ col = layout.column()
+ col.active = not use_global
+ col.column().prop(orient_slot, "type", expand=True)
+
+ # Only 'VIEW3D_PT_transform_orientations' can edit
+
+ return VIEW3D_PT_transform_orientations_other_n
+
+VIEW3D_PT_transform_orientations_gizmo_1 = VIEW3D_PT_transform_orientations_gizmo_factory(1)
+VIEW3D_PT_transform_orientations_gizmo_2 = VIEW3D_PT_transform_orientations_gizmo_factory(2)
+VIEW3D_PT_transform_orientations_gizmo_3 = VIEW3D_PT_transform_orientations_gizmo_factory(3)
+
+
class VIEW3D_PT_gpencil_origin(Panel):
bl_space_type = 'VIEW_3D'
bl_region_type = 'HEADER'
@@ -5782,6 +5816,9 @@ classes = (
VIEW3D_PT_gpencil_origin,
VIEW3D_PT_gpencil_lock,
VIEW3D_PT_transform_orientations,
+ VIEW3D_PT_transform_orientations_gizmo_1,
+ VIEW3D_PT_transform_orientations_gizmo_2,
+ VIEW3D_PT_transform_orientations_gizmo_3,
VIEW3D_PT_overlay_gpencil_options,
VIEW3D_PT_context_properties,
TOPBAR_PT_gpencil_materials,