diff --git a/src/blenderbim/blenderbim/bim/module/search/operator.py b/src/blenderbim/blenderbim/bim/module/search/operator.py index 960611f6ee..a1d8af4434 100644 --- a/src/blenderbim/blenderbim/bim/module/search/operator.py +++ b/src/blenderbim/blenderbim/bim/module/search/operator.py @@ -66,7 +66,14 @@ def does_keyword_exist(pattern, string, context): elif string == pattern: return True - +# hack to close popup +# https://blender.stackexchange.com/a/202576/130742 +def close_operator_panel(event): + x, y = event.mouse_x, event.mouse_y + bpy.context.window.cursor_warp(10, 10) + move_back = lambda: bpy.context.window.cursor_warp(x, y) + bpy.app.timers.register(move_back, first_interval=0.01) + class EditBlenderCollection(Operator): bl_idname = "bim.edit_blender_collection" bl_label = "Add or Remove blender collection item" @@ -563,7 +570,6 @@ class FilterModelElements(Operator): class IfcSelector(Operator): """Select elements in model with IFC Selector""" - bl_idname = "bim.ifc_selector" bl_label = "Select elements with IFC Selector" @@ -604,19 +610,11 @@ class SaveSelectorQuery(Operator): class OpenQueryLibrary(Operator): """Open Query Library""" - bl_idname = "bim.open_query_library" bl_label = "Open Query Library" def invoke(self, context, event): - return context.window_manager.invoke_props_dialog(self, width=400) - - def close_panel(event): - x, y = event.mouse_x, event.mouse_y - bpy.context.window.cursor_warp(10, 10) - - move_back = lambda: bpy.context.window.cursor_warp(x, y) - bpy.app.timers.register(move_back, first_interval=0.001) + return context.window_manager.invoke_popup(self, width=400) def draw(self, context): layout = self.layout @@ -643,6 +641,10 @@ class LoadQuery(Operator): bl_label = "Load Query" index: IntProperty() + def invoke(self, context, event): + close_operator_panel(event) + return self.execute(context) + def execute(self, context): ifc_selector = context.scene.IfcSelectorProperties ifc_selector.selector_query_syntax = ifc_selector.query_library[self.index].query diff --git a/src/blenderbim/blenderbim/bim/module/search/ui.py b/src/blenderbim/blenderbim/bim/module/search/ui.py index 8a040a8878..0d0b1be7ca 100644 --- a/src/blenderbim/blenderbim/bim/module/search/ui.py +++ b/src/blenderbim/blenderbim/bim/module/search/ui.py @@ -153,10 +153,7 @@ class IfcSelectorUI: row = layout.row(align=True) row.alignment = "CENTER" row.operator("bim.save_selector_query", text="Save Query") - row.operator("bim.open_query_library", text="Load Query") - - row = layout.row(align=True) - row.alignment = "CENTER" + op = row.operator("bim.open_query_library", text="Load Query") row.operator("bim.add_to_ifc_group", text="Add to IFC Group") def draw_query_group_ui(self, ifc_selector, layout):