[Bf-blender-cvs] [46194c68cf8] temp-spreadsheet-editor-python-prototyping: draw rna properties
Jacques Lucke
noreply at git.blender.org
Fri Mar 5 12:55:05 CET 2021
Commit: 46194c68cf89c64e35dcdb2a4d436105fc3d8e93
Author: Jacques Lucke
Date: Fri Mar 5 12:54:56 2021 +0100
Branches: temp-spreadsheet-editor-python-prototyping
https://developer.blender.org/rB46194c68cf89c64e35dcdb2a4d436105fc3d8e93
draw rna properties
===================================================================
M release/scripts/modules/bpy_spreadsheet.py
M source/blender/editors/space_spreadsheet/spreadsheet_from_python.cc
===================================================================
diff --git a/release/scripts/modules/bpy_spreadsheet.py b/release/scripts/modules/bpy_spreadsheet.py
index 1064f42ca26..63786aa139b 100644
--- a/release/scripts/modules/bpy_spreadsheet.py
+++ b/release/scripts/modules/bpy_spreadsheet.py
@@ -19,26 +19,28 @@
import bpy
class SpreadsheetDrawer:
+ def __init__(self):
+ self.objects = list(bpy.context.selected_objects)
+
def get_row_amount(self):
- return 10
+ return len(self.objects)
def get_column_amount(self):
- return 3
+ return 2
def get_top_row_cell(self, column_index):
- return "Column: " + str(column_index)
+ return ("Name", "Pass Index")[column_index]
def get_left_column_cell(self, row_index):
- return row_index + 100
+ return row_index
def get_content_cell(self, row_index, column_index):
- return row_index * column_index + 10
-
-registered_drawers = {}
+ ob = self.objects[row_index]
+ if column_index == 0:
+ return (ob, "name")
+ elif column_index == 1:
+ return (ob, "pass_index")
-def register_spreadsheet_drawer(spreadsheet_space: bpy.types.SpaceSpreadsheet, drawer: SpreadsheetDrawer):
- registered_drawers[id(spreadsheet_space)] = drawer
def get_spreadsheet_drawer(spreadsheet_space: bpy.types.SpaceSpreadsheet):
return SpreadsheetDrawer()
- # return registered_drawers.get(id(spreadsheet_space))
diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_from_python.cc b/source/blender/editors/space_spreadsheet/spreadsheet_from_python.cc
index c0dca445e63..01703bbaacb 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_from_python.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_from_python.cc
@@ -136,6 +136,24 @@ class PythonSpreadsheetDrawer : public SpreadsheetDrawer {
0,
nullptr);
}
+ if (PyTuple_Check(py_cell_content)) {
+ PyObject *py_rna_ptr = PyTuple_GetItem(py_cell_content, 0);
+ PyObject *py_name = PyTuple_GetItem(py_cell_content, 1);
+ const char *prop_name = PyUnicode_AsUTF8(py_name);
+ BPy_StructRNA *py_struct_rna = (BPy_StructRNA *)py_rna_ptr;
+ PointerRNA ptr = py_struct_rna->ptr;
+ PropertyRNA *prop = RNA_struct_find_property(&ptr, prop_name);
+ uiDefAutoButR(params.block,
+ &ptr,
+ prop,
+ -1,
+ "",
+ ICON_NONE,
+ params.xmin,
+ params.ymin,
+ params.width,
+ params.height);
+ }
}
};
More information about the Bf-blender-cvs
mailing list