From 6a8dc9bdec8167775611ad6304d2d23f46a7d145 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 16 Jan 2010 14:31:21 +0000 Subject: [PATCH] - UV header sync selection vert/edge/face buttons were displayed as 3 tickboxes - fix for all of them being able to be disabled at once. - 3D header now uses the rna buttons. --- release/scripts/ui/space_image.py | 65 ++++++++++--------- release/scripts/ui/space_view3d.py | 8 ++- .../editors/space_view3d/view3d_header.c | 13 ---- source/blender/makesrna/intern/rna_scene.c | 14 ++-- 4 files changed, 49 insertions(+), 51 deletions(-) diff --git a/release/scripts/ui/space_image.py b/release/scripts/ui/space_image.py index 894ec60bb64..0a8784732a6 100644 --- a/release/scripts/ui/space_image.py +++ b/release/scripts/ui/space_image.py @@ -30,7 +30,7 @@ class IMAGE_MT_view(bpy.types.Menu): sima = context.space_data # uv = sima.uv_editor - settings = context.tool_settings + toolsettings = context.tool_settings show_uvedit = sima.show_uvedit @@ -40,7 +40,7 @@ class IMAGE_MT_view(bpy.types.Menu): layout.prop(sima, "update_automatically") if show_uvedit: - layout.prop(settings, "uv_local_view") # Numpad / + layout.prop(toolsettings, "uv_local_view") # Numpad / layout.separator() @@ -201,7 +201,7 @@ class IMAGE_MT_uvs(bpy.types.Menu): sima = context.space_data uv = sima.uv_editor - settings = context.tool_settings + toolsettings = context.tool_settings layout.prop(uv, "snap_to_pixels") layout.prop(uv, "constrain_to_image_bounds") @@ -230,8 +230,8 @@ class IMAGE_MT_uvs(bpy.types.Menu): layout.separator() - layout.prop_menu_enum(settings, "proportional_editing") - layout.prop_menu_enum(settings, "proportional_editing_falloff") + layout.prop_menu_enum(toolsettings, "proportional_editing") + layout.prop_menu_enum(toolsettings, "proportional_editing_falloff") layout.separator() @@ -247,7 +247,7 @@ class IMAGE_HT_header(bpy.types.Header): sima = context.space_data ima = sima.image iuser = sima.image_user - settings = context.tool_settings + toolsettings = context.tool_settings # show_render = sima.show_render # show_paint = sima.show_paint @@ -279,22 +279,25 @@ class IMAGE_HT_header(bpy.types.Header): uvedit = sima.uv_editor layout.prop(uvedit, "pivot", text="", icon_only=True) - layout.prop(settings, "uv_sync_selection", text="") + layout.prop(toolsettings, "uv_sync_selection", text="") - if settings.uv_sync_selection: - layout.prop(settings, "mesh_selection_mode", text="", expand=True) + if toolsettings.uv_sync_selection: + row = layout.row(align=True) + row.prop(toolsettings, "mesh_selection_mode", text="", index=0, icon='VERTEXSEL') + row.prop(toolsettings, "mesh_selection_mode", text="", index=1, icon='EDGESEL') + row.prop(toolsettings, "mesh_selection_mode", text="", index=2, icon='FACESEL') else: - layout.prop(settings, "uv_selection_mode", text="", expand=True) + layout.prop(toolsettings, "uv_selection_mode", text="", expand=True) layout.prop(uvedit, "sticky_selection_mode", text="", icon_only=True) row = layout.row(align=True) - row.prop(settings, "proportional_editing", text="", icon_only=True) - if settings.proportional_editing != 'DISABLED': - row.prop(settings, "proportional_editing_falloff", text="", icon_only=True) + row.prop(toolsettings, "proportional_editing", text="", icon_only=True) + if toolsettings.proportional_editing != 'DISABLED': + row.prop(toolsettings, "proportional_editing_falloff", text="", icon_only=True) row = layout.row(align=True) - row.prop(settings, "snap", text="") - row.prop(settings, "snap_element", text="", icon_only=True) + row.prop(toolsettings, "snap", text="") + row.prop(toolsettings, "snap_element", text="", icon_only=True) # mesh = context.edit_object.data # row.prop_object(mesh, "active_uv_layer", mesh, "uv_textures") @@ -455,24 +458,24 @@ class IMAGE_PT_paint(bpy.types.Panel): def draw(self, context): layout = self.layout - settings = context.tool_settings.image_paint - brush = settings.brush + toolsettings = context.tool_settings.image_paint + brush = toolsettings.brush wide_ui = context.region.width > narrowui col = layout.split().column() row = col.row() - row.template_list(settings, "brushes", settings, "active_brush_index", rows=2) + row.template_list(toolsettings, "brushes", toolsettings, "active_brush_index", rows=2) - col.template_ID(settings, "brush", new="brush.add") + col.template_ID(toolsettings, "brush", new="brush.add") if wide_ui: sub = layout.row(align=True) else: sub = layout.column(align=True) - sub.prop_enum(settings, "tool", 'DRAW') - sub.prop_enum(settings, "tool", 'SOFTEN') - sub.prop_enum(settings, "tool", 'CLONE') - sub.prop_enum(settings, "tool", 'SMEAR') + sub.prop_enum(toolsettings, "tool", 'DRAW') + sub.prop_enum(toolsettings, "tool", 'SOFTEN') + sub.prop_enum(toolsettings, "tool", 'CLONE') + sub.prop_enum(toolsettings, "tool", 'SMEAR') if brush: col = layout.column() @@ -502,14 +505,14 @@ class IMAGE_PT_paint_stroke(bpy.types.Panel): def poll(self, context): sima = context.space_data - settings = context.tool_settings.image_paint - return sima.show_paint and settings.brush + toolsettings = context.tool_settings.image_paint + return sima.show_paint and toolsettings.brush def draw(self, context): layout = self.layout - settings = context.tool_settings.image_paint - brush = settings.brush + toolsettings = context.tool_settings.image_paint + brush = toolsettings.brush layout.prop(brush, "use_airbrush") col = layout.column() @@ -531,14 +534,14 @@ class IMAGE_PT_paint_curve(bpy.types.Panel): def poll(self, context): sima = context.space_data - settings = context.tool_settings.image_paint - return sima.show_paint and settings.brush + toolsettings = context.tool_settings.image_paint + return sima.show_paint and toolsettings.brush def draw(self, context): layout = self.layout - settings = context.tool_settings.image_paint - brush = settings.brush + toolsettings = context.tool_settings.image_paint + brush = toolsettings.brush layout.template_curve_mapping(brush, "curve") layout.operator_menu_enum("brush.curve_preset", property="shape") diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py index 4e394839166..af0e2ec7879 100644 --- a/release/scripts/ui/space_view3d.py +++ b/release/scripts/ui/space_view3d.py @@ -30,7 +30,7 @@ class VIEW3D_HT_header(bpy.types.Header): mode_string = context.mode edit_object = context.edit_object obj = context.active_object - toolsettings = context.scene.tool_settings + toolsettings = context.tool_settings row = layout.row() row.template_header() @@ -56,6 +56,12 @@ class VIEW3D_HT_header(bpy.types.Header): row.template_header_3D() + if obj and obj.mode == 'EDIT' and obj.type == 'MESH': + row_sub = row.row(align=True) + row_sub.prop(toolsettings, "mesh_selection_mode", text="", index=0, icon='VERTEXSEL') + row_sub.prop(toolsettings, "mesh_selection_mode", text="", index=1, icon='EDGESEL') + row_sub.prop(toolsettings, "mesh_selection_mode", text="", index=2, icon='FACESEL') + # Particle edit if obj and obj.mode == 'PARTICLE_EDIT': row.prop(toolsettings.particle_edit, "selection_mode", text="", expand=True, toggle=True) diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 98f0f2fec65..3ef6166bc7c 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -533,17 +533,4 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) /* Scene lock */ uiItemR(layout, "", 0, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY); } - - /* selection modus */ - if(obedit && (obedit->type == OB_MESH)) { - EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); - - row= uiLayoutRow(layout, 1); - block= uiLayoutGetBlock(row); - uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_SEL_VERT, ICON_VERTEXSEL, 0,0,XIC,YIC, &em->selectmode, 1.0, 0.0, 0, 0, "Vertex select mode"); - uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_SEL_EDGE, ICON_EDGESEL, 0,0,XIC,YIC, &em->selectmode, 1.0, 0.0, 0, 0, "Edge select mode"); - uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_SEL_FACE, ICON_FACESEL, 0,0,XIC,YIC, &em->selectmode, 1.0, 0.0, 0, 0, "Face select mode"); - - BKE_mesh_end_editmesh(obedit->data, em); - } } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 3d36dbedd19..d68ac2ce14c 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -606,13 +606,15 @@ static void rna_Scene_editmesh_select_mode_set(PointerRNA *ptr, const int *value ToolSettings *ts = (ToolSettings*)ptr->data; int flag = (value[0] ? SCE_SELECT_VERTEX:0) | (value[1] ? SCE_SELECT_EDGE:0) | (value[2] ? SCE_SELECT_FACE:0); - ts->selectmode = flag; + if(flag) { + ts->selectmode = flag; - if(scene->basact) { - Mesh *me= get_mesh(scene->basact->object); - if(me && me->edit_mesh && me->edit_mesh->selectmode != flag) { - me->edit_mesh->selectmode= flag; - EM_selectmode_set(me->edit_mesh); + if(scene->basact) { + Mesh *me= get_mesh(scene->basact->object); + if(me && me->edit_mesh && me->edit_mesh->selectmode != flag) { + me->edit_mesh->selectmode= flag; + EM_selectmode_set(me->edit_mesh); + } } } }