[Bf-extensions-cvs] [f72ec13e] master: xedit: more 2.80 updates + bug workaround

NBurn noreply at git.blender.org
Fri May 3 01:43:36 CEST 2019


Commit: f72ec13e35dbd635c08ca331c8fac54086b0811d
Author: NBurn
Date:   Thu May 2 19:42:48 2019 -0400
Branches: master
https://developer.blender.org/rBACf72ec13e35dbd635c08ca331c8fac54086b0811d

xedit: more 2.80 updates + bug workaround

Added workaround for T63207.
Additional changes needed before add-on will run under 2.80.

===================================================================

M	exact_edit/__init__.py
M	exact_edit/xedit_set_meas.py

===================================================================

diff --git a/exact_edit/__init__.py b/exact_edit/__init__.py
index 365bd5fa..014a2adc 100644
--- a/exact_edit/__init__.py
+++ b/exact_edit/__init__.py
@@ -43,7 +43,7 @@ import bpy
 class XEDIT_PT_ui_pan(bpy.types.Panel):
     # Creates a panel in the 3d view N Panel
     bl_label = 'Exact Edit'
-    bl_idname = 'xedit_base_panel'
+    bl_idname = 'XEDIT_PT_base_panel'
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     #bl_context = 'objectmode'
@@ -52,8 +52,8 @@ class XEDIT_PT_ui_pan(bpy.types.Panel):
     def draw(self, context):
         row = self.layout.row(align=True)
         col = row.column()
-        col.operator("view3d.xedit_set_meas_op", text="Set Measure", icon="EDIT")
-        col.operator("view3d.xedit_free_rotate_op", text="Free Rotate", icon="FORCE_MAGNETIC")
+        col.operator("view3d.xedit_set_meas_op", text="Set Measure")
+        col.operator("view3d.xedit_free_rotate_op", text="Free Rotate")
 
 
 classes = (
diff --git a/exact_edit/xedit_set_meas.py b/exact_edit/xedit_set_meas.py
index dca44ee0..fbd72c28 100644
--- a/exact_edit/xedit_set_meas.py
+++ b/exact_edit/xedit_set_meas.py
@@ -1106,9 +1106,9 @@ def do_translation(new_co, old_co):
 # takes:  ref_pts (ReferencePoints), s_fac (float)
 def do_scale(ref_pts, s_fac):
     # back up settings before changing them
-    piv_back = deepcopy(bpy.context.space_data.pivot_point)
+    piv_back = deepcopy(bpy.context.tool_settings.transform_pivot_point)
     curs_back = bpy.context.scene.cursor.location.copy()
-    bpy.context.space_data.pivot_point = 'CURSOR'
+    bpy.context.tool_settings.transform_pivot_point = 'CURSOR'
     bpy.context.scene.cursor.location = ref_pts[1].co3d.copy()
     ax_multip, cnstrt_bls = (), ()
     if   RotDat.axis_lock is None:
@@ -1122,7 +1122,7 @@ def do_scale(ref_pts, s_fac):
     bpy.ops.transform.resize(value=ax_multip, constraint_axis=cnstrt_bls)
     # restore settings back to their pre "do_scale" state
     bpy.context.scene.cursor.location = curs_back.copy()
-    bpy.context.space_data.pivot_point = deepcopy(piv_back)
+    bpy.context.tool_settings.transform_pivot_point = deepcopy(piv_back)
 
 
 # end_a, piv_pt, and end_b are Vector based 3D coordinates
@@ -1243,9 +1243,9 @@ def prep_rotation_info(curr_ms_stor, new_ms_stor):
 # 3D cursor using RotDat's ang_diff_r radian value.
 def do_rotate(self):
     # back up settings before changing them
-    piv_back = deepcopy(bpy.context.space_data.pivot_point)
+    piv_back = deepcopy(bpy.context.tool_settings.transform_pivot_point)
     curs_back = bpy.context.scene.cursor.location.copy()
-    bpy.context.space_data.pivot_point = 'CURSOR'
+    bpy.context.tool_settings.transform_pivot_point = 'CURSOR'
     bpy.context.scene.cursor.location = self.pts[2].co3d.copy()
     
     axis_lock = RotDat.axis_lock
@@ -1266,7 +1266,7 @@ def do_rotate(self):
 
     # restore settings back to their pre "do_rotate" state
     bpy.context.scene.cursor.location = curs_back.copy()
-    bpy.context.space_data.pivot_point = deepcopy(piv_back)
+    bpy.context.tool_settings.transform_pivot_point = deepcopy(piv_back)
 
 
 # Updates lock points and changes curr_meas_stor to use measure based on
@@ -1458,20 +1458,6 @@ def draw_callback_px(self, context):
     lk_pts2d = None  # lock points 2D
     self.meas_btn.is_drawn = False  # todo : cleaner btn activation
 
-    # if the addon_mode is WAIT_FOR_POPUP, wait on POPUP to disable
-    # popup_active, then run process_popup_input
-    # would prefer not to do pop-up check inside draw_callback, but not sure
-    # how else to check for input. need higher level "input handler" class?
-    if self.addon_mode == WAIT_FOR_POPUP:
-        global popup_active
-        if not popup_active:
-            process_popup_input(self)
-            set_help_text(self, "CLICK")
-        
-    elif self.addon_mode == GET_0_OR_180:
-        choose_0_or_180(RotDat.lock_pts[2], RotDat.rot_pt_pos,
-                RotDat.rot_pt_neg, RotDat.ang_diff_r, self.mouse_co)
-
     # note, can't chain above if-elif block in with one below as
     # it breaks axis lock drawing
     if self.grab_pt is not None:  # not enabled if mod_pt active
@@ -1582,9 +1568,9 @@ def get_reg_overlap():
     return rtoolsw
 
 
-class XEditSetMeas(bpy.types.Operator):
+class XEDIT_OT_set_meas(bpy.types.Operator):
     bl_idname = "view3d.xedit_set_meas_op"
-    bl_label = "XEdit Set Measaure"
+    bl_label = "Exact Edit Set Measure"
 
     # Only launch Add-On from OBJECT or EDIT modes
     @classmethod
@@ -1592,6 +1578,7 @@ class XEditSetMeas(bpy.types.Operator):
         return context.mode == 'OBJECT' or context.mode == 'EDIT_MESH'
 
     def modal(self, context, event):
+        global popup_active
         context.area.tag_redraw()
 
         if event.type in {'A', 'MIDDLEMOUSE', 'WHEELUPMOUSE',
@@ -1873,6 +1860,19 @@ class XEditSetMeas(bpy.types.Operator):
             exit_addon(self)
             return {'FINISHED'}
 
+        # if the addon_mode is WAIT_FOR_POPUP, wait on POPUP to disable
+        # popup_active, then run process_popup_input
+        # would prefer not to do pop-up check inside draw_callback, but not sure
+        # how else to check for input. need higher level "input handler" class?
+        if self.addon_mode == WAIT_FOR_POPUP:
+            if not popup_active:
+                process_popup_input(self)
+                set_help_text(self, "CLICK")
+  
+        elif self.addon_mode == GET_0_OR_180:
+            choose_0_or_180(RotDat.lock_pts[2], RotDat.rot_pt_pos,
+                    RotDat.rot_pt_neg, RotDat.ang_diff_r, self.mouse_co)
+
         return {'RUNNING_MODAL'}
 
     def invoke(self, context, event):



More information about the Bf-extensions-cvs mailing list