BlenderKit: fix unregister - removing draw progress handlers

This commit is contained in:
Vilem Duha 2019-04-04 00:34:43 +02:00
parent c3c7663ed4
commit 449e2c4072
1 changed files with 15 additions and 9 deletions

View File

@ -42,6 +42,9 @@ from mathutils import Vector
import time
import os
handler_2d = None
handler_3d = None
mappingdict = {
'MODEL': 'model',
'SCENE': 'scene',
@ -1132,7 +1135,7 @@ class AssetBarOperator(bpy.types.Operator):
if ui_props.has_hit and ui_props.asset_type == 'MODEL':
# this condition is here to fix a bug for a scene submitted by a user, so this situation shouldn't
# happen anymore, but there might exists scenes which have this problem for some reason.
if ui_props.active_index<len(sr) and ui_props.active_index>-1:
if ui_props.active_index < len(sr) and ui_props.active_index > -1:
ui_props.draw_snapped_bounds = True
active_mod = sr[ui_props.active_index]
ui_props.snapped_bbox_min = Vector(active_mod['bbox_min'])
@ -1338,7 +1341,7 @@ class AssetBarOperator(bpy.types.Operator):
pass
return {'FINISHED'}
ui_props.dragging = False #only for cases where assetbar ended with an error.
ui_props.dragging = False # only for cases where assetbar ended with an error.
ui_props.assetbar_on = True
ui_props.turn_off = False
@ -1383,12 +1386,15 @@ addon_keymaps = []
def register_ui():
global handler_2d, handler_3d
for c in classess:
bpy.utils.register_class(c)
args = (None, bpy.context)
bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
handler_2d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
handler_3d = bpy.types.SpaceView3D.draw_handler_add(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
wm = bpy.context.window_manager
@ -1404,16 +1410,16 @@ def register_ui():
def unregister_ui():
global handler_2d, handler_3d
for c in classess:
bpy.utils.unregister_class(c)
args = (None, bpy.context)
try:
bpy.types.SpaceView3D.draw_handler_remove(draw_callback_2d_progress, args, 'WINDOW', 'POST_PIXEL')
bpy.types.SpaceView3D.draw_handler_remove(draw_callback_3d_progress, args, 'WINDOW', 'POST_VIEW')
except:
print('handlers allready removed')
bpy.types.SpaceView3D.draw_handler_remove(handler_2d, 'WINDOW')
bpy.types.SpaceView3D.draw_handler_remove(handler_3d, 'WINDOW')
wm = bpy.context.window_manager
if not wm.keyconfigs.addon:
return