From 41e13ed7add7c9da0bee0815c22c284c0731a96b Mon Sep 17 00:00:00 2001 From: NBurn Date: Sat, 14 Apr 2018 16:32:06 -0400 Subject: Fix T54585 for MeasureIt: fixes View Local mode --- measureit/__init__.py | 2 +- measureit/measureit_main.py | 41 +++++++++++++++++++++++++---------------- 2 files changed, 26 insertions(+), 17 deletions(-) (limited to 'measureit') diff --git a/measureit/__init__.py b/measureit/__init__.py index 489e0a9e..785eefbf 100644 --- a/measureit/__init__.py +++ b/measureit/__init__.py @@ -29,7 +29,7 @@ bl_info = { "name": "MeasureIt", "author": "Antonio Vazquez (antonioya)", "location": "View3D > Tools Panel /Properties panel", - "version": (1, 7, 0), + "version": (1, 7, 1), "blender": (2, 7, 4), "description": "Tools for measuring objects.", "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/" diff --git a/measureit/measureit_main.py b/measureit/measureit_main.py index 444ade73..457b6e18 100644 --- a/measureit/measureit_main.py +++ b/measureit/measureit_main.py @@ -2011,19 +2011,22 @@ def draw_main(context): rv3d = context.space_data.region_quadviews[i] scene = bpy.context.scene - # Get visible layers + local_view = context.area.spaces.active.local_view is not None layers = [] - if bpy.context.space_data.lock_camera_and_layers is True: - for x in range(0, 20): - if bpy.context.scene.layers[x] is True: - layers.extend([x]) - else: - for x in range(20): - if bpy.context.space_data.layers[x] is True: - layers.extend([x]) + if local_view is False: + # Get visible layers + if bpy.context.space_data.lock_camera_and_layers is True: + for x in range(0, 20): + if bpy.context.scene.layers[x] is True: + layers.extend([x]) + else: + # Lock disabled, use view dependent visible layers + for x in range(20): + if bpy.context.space_data.layers[x] is True: + layers.extend([x]) # Display selected or all - if scene.measureit_gl_ghost is False: + if scene.measureit_gl_ghost is False or local_view is True: objlist = context.selected_objects else: objlist = context.scene.objects @@ -2036,12 +2039,18 @@ def draw_main(context): for myobj in objlist: if myobj.hide is False: if 'MeasureGenerator' in myobj: - # verify visible layer - for x in range(0, 20): - if myobj.layers[x] is True and x in layers: - op = myobj.MeasureGenerator[0] - draw_segments(context, myobj, op, region, rv3d) - break + if local_view is False: + # verify visible layer + for x in range(0, 20): + if myobj.layers[x] is True and x in layers: + op = myobj.MeasureGenerator[0] + draw_segments(context, myobj, op, region, rv3d) + break + else: + # Layer check not needed here, selected objects are not + # added to context.selected_objects if in disabled layers + op = myobj.MeasureGenerator[0] + draw_segments(context, myobj, op, region, rv3d) # --------------------------------------- # Generate all OpenGL calls for debug # --------------------------------------- -- cgit v1.2.3