Page MenuHome

Changing values in custom Repeat Last panel does not update object
Closed, InvalidPublic

Description

System Information
Operating system and graphics card

Blender Version
Broken: (example: 2.69.7 4b206af, see splash screen)
Worked: (optional)

2.77a

Short description of error

Changing values in custom created Redo Last panel does not update the object

Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps

Load and run the attached script. The panel will open in the properties sidebar. Then create a sphere. Change the ring count in the custom Redo Last panel. The value in the original Redo Last panel will update. But not the object.

Not sure if this is a bug. Or if i do something wrong here with my script. I haven't found any useful information about the topic. If it is a user error, then apologies.

I have created a custom Redo Last panel. I want to free the space in the Tool Shelf for the tools to reduce the scrolling in this area. My custom panel shows most of the things from the Redo last panel in the Tool Shelf, plus minus a few things. The code is pretty simple. I get the content with a for loop that goes through window_manager.operators. properties. And that way i get the elements from the original Redo Last panel.

The problem is, when i change a value in my custom panel, then the object does not update. What updates is the value in the original Redo Last panel. But the object stays as it is. I have to change the values in the original Redo Last panel to get my object updated. The connection between the custom panel and the original panel is definitely there though. Here the values influences each other. And that's why i think it could be a bug.

You can also follow that the last step is missing in the info area. When you change in the original panel let's say the ring count at a sphere, then you get a " bpy.data.window_managers["WinMan"].(null) = 16 " followed by a " bpy.ops.mesh.primitive_uv_sphere_add () ... " , which updates the object then. When i do this step with my custom panel then i just get the bpy.data.window_managers["WinMan"].(null) = 16 command. The command to update the object is missing.

Kind regards

Reiner

Details

Type
Bug

Event Timeline

Bastien Montagne (mont29) closed this task as Invalid.
Bastien Montagne (mont29) claimed this task.

This is not designed to work that way… built-in undo/redo panel is defined in C with some specific code to undo & redo with new settings the last op, not sure you can mimic this from python (maybe by adding update callbacks to all your drawn properties, which would call bpy.ops.ed.undo() and then bpy.ops.ed.redo() ?)…

In any case, no bug here, there is no 'magic' automatic handling of this feature.

Thanks for the info :)