From 9713cc0c2ea74f671925fac42d28b081adc231d5 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 23 Jul 2024 17:24:03 +0500 Subject: [PATCH] operator to quickly restart blender --- .../blenderbim/bim/module/debug/__init__.py | 1 + .../blenderbim/bim/module/debug/operator.py | 12 ++++++++++++ src/blenderbim/blenderbim/bim/module/debug/ui.py | 3 +++ 3 files changed, 16 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/debug/__init__.py b/src/blenderbim/blenderbim/bim/module/debug/__init__.py index ec0460699d..4a056d9dcf 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/debug/__init__.py @@ -36,6 +36,7 @@ classes = ( operator.ProfileImportIFC, operator.PurgeHdf5Cache, operator.PurgeUnusedElementsByClass, + operator.RestartBlender, operator.RewindInspector, operator.SelectExpressFile, operator.SelectHighPolygonMeshes, diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index 71f5817982..94dcaaf4ea 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -770,3 +770,15 @@ class ToggleDetailedIOSLogs(bpy.types.Operator): wrapper.turn_off_detailed_logging() self.report({"INFO"}, "Detailed IfcOpenShell logs turned off.") return {"FINISHED"} + + +class RestartBlender(bpy.types.Operator): + bl_idname = "bim.restart_blender" + bl_label = "Restart Blender" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + import os + + path = bpy.app.binary_path + os.execv(path, sys.argv) diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index 044756163a..88e9011f86 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -78,6 +78,9 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator("bim.toggle_detailed_ios_logs") + row = layout.row() + row.operator("bim.restart_blender") + row = layout.split(factor=0.5, align=True) row.operator("bim.create_shape_from_step_id").should_include_curves = False row.operator("bim.create_shape_from_step_id", text="", icon="IPO_ELASTIC").should_include_curves = True