From 809a20dc99581f625d7855690d1463ee45b17042 Mon Sep 17 00:00:00 2001 From: falken10vdl <33285113+falken10vdl@users.noreply.github.com> Date: Fri, 9 May 2025 23:09:37 +0200 Subject: [PATCH] system info copied when clicking in Bonsai Version (#6660) --- src/bonsai/bonsai/bim/__init__.py | 1 + src/bonsai/bonsai/bim/operator.py | 30 ++++++++++++++++++++++++++++++ src/bonsai/bonsai/bim/ui.py | 6 ++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/__init__.py b/src/bonsai/bonsai/bim/__init__.py index adf8b002ca..d144992556 100644 --- a/src/bonsai/bonsai/bim/__init__.py +++ b/src/bonsai/bonsai/bim/__init__.py @@ -123,6 +123,7 @@ classes = [ operator.SelectURIAttribute, operator.SetTab, operator.SwitchTab, + operator.Show_system_info, prop.StrProperty, operator.BIM_OT_enum_property_search, # /!\ Register AFTER prop.StrProperty prop.ObjProperty, diff --git a/src/bonsai/bonsai/bim/operator.py b/src/bonsai/bonsai/bim/operator.py index 0d40334750..8d4d12d6e8 100644 --- a/src/bonsai/bonsai/bim/operator.py +++ b/src/bonsai/bonsai/bim/operator.py @@ -1286,3 +1286,33 @@ class CopyTextToClipboard(bpy.types.Operator): def execute(self, context): context.window_manager.clipboard = self.text return {"FINISHED"} + + +class Show_system_info(bpy.types.Operator): + bl_idname = "bim.show_system_info" + bl_label = "System Info" + bl_options = {"REGISTER", "UNDO"} + + info_text: bpy.props.StringProperty() + + def execute(self, context): + context.window_manager.clipboard = self.info_text + self.report({"INFO"}, "System information copied to clipboard.") + return {"FINISHED"} + + def invoke(self, context, event): + # Invoke the bim.copy_debug_information operator to get the info to the clipboard + bpy.ops.bim.copy_debug_information() + self.info_text = context.window_manager.clipboard + + return context.window_manager.invoke_popup(self, width=600) + + def draw(self, context): + layout = self.layout + col = layout.column() + + for line in self.info_text.split("\n"): + col.label(text=line) + + col.separator() + col.label(text="(The information has been copied to the clipboard.)") diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index 8600668a34..298e3db551 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -1182,8 +1182,10 @@ class UIData: def draw_statusbar(self, context): if not UIData.is_loaded: UIData.load() - text = f"Bonsai v{UIData.data['version']}" - self.layout.label(text=text) + bonsai_version = f"Bonsai v{UIData.data['version']}" + layout = self.layout + row = layout.row() + row.operator("bim.show_system_info", text=bonsai_version, emboss=False) def draw_custom_context_menu(self: bpy.types.Menu, context: bpy.types.Context) -> None: