User:HooglyBoogly/Reports/2020/

December 28 - January 3

Another relatively slow week, with not many people around. I spent some time working on curve code cleanup. I won't commit any of it for 2.92, but I did add some curve regression tests so I can make changes more confidently. I'll add to it in the future. Working on curves is basically a personal project (no one asked me to do it), but I'm thinking it relates tangentially to geometry nodes-- I would like to make the bevel node for custom profiles a real "curve geometry component", which could be generated in a separate curve profile node.

Some basic automatic regression tests to support cleanup of the curve code and potential refactoring

Other than that I fixed a few smaller bugs, and spent a fair amount of time discussing with contributors making geometry nodes. I also spent some time on review.

Commits

  • Add regression tests for curve conversion to mesh 8373f497bd, rBL62535
  • Fix T84029: Point Distribution node crash on mesh with no faces 0da1fc2fc4
  • Fix T84024: Empty image opacity labeled transparency 057a8afb87
  • Cleanup: Fix typo in tests error message 761ef45a24


Review

  • [Requested changes] D9678: Bevel on curves does not create distorted geometry anymore
  • [Commented] D9957: Changes to bypass the round trip through BMesh for Exact Boolean.
  • [Made changes, committed] D9537: Add operator to copy a modifier to all selected objects
  • [Requested changes] D9964: Geometry Nodes: Plane Primitive Node
  • [Commented] D9969: Geometry Nodes: Initial Port of the Mirror Modifier for Geomerty Nodes
  • [Accepted, committed] D9962: Fix unreported: Sequencer grid lines are not drawn
  • [Accepted] D9960: Cleanup: Use LISTBASE_FOREACH macro


New in Review

  • D9966: Cleanup: Remove remaining unused code for DispList "bevel_split"
  • D9944: UI: Error in UI_GetThemeColorBlendShade4fv function when calculating Alpha


Tracker

  • Investigated: 5
  • Invalid: 2
  • Duplicate: 3
  • Confirmed: 1


Next Week

Bug sprint week. I'm hoping to be able to discuss some thoughts I've had over the past few weeks with the geometry nodes team too. If I have "extra" time I'll probably spend some of it working on getting bevel and curves working in the node tree.

December 21 - 27

This was a relatively short week. Without other developers around to discuss ideas with, help make architecture decisions, and review code, it's pretty difficult to get much of anything done. And I have so many open patches that aren't getting reviewed that it would be counterproductive to start anything new. That dynamic made the week a bit dull, but I still made some progress on various projects:

  • Write the vector math node for geometry nodes.
  • Rewrite fuzzy search matching for property search.
  • Use normals for the rotation of instanced points in the point distribute node. Just a prototype for now.
  • Explore edit mode for point cloud objects, though I didn't get much done here besides the very basics.
  • Write my idea of edge-panning while dragging in the timeline in a less hacky way.
Prototype for using face normals for instance rotations


Commits


Review

  • [Requested changes] D9678: Bevel on curves does not create distorted geometry anymore
  • [Commented] D9684: Fix T80979: Fixed the bevel distortion issue at bends
  • [Accepted] D9924: Cleanup: Fixes for labels and descriptions in various places
  • [Accepted, committed] D9923: Cleanup: Spelling compound words
  • [Accepted, committed] D9922: Cleanup: Fix capitalization in various places
  • [Accepted] D9904: Cleanup: "Warning" in tooltips/description, use unified format
  • [Accepted] D9910: Cleanup: use of the term "Metaballs"
  • [Requested changes, accepted] D9905: Cleanup: Remove redundant WPaint, Procedural prefixes in labels


New in Review

  • D9914: Geometry Nodes: Attribute Vector Math Node
  • D9919: Update addons for D9697 "_RNA_UI" removal
  • D9920: Fix T84024: Empty image opacity labeled transparency


Tracker

  • Investigated: 6
  • Invalid: 3
  • Confirmed: 1
  • Needs Information: 1


Next Week

I'm not sure who is going to be around this coming week, what I work on will probably depend on that. Either way, I'll probably try to spend more time finishing existing projects of mine.

December 14 - 20

This week was mainly spent trying to finish up existing projects-- the nodes I was working on last week and other geometry nodes patches, UI stuff, review. I was successful at finishing some of it, but of course new stuff piled on too. We finished up the geometry nodes sprint relatively successfully though. Other than that I tried to spend plenty of time reviewing UI patches. I think that effort was pretty successful because the total didn't go up, it's still at 214.

Commits to master

  • Geometry Nodes: Point separate and attribute compare nodes 48ddb94a26
  • Geometry Nodes: Make random attribute node stable c9f8f7915f
  • Geometry Nodes: Input data type utility function 49ec3cef69
  • Geometry Nodes: Boolean attribute type c484b54453, a8da70f70a
  • Outliner: Set active modifier on click 095b693614
  • UI: Rename "Float Color" attribute data type to "Color" 7bee1489c1
  • UI: Slightly improve alignment in selection tool icons 16527ebaba
  • Fix T83868: Button animation states no longer visible without emboss 6942dd9f49
  • Fix T83861: Snapping panel from shortcut dissapears after click 9f588432e9
  • Fix incorrect RNA type warning 20bc1ab275
  • Blenloader: Add utility function to write double array 26e9c2147e
  • Cleanup: Use abstraction for attribute math node input 23233fcf05
  • Cleanup: Use LISTBASE_FOREACH macro, reduce variable scope 7470c10601
  • Cleanup: Use typedef for UI emboss type enum 09be4a0917
  • Cleanup: Declare variables where initialized e298339289
  • Cleanup: Remove unused variables from the bNode struct c106b07e23, 002722bb80
  • Cleanup: Various clang tidy warnings 9dbc014af7
  • Cleanup: Reduce variable scope 15f2f69694
  • Cleanup: Clang tidy else after return 8df167873a
  • Cleanup: Use nullptr instead of NULL in C++ code d59e87acf0
  • Cleanup: Use bool instead of int 6be9747b96
  • Cleanup: Use true and false for booleans 6367bc716a
  • Cleanup: Correct comment c229d9876b


Review

  • [Requested changes, accepted] D9537: Copy a single modifier to all selected objects.
  • [Requested changes] D9758: UI: Properties editor popover & outliner sync dropdown
  • [Commented] D9865: UI: Popover triangle alignment tweaks
  • [Requested changes, accepted] D9883: Geometry Nodes: new Rotate Points node
  • [Requested changes, accepted] D9751: VSE: Add Overlay Popovers.
  • [Requested changes] D9813: Sculpt / Paint: show "Show Texture in texture tab" button
  • [Accepted] D9861: Geometry Nodes: New Attribute Color Ramp node
  • [Accepted, committed] D9909: Fix for T83989 Geometry Nodes: Attribute Math Node Always Adds Its Operands Regardless of the Operator Setting
  • [Accepted, committed] D7142: Rendering workspace: Slot, View Layer & Combined drop downs, displaying label before data
  • [Accepted, committed] D9874: UI: Fix text padding in the List widget
  • [Accepted] D9758: UI: Properties editor popover & outliner sync dropdown
  • [Commented] D9853: Alternative Fix for T80313: Clipped text in splash screen on hiDPI monitors
  • [Requested changes] D7142: Rendering workspace: Slot, View Layer & Combined drop downs, displaying label before data
  • [Accepted] D9864: Geometry Nodes: Rename Random Attribute node.
  • [Committed] D9862: Cleanup: Don't use abbreviations (UI labels)
  • [Accepted] D9872: Fix T83851: Python: operator macros cause a crash
  • [Accepted] D9878: Fix T83869: Crash when creating Sequencer in new scene
  • [Accepted] D9881: Fix T83886: Particle instance modifier broken
  • [Accepted] D9890: Fix T83916: Cannot drag link from socket if node is inside frame


New in Review

  • D9877: Fix T83863: Changing vertex proximity modifier property affects others


Tracker

  • Investigated: 9
  • Invalid: 5
  • Duplicate: 1


Next Week

Most of the geometry nodes team and other developers aren't going to be around next week, so I get to pick whatever I want from the backlog. I might do the attribute vector math node, then hopefully do some experimentation. One idea I had was adding grease pencil support to geometry nodes.

December 7 - 13

Two new simple nodes for splitting out certain points to a different geometry

Apart from the usual meetings, this week I worked on various things for geometry nodes-- the point separate node, the attribute compare and fill nodes, and stability for the random attribute node. I'm nearly finished with the IDProperty UI data refactoring too. Some of the geometry nodes stuff is fun to play with, nice and visual. After all that, I spent a fair amount of time on code review like I promised last week.

Also, here's another fun visual thing, we'll see what happens to it though.

Dragging the current frame indicator to the ends of the timeline could make it smoothly scroll


Commits to master

  • Geometry Nodes: Attribute Fill Node 348bd319d5
  • Geometry Nodes: Add helper function to check if attribute exists 8bdd996cd0
  • UI: Use words instead of symbols for float comparison items a7fcca1062
  • UI: Add more property editor operators to IC keymap 4797c13e8f
  • Fix T83050: Crash dragging shared collection to master collection 97651f428b
  • Fix T83673: Custom node trees selectable in nodes modifier 260fca5d08
  • Cleanup: Use LISTBASE_FOREACH in node transform code 3e005a3214
  • Cleanup: Reduce variable scope in view_2d_ops.c c6075118d5


Review

  • [Requested changes] D9751: VSE: Add Overlay Popovers.
  • [Accepted] D9765: IC keymap: add ability to select, delete modifiers and engage and exit searching in Properties
  • [Accepted] D9737: Geometry Nodes: add Mix Attributes node
  • [Accepted] D9739: Geometry Nodes: support instancing collections
  • [Commented] D9716: Asset Browser: Metadata storage, reading and API
  • [Accepted] D9824: GPencil: Add Link support to Effects using Ctrl+L
  • [Requested changes] D9758: UI: Properties editor popover & outliner sync dropdown
  • [Requested changes, accepted] D9621: Configurable rotation angle increments
  • [Commented] D7767: VSE: Add 'Ripple Delete' Operator
  • [Accepted] D9722: Asset Browser: Support custom asset library paths through Preferences
  • [Accepted] D9717: Asset Browser: "Mark Asset" & "Clear Asset" operators and UI integration
  • [Accepted] D9725: Asset Browser: User Interface
  • [Requested changes] D9756: UI: Do not block all user input events while a button is being edited
  • [Requested changes, accepted] D9668: UI: Transform Arrow Cursor Refactor
  • [Commented] D9799: Cleanup: Getting rid of "equal" sign as a replacement for words is/means/equal
  • [Requested changes, accepted] D9838: T83696: Add Additional menu to Effects panel
  • [Requested changes] D9846: Cleanup: Remove some label redefinitions in mirror UI


New in Review

  • D9832: Geometry Nodes: Make random attribute node stable
  • D9818: Geometry Nodes: Boolean Attribute Type


Tracker

  • Reported T83651: Crash dragging on multiple buttons in the clip editor markers panel
  • Investigated: 4
  • Invalid: 1
  • Confirmed: 2
  • Needs Information:


Next Week

More geometry nodes, more patch review, maybe some fun UI stuff like the edge panning in the node editor and animation editors.

November 30 - December 6

This week I mostly worked on geometry nodes. I helped a bit with the final preparation for merging to master earlier in the week, and participated in the sprint planning, which takes quite a while. Later I mainly worked on the "Point Separate" node, then an "Attribute Compare" node. I also worked a bit on the manual pages.

On code quality day I spent time implementing a suggestion by Julian (D9750), switching code to the LISTBASE_FOREACH macro, and continuing my refactor of IDProperty RNA data storage, which is finally starting to work properly!


Commits to master

  • Fix T83346: Scrolling doesn't work with mouse over panel header 2bd0263fbf
  • Cleanup: Use LISTBASE_FOREACH macro in windowmanager intern 67faa85fb0
  • Cleanup: Reduce variable scope in node drawing code rB007a0e43a01a
  • Cleanup: Use LISTBASE_FOREACH for node tree sockets RNA code rB6b12dad1901e
  • Cleanup: Declare variables where initialized 04d3b54000
  • Cleanup: Clang tidy void argument rB6022103264cf
  • Cleanup: Use typedef for button string info type 4bb5314754


Review

  • [Requested Changes] D9734: VSE: Change Paste Position
  • [Accepted] D9726: UI: Keymap Preferences, remove decorators
  • [Commented] D9744: UI: Viewport Navigate Gizmo Refactor
  • [Requested Changes] D9751: VSE: Add Overlay popover to toggle Texts, F-curves, Offsets, Waveforms on/off.


New in Review

  • D9683: UI: Improve node group input / output list interface
  • D9697: WIP: Refactor IDProperty UI data storage
  • D9750: UI Code Quality: Use "params" struct for space type and region callbacks


Tracker

  • Investigated: 3
  • Resolved: 1
  • Invalid: 3
  • Needs Information: 2


Next Week

Next week I'll continue working on the geometry nodes sprint, probably finishing the nodes I have in progress first, then moving on to a new one or working more on the UI side of the project. I'll also try to spend a fair amount of time on code review, the backlog is growing very fast.


November 23 - 29

This week I mainly worked on two tasks for the geometry nodes project. First was implementing the designs for the node editor context and active modifier. There was a fair amount of iteration on this design, and lots of back and forth about it too, so implementing this ended up taking quite a bit longer than I'd hoped. UI tasks tend to do that anyway though.

The second task was creating the initial version of the attribute math node, which was made fairly simple by the attribute access API that Jacques worked on this week too.

Other than that made some smaller improvements to the geometry nodes branch and tried to help with the swamped UI patch review backlog.


Commits to master

  • UI: Use decorators in volume modifiers 26eb8d6aa0
  • UI: Fix incorrect offset for panel label when zooming in 4705fafa7e
  • Cleanup: Use LISTBASE_FOREACH macro in screen.c dc40bea003
  • Cleanup: Use "region" for ARegion variable names 748f468fdc


Commits to Geometry Nodes

  • Geometry Nodes: Node editor header interaction with active modifier 6c241b2dd7
  • Geometry Nodes: Initial implementation for attribute math node 52c6d36e4e
  • UI: Improvements to interaction with active modifier 72386c64ef
  • Geometry Nodes: Use context for active modifier operators b4f3c3cca0
  • Geometry Nodes: Use ID template node group selector in the modifier d40126d636
  • Geometry Nodes: Add boilerplate code for attribute math node 26c7be27b7
  • Geometry Nodes: Fix missing node editor redraw for active modifier 41a74159c3
  • Geometry Nodes: Always use the active modifier for shortcuts 8a2b329a21
  • Geometry Nodes: Make next modifier active when deleting 268508d2b0
  • Geometry Nodes: Improve wording of modifier error messages c1b655c06a
  • Cleanup: Correct node name in definition function e68e897077


Review

  • [Accepted] D9496: UI: Batch Rename Dialog
  • [Commented] D9496: UI: Join or Close Any Area
  • [Requested changes, committed] D9634: Allow theming the alternate row color in the sequencer
  • [Requested changes] D9641: Trackpad: Allow to change the speed while Fly navigating
  • [Requested changes] D9612: Extending transform gizmos for duplication and extrusion (AKA shift-extrude)
  • [Requested changes] D9621: Configurable rotation angle increments
  • [Commented] D9621: Fix - T63890 Popover: Color Sampling doesn't work


New in Review

  • D9643: UI: Standardize "Selected Only" UI in exporters


Tracker

  • Investigated: 8
  • Resolved: 1
  • Invalid: 3
  • Confirmed: 2
  • Needs Information: 2


Next Week

Start the next sprint for the geometry nodes project! If it's possible, I'm hoping to take a break from UI changes and hacking on IDProperties and write some new functional code.


November 16 - 22

I started the week working on adding the concept of an active and indicating that in the UI. I refactored the panel drawing while I was at it, as it was becoming a overly complicated. Although that refactoring ended up taking a bit too long, I'm glad I did it. I also started working on the attribute math node, using the attribute accessor API that Jacques has been working on.

The active modifier used for the context in the node editor

As usual, I spent time reviewing UI module patches and staying active in the chat there, including the weekly meeting. Unfortunately I also wasted some time bisecting a bug that was already fixed because I didn't git pull beforehand. That's a good lesson to learn.


Commits to master


Review

  • [Accepted] D9598: Outliner: Object state filter invert toggle
  • [Committed] D9564: Geometry Nodes: Add input for edge angle on "Edge Split" node
  • [Requested changes] D9537: Copy a single modifier to all selected objects
  • [Requested changes] D9586: UI: Fix disconnected and non-clickable checkbox labels in popovers
  • [Commented] D9496: UI: Batch Rename Dialog


New in Review

  • D9627: Cleanup: Rename curve struct fields


Tracker

  • Investigated: 5
  • Resolved: 1
  • Invalid: 1


Next Week

Next week I'll continue working on the attribute math node. I'll continue working on the context for the geometry node editor-- there are some missing updates to deal with. I don't think I've been pulling my weight on the bug tracker recently, so I'll spend more time there, in addition to the regular code review for UI patches.

November 12 - 15

Just a two day week. Other than some bug fixing and review I worked on better error messages for the geometry nodes modifier. I also participated in the end of sprint discussions and presentation for the project.

On the weekend I spent some time continuing with my IDProperty UI data refactor.

Commits to master

  • Outliner: Sync with property editor physics tab 55e2930c18
  • Fix T82596: Fly/walk navigation crash cd49afc596
  • Cleanup: Simplify panel activate state function f3ab698951
  • Cleanup: Remove unecessary logic in panel code 40b2ce5ea7
  • Cleanup: Move PanelType flag from DNA to BKE header 4c193f731e
  • Cleanup: Make panel type flag names more clear 9d28353b52


Review

  • [Accepted] D8758: Fix T80475, bad bevel: side vertex in bad plane in some cases
  • [Requested changes] D9537: Copy a single modifier to all selected objects
  • [Commented] D9548: Remove unused "angle_splitting" properties in GPencil Multiply modifier
  • [Requested changes, accepted] D9507: UI: "About Blender" with full logo
  • [Commented] D9483: UI: Use of Ellipsis in Truncated Text
  • [Commented] D9565: GPencil: Add initial bezier smoothing option
  • [Accepted] D8084: UI: Area Joining and Closing
  • [Accepted] D9564: Geometry Nodes: Add input for edge angle on "Edge Split" node


New in Review

  • D9549: UI: Remove panel dragging in the X axis
  • D9568: Fix T82439: Crash moving collections between scenes


Tracker

  • Investigated: 2
  • Resolved: 1

Next Week

One bug still left for 2.91... Then work the next sprint for geometry nodes! Probably attribute stuff. Or sadly maybe more fighting with IDProperties.

November 2 - 6

This week I fixed the remaining property search bugs and a bevel bug, and also looked more in depth at some other bugs. For code quality day I did more cleanup of the panel code, and I also worked on my refactor of how UI data for ID-Properties is accessed. I'm really happy with how these two projects are going, but I think I should focus more time on triaging in the next bug sprint instead of diving deep.

I also spent a lot of time on code review. The big task here was Line Art, where the review turned into some pretty large discussions here and here.

Commits to master

  • Property Search: Fix missing update switching tabs after search 4c460a2dbd
  • Fix T82120: Arc miter bevel creates miters on straight edges c6d8300823
  • Property Search: Fix missing update switching tabs after search 5650468c84
  • Fix T81691: Use-after-free with property search and hovered button 9e8a488af2
  • Fix T82417: Panels draw below others while animating after drag 86bdc959a3
  • Move "Camera Parent Lock" from preferences to Object Relations 00374fbde2
  • Fix incorrect colors in grease pencil strength tool icon 4c460a2dbd
  • Fix assert on mouseover of blocks not using the layout system 0511640815
  • Remove incorrect assert in button group code 29780b8101
  • UI: Simplify some tool icon geometry aee1e4fc6a, rBL62510
  • Cleanup: Improve property search related comments panel code f9fbe4efd6
  • Cleanup: Remove unused parameter in panel code 3049704b15
  • Cleanup: Mark arguments as const 9cfcc27319, c23ee2a293
  • Cleanup: Remove dead code in bevel operator fe7093fae4
  • Cleanup: Use typedef for bevel angle kind enum 084db58fbd
  • Cleanup: Declare variables where initialized 76683af38c
  • Cleanup: Clang tidy cabec08253
  • Fix for previous cleanup commit db7cf3652c
  • Cleanup: Remove incorrect comment eca8cd8449
  • Cleanup: Use LISTBASE_FOREACH macro 4d7ad82347, 4f140ec7cc
  • Cleanup: Move function to proper file 76416f336a
  • Cleanup: Make panel function static f888f3aa1f
  • Cleanup: Remove unused drag scaling code for panels bf36080501
  • Cleanup: Remove unused Panel.snap from DNA and handler code 4572428e86
  • Cleanup: Simplify panel collapse handler logic 6c3849ea08
  • Cleanup: Use descriptive variable names 06c030eaa4
  • Cleanup: Remove unused variable b3e71ee098


Review

  • [Requested changes] D8758: Line Art module (Grease Pencil) main functions
  • [Accepted, committed] D9366: UI: Swap order of "Fade Inactive Geometry" in overlays popover
  • [Commented] D9415: Transform: New feature to set a custom 'Snap With'
  • [Accepted] D9409: Annotation: Set as visible when use it
  • [Accepted] D9457: UI: Replace uses of "loc/rot" with full words
  • [Commented] D9390: UI: New style for the Python script execution warning popup
  • [Accepted] D9463: UI: Fix Support for Anonymous Menu Separators
  • [Accepted] D9466: Spelling: Predefined, Look Up, No One
  • [Requested changes, accepted] D9467: Fix T82407: Negative number input gives syntax error for velocities and accelerations
  • [Commented, accepted] D9438: Fix T82364: Widget anim state not updated when deleting channel in Graph Editor
  • [Commented] D9478: Sample FCurve Implementation
  • [Accepted] D9486: Helper to add an Alert Icon and creates a split layout for popups
  • [Accepted] D9487: Geometry Nodes: Subdivision Surface inputs cleanup
  • [Commented, accepted] D9487: Geometry Nodes: Add quad_method and ngon_method enums to triangulate node


New in Review

  • D9025: Property Search: Fix warning


Tracker

  • Reported T82341: Property Search: Warning in terminal
  • Reported T82417: Panels draw below others during animation after dragging
  • Investigated: 11
  • Resolved: 1

Next Week

I'm traveling for the first half of next week so it will be a shorter one. There are two more bugs for 2.91 that I need to work on, bug one is only reproducible on windows so I'm waiting until next week to work on it when I have access to a Windows computer. Other than that I'll work on the second geometry nodes sprint.

October 26 - November 1

This week I mainly worked on the geometry nodes project. I spent most of the time working on storing UI information for the modifier custom properties, scattering nodes, and adding point cloud support in the Geometry class.

The modifier needs properties corresponding to the node group inputs with the proper subtype, min, max, etc.
An extremely basic example of the basics of the scattering workflow. The first node creates a point cloud with the correct attributes, the second node will instance a geometry at each point

After spending a fair amount of time struggling with IDProperty code this week, I made a proposal for some refactoring on devtalk. I started working on part of that this weekend, I'll continue working on it this Friday, code quality day.

Some more things I worked on:

  • Initial mesh boolean node.
  • Support pointcloud in transform node.
  • Errors for out of sync sockets and properties.
  • Initial empty nodes for basic attribute workflow.


Commits to master

  • UI: Use property split in vertex paint symmetry panels 6c7f30a6f6
  • Fix use after free in interface handler 1504ed99e6
  • Fix T82205: Curve Hooks not working 81a0fffb2d
  • Cleanup: Remove unused IDProperty function 5711b85147
  • Cleanup: Use an enum to set instanced panel expansion 6250a8725e
  • Cleanup: Use const for PointCloud variable 4d15f4ac5b
  • Cleanup: Update comment 024b65b5e5
  • Cleanup: Use doxygen sections d35cd32d56
  • Cleanup: Fix typo in comment 9de42337c8


Review

  • [Proposed alternate solution, accepted] D8603: Fix for text marks of the "Color Grid" generated image
  • [Accepted] D9025: UI: Fix for checkbox width calculation
  • [Accepted] D6938: UI: Fixes for the close file dialog box layout


Tracker

  • Investigated: 2
  • Invalid: 1
  • Resolved: 1

Next Week

Next week is a bug sprint week, so it will look quite different. I have a some bugs on my radar that I would like to look at-- a bevel bug and two or three property search bugs.

October 19 - 25

I spent most of the week getting up to speed with the Geometry nodes project. I've been able to code a few of the simpler things, but there is a lot for me to learn in this area, so I've been focusing on that. It's been very cool so far, and the process has made sense.

A transform node and a hacky boolean node. It works!

Apart from geometry nodes work, I did a review session with Julian on Tuesday. We only got through five patches, but I think doing that consistently will help a lot. Then the UI team meating on Wednesday. I spent some time struggling with the layout code to implement a design for the property editor header which we didn't end up using. Hopefully we can revisit it later.

I implemented this with Julian, but we ended up using a simpler change for 2.91

I also worked on some bug fixing and code review. Then on my own time I've been learning a lot more about Bezier curves and NURBS, both in Blender's code and with this nice online book (https://pomax.github.io/bezierinfo/). This area of Blender hasn't seen much love recently, maybe I can help.


Commits

  • Cleanup: Use BLI string functions 7ef3a63480
  • Fix use of uninitialized variable d2bf71b412
  • Fix panel type use after free when reloading scripts 35e50c170c
  • Fix T81818: Outliner mode column crashes with shared object data 8e060b44da
  • Fix T81909: Translation missing for some labels in modifier panels 6180ecaea5
  • Fix T81967: Crash when using extrude on a text object 3953833b60
  • UI: Fix typo in sculpt trim tool description 959a06b8ff
  • Manual: Update curve shape panel image rBM7278
  • Cleanup: Use LISTBASE_FOREACH macro in curve code a308607a53, 76fd84f209
  • Cleanup: Simplify outliner mode column drawing function 3d916c0a96
  • Cleanup: UI Code Quality: Cleanup ui_but_update_from_old_block 1d9499bbbc
  • Cleanup: Return early in some curve functions 594f47ecd2
  • Cleanup: Use DNA deprecated guards around old flags c6281d5dc7
  • Cleanup: Improve function and variable name ba718c1513

Note that these are only commits to master, not to feature branches


New In Review

  • D9344 UI: Remove incorrect RNA percentage property definitions


Review

  • [Requested Changes] D9316: GPencil: Support for Sequence Images in Trace Tool
  • [Requested Changes] D6522: T68649 Adding a dialog box to Load Factory Preferences
  • [Accepted] D9269: UI: Playback Synchronization menu improvement
  • [Accepted] D9266: UI: Move the "Resolve Conflict" button closer to the text data-block
  • [Commented] D9058:UI: Fix aligning labels with other buttons
  • [Requested Changes] D9059: UI: Changes to 'Generator' f-modifier layout (after D9058)
  • [Requested Changes] D8392: Cleanup: UI: Fix capitalization
  • [Commented] D9228: Allow modifier keys as hotkeys in keymap settings
  • [Updated] D8370: Unable to build without UI_PROP_DECORATE
  • [Committed] D8470: Ocean modifier : allow spray maps to be baked
  • [Accepted] D9295: Fix T81896: Outliner missing redraw after "Set Parent (Without Inverse)"
  • [Accepted D9330: GPencil: Remove unneeded python for calling Bake Animation
  • [Accepted D9336: Fix T81884, clamping with percent, addendum.

Tracker

  • Reported T81896 Outliner missing redraw after "Set Parent (Without Inverse)"
  • Investigated: 7
  • Invalid: 4
  • Resolved: 2

Next Week

Next week will be the second half of the geometry nodes sprint. I'd like to keep coordinating with Jacques to figure out where to best spend my time. I'd also like to fix the last property search bugs and talk a bit more about a plan for working on the curve / NURBS code.

October 12 - 18

I took Monday off, then on Tuesday we had the first meeting for the geometry nodes project, then focused on committing the final property search patches for 2.91. The rest of the week was a combination of participating in the bug sprint (mostly by fixing new bugs related to search), helping some other contributors get patches working, and a lots of code cleanup. That seems to be the best way to work on improvements without adding to the code review burden.

On Sunday I made the mistake of starting some cleanup in the curve code, that was a bit of a rabbit hole. So much that could clearly be cleaned up there!

Commits

  • Property Search: Find results in all tabs 7c633686e9
  • UI: Tweak decimate modifier layout 3bc808ebcb
  • UI: Add highlight arguments to tab buttons 96dd299055
  • UI: Add reset to default value to keymap 15d78ea85b
  • UI: Align related properties c275a00a72
  • UI: Update deep grey addon theme A6183dcaf5
  • Fix T81697: Property search crash with python handlers e7ab802ab0
  • Fix T81686: Confusing add menu in pose mode cb40edf63a
  • Fix T81800: Datablock pin not working for bones in pose mode 78a5895c96
  • Fix compile error in lite build after recent commit 3e25f70ddd
  • Fix Asan warning in property editor texture tab 1cf8a4e5ea
  • Fix warning for duplicate field in DNA defaults 1cf8a4e5ea
  • Cleanup: Use DNA defaults for fluid modifier 50d78116cd
  • Cleanup: Use DNA defaults for grease pencil modifiers d1b3439b80
  • Cleanup: Miscellaneous code quality changes in wm director 7447eb7e74, f425f40c4e
  • Cleanup: Reduce variable scope in screen directory e2c5439cb4
  • Cleanup: Reduce variable scope in area.c 20276e4b00
  • Cleanup: Declare variables where initialized in context.c 85e78fa17c
  • Cleanup: Use doxygen sections in space_buttons.c be3841b1bf
  • Cleanup: Comment formatting, grammar a509e79a4c
  • Cleanup: Use enum for return type 9d2222b7d1


New In Review

  • D9239 Move "Camera Parent Lock" from preferences to 3D view
  • D9235 [WIP] UI: Improve property editor header layout


Review

  • [Committed] D9028: UI: Show more information in open file tooltip
  • [Accepted] D9132: Fix for T81400: Block Width Corrections


Tracker

  • Reported T81691: heap-use-after-free when button is active and property search starts.
  • Reported T81818: Crash using outliner editmode shortcuts for objects with linked data.
  • Investigated: 9
  • Invalid: 2
  • Resolved: 2

Next Week

The geometry nodes project, starting with the goal of making a better system to scatter objects, is starting this coming week. On top of that, I may try to help review patches for inclusion in 2.91, at least where I am needed. I have a few of my own that should go in before Bcon2 ends as well. So the first half of the week may be pretty busy.

October 5 - 9

This was a bit of a scattered week with lots of different projects and conversations, including the UI meeting on Wednesday. I worked on updating some more property search patches based on feedback, but I only got a bit of review. The patches are all quite close now, although the fuzzy search matching one needs a bit more work.

The active keyframe patch made it into master this week after some thorough review
My patch for this popover made it in this week too

I also committed a fair amount of patches from contributors. After seeing that the patch review backlog just keeps going up, I'd like to help with that.

I found one interesting bug where entering "0" for transform values in the redo panel in edit mode would immediately reset the value to "1". The last time it worked was in 2.83, but bisecting worked nicely to find the commit with the issue. I also worked on another bug submitted from my college's animation studio, that was fun.


Commits

  • Fix T76595: Indicate the Active Keyframe in Graph Editor 983ad4210b
  • Fix T81545: Moving nested collections changes view layer flags 89491d67d9
  • UI: Add auto keyframing popover 099ce95ef3
  • UI: Update community themes rBAe6cd87286b
  • UI: Fix incorrect inactive status for curve properties c1394c89a7
  • UI: Fix alignment in object type visibility popover 9c8334acc1
  • Fix T81488: Deleting an Object Constraint crashes Blender 43ceea30f1
  • Fix T81470: Buttons in closed panel visible during search 3178dc25f6
  • Cleanup: Use short for properties editor tab list 0a0e88b645
  • Cleanup: Use LISTBASE_FOREACH macro e6d1c8272e
  • Cleanup: Declare variables where initialized 4173877e87, 7ab8d7c939


New In Review

  • D9117 UI Code Quality: Cleanup ui_but_update_from_old_block
  • D9145 Property Search: Use fuzzy string matching


Review

  • [Requested changes] D6938: UI: Fixes for the close file dialog box layout
  • [Commented] D9143: Fix for T81400: Block Width Corrections
  • [Committed] D9045: Fix / cleanup panel category tab drawing
  • [Committed] D9111: UI: Reduce item padding in the gpencil edit context menus
  • [Committed] D9060: UI: Use property split in various pop-up dialogs
  • [Committed] D8345: UI: Fix capitalization in various places
  • [Committed] D8352: UI: Improve labels in "Convert To" menu
  • [Committed] D8874: UI: Update add-on themes with new grid colors
  • [Committed] D9026: UI: Fix opacity of the popover arrow outline
  • [Committed] D8875: UI: Add icons for new face set tools
  • [Committed] D8963: UI: Add icons for new sculpt trim tools


Tracker

  • Reported T81470: Property Search: Buttons in closed panel sometimes visible during
  • Investigated: 8
  • Invalid: 1


Next Week

Hopefully the property search patches will have been reviewed and I can commit them. That and bug fixing is the plan.

September 28 - October 4

This was a shorter week as I had some non-Blender work to get to. But after a productive code review session with Julian on Friday I did commit the first round of improvements to property search. The other improvements are in good shape too. It should be all set for 2.91 by the end of next week, at least in my opinion.

Other than that, lots of miscellaneous cleanup, which I actually enjoy quite a bit. I also did a bit of code review and some work on some in-progress patches.

Commits

  • Use DNA defaults system for modifiers 8398050695
  • Property Search: Set panel expansion when tab changes cb6234fccf
  • Property Search: Set expansion properly for child panels ece8f69f85
  • Property Search: Differentiate search filtered and inactive buttons 933bf62a61
  • Property Search: Don't use search color for subpanel titles a03bd6460c
  • UI: Improve UV sticky select mode description 8157305869
  • UI: Remove second person in warning message 1b6480ebb7
  • UI: Move button groups from layout to block level 3eab2248c3
  • UI: Create button group if none exists 743eca0f31
  • Fix use after free deleting object with modifier panels visible e1e9b5e661
  • Fix implicit conversion from pointer to bool 2cc913d7d9
  • Fix T78503: Disabled layout portion passes mouse through 6f96dd8576
  • Fix stack use after scope error after recent cleanup 29a85682a0
  • Cleanup: Declare variables where initialized a4aa94c41c, 6d630219ce
  • Cleanup: Use DNA defaults for cloth modifier c3238bd500
  • Cleanup: Use LISTBASE_FOREACH macro in outliner code 23363ca084
  • Cleanup: Make function private e5aa9decb2
  • Cleanup: Reduce indentation 65e4bfe2f0
  • Cleanup: Remove unused View2D variables and function 8cbd09672d
  • Cleanup: Remove unused variable 551204a17f
  • Cleanup: Clang tidy fixes 4c0ef4f788


New In Review

  • D9052 Fix: Possible to add multiple presets with the same name


Review

  • [Requested changes, accepted] D9045 UI: Fix drawing of the sidebar tabs
  • [Accepted] D9028 Recent files menu: dynamic tooltip showing filepath
  • [Commented] D8706 UI - Topbar Menu Changes
  • [Commented] D9059 UI: Changes to 'Generator' f-modifier layout
  • [Accepted] D9083 Fix warnings in cloth brush int casts

9059

Tracker

  • Investigated: 13
  • Invalid: 3
  • Duplicate: 1


Next Week

I'd like to finish up property search features for 2.91, and I'd like to cross off a few more patches from my "in review" list. It would be fun to put some more time into round caps for curves too. The only issues remaining are with the normals if I remember correctly.

September 21 - 27

This week I worked on polishing property search-- addressing feedback and making some important implementation changes. The patches didn't get any review yet though, so only some smaller fixes have made it to master.

At this point I'm wary of starting any new projects that would just add to my backlog of patches that need review, so I spent a fair amount of time just working on code cleanup.

Commits

  • UI: Add curve geometry start and end panel 4e667ecef9
  • UI: Clarify curve geometry factor and mapping tooltips bf0cefe738
  • UI: Improve curve geometry property tooltips 90ce6dbf4c
  • Property Search: Fix matches in headers not used for expansion 15afaa3db2
  • Fix T78823: Slash in custom property name does not work cbae82ba96
  • Fix T81161: Bad properties context panel placement loading old files d951239e1d
  • Fix T81073: PDT fillet tool not working f510c21650
  • Fix warning building without potrace b2782f78ba
  • Fix incorrect comparison for panel sorting ffde556e9e
  • Cleanup: Remove unecessary storage of search filter in uiBlock 7fb0cb2b93
  • Cleanup: Miscellaneous code improvements e2fe405910
  • Cleanup: Declare variables where initialized, lower scope e2fe405910, 4842dd022f
  • Cleanup: Reduce indentation by returning early 6a9e9bef44, 9b6c5268bc
  • Cleanup: Quiet unused variables warning 358a8e00bd
  • Cleanup: Remove unused function 80c57fe35f
  • Cleanup: Use canonical variable name 83dc97ccc0
  • Cleanup: Use shorthand variables 4115229637
  • Cleanup: Move function to proper section 0106e17f07


New In Review

  • D8975 Property Search: Differentiate search filtered inactive buttons
  • D8976 Property Search: Don't use search color for subpanel titles
  • D8984 Property Search: Reset panel expansion when exiting search
  • D9006 Property Search: Set panel expansion when tab changes


Review

  • [Requested changes, accepted] D8951 GPencil: New Trace images using Potrace
  • [Requested changes] D8943 Boolean Modifier: operand display operators and render/visibility settings
  • [Accepted] D8963 UI: Add icons for new sculpt trim tools
  • [Commented] D8954 Add Bisect Modifier
  • [Requested changes] D9012 Fix T79275: Missing update for Pinned Active Tool panels displaying in another sidebar
  • [Commented] D9021 Sculpt: Line Project Gesture tool


Tracker

  • Investigated: 7
  • Invalid: 10
  • Duplicate: 1

Next Week

Same as last week, property search polishing, and try to get rid of my backlog of patches. Probably some patch review too.


September 14 - 20

We landed property search this week, or at least most of it, so that was nice. I was also able to commit something I've been wanting to do for quite a while, the custom profile bevel for curves. Working with curves has been enjoyable, I'd like to do that more in the future.

Curve Custom Profile Demo.png

I made a feedback thread for property search here: https://devtalk.blender.org/t/property-search-feedback/15372/2 I'll be working on implementing some of the suggestions there soon.


As a little extra weekend project I looked into animation for subpanel expansion. Some of it is a little more complicated than I hoped, but overall it's doable.


Commits

  • UI: Single tab property search 8bcdcab659
  • Curves: Add custom profile bevel support 60fa80de0b
  • UI: Refactor panel alignment function 14b2de37db
  • Curves: Allow caps for all geometry types a6a0cbcd74
  • Property Search: Build button groups for Search 67e630609b
  • Property Search: Move properties context buttons back to a panel 6b29c3fa07
  • Property Search: Quick start and clear operators bedbd8655e
  • Property Search: Add "search match" theme color f59ce4d55c
  • Property Search: Properly set expansion for instanced panels cf0791bf38
  • Property Search: Don't set expansion for panels in inactive tabs a0a536bbff
  • UI: Gray out fade inactive geometry overlay slider when off 84653f015a
  • UI: Use property split in UV editor panels 05c57dc563
  • UI: Remove colons in property names f17302be6b
  • UI: Always set curve fill mode inactive for object bevel type 1d5b191f9f
  • Fix: Property search crashes searching enums with separators 5cf6f5e66d
  • Fix: Text object custom profile bevel not written to file 27660b3cd9
  • Fix 80909: Switching to profile bevel can explode Curve geometry 6303cb7bd0
  • Fix T80993: Crash duplicating inactive workspace e14894aad2
  • Cleanup: Comment formatting in interface_panel.c 7a1c405bb4
  • Cleanup: Split off parts of large panel layout function 9a870ccc6a
  • Cleanup: Split properties editor layout function b827d1c530
  • Cleanup: Use enum instead of defines for panel runtime flag 8dd5902e1e
  • Cleanup: Use "r_" prefix for return arguments 5b7a35ddfb
  • Cleanup: Extract "draw_fcurve" as a separate function 65fd005312
  • Cleanup: Doxygen sections 1f9e3d44a0
  • Cleanup: Correct comments 9ee588cd4a
  • Cleanup: Rename variables in panel alignment code aa2219285c
  • UI: Refactor some list panel expansion code 8aab26b3b3
  • Bump file subversion after recent theme-related changes 17ccb409dd
  • Cleanup: Use shorthand variables 4115229637
  • Cleanup: Fix clang tidy inconsistent parameter warning 7d2a67f258


New In Review

  • D8910 UI: Add curve geometry start and end panel
  • D8927 UI: Add stack add search menu to properties editor
  • D8950 Cleanup: Rename functions in interface_panel.c
  • D8961 Bevel Modifier: Use angle limit method by default


Review

  • [Accepted and Committed] D8699 UI: Add grid-related theme options
  • [Accepted] D8875 UI: Add icons for new face-set tools
  • [Accepted] D8352 UI: Improve labels in "Convert to" menu
  • [Accepted] D8699 Dont show temporary IK constraints in the constraint stack
  • [Accepted] D8392 Cleanup: UI: Fix capitalization
  • [Requested Changes] D8943 Boolean Modifier: operand display operator


Tracker

  • Reported T80782 GPU: Curve editing widget point size broken after recent commit
  • Investigated: 10
  • Duplicate: 4

Next Week

I'd like to make the final changes to the multi-tab property search patch and make some other improvements there, including finishing the fuzzy search patch Jacques provided. (I think it's a bit too fuzzy right now, so I'd like to find a way to reduce the fuzziness. I'll also try to focus on finishing up other patches I've been working on.

September 7 - 13

This was a busy week. I mostly spent the majority of my time working on property search. The patches are posted, and it looks like they're mostly good to go. After some conversation it actually looks like there's a nice way to simplify some of the uglier parts of the code changes. I've also been working on simplifying the "all tab" search this weekend. The patch set begins with D8376.

I also spent all of Tuesday working on classifying reports from the UI module backlog. I made a good dent, although there are still more unclassified reports. Almost all of the unclassified reports are waiting from input from another developer though.

I also worked a bit on round caps for curves, although that's definitely not going to be for 2.91.

Commits

  • UI: Add temperature units 36aeb0ec1e
  • UI: Changes to timeline playback popover d4cca7b7b0
  • Decimate Modifier: Restore vertex group factor property in UI 97c6c4e478
  • UI: Use operator to set property editor's pinned data-block a550937116
  • Cleanup: Rename public "bUnit" functions 842f52d418
  • Cleanup: Use bool instead of int 25380802d7
  • Cleanup: Remove unused variables and function a69ddea29d


New In Review

  • D8376 Property Search: Use an operator to set the property editor's pinned data-block
  • D8783 Property Search: Keep track of button's relationship with label buttons
  • D8853 Property Search: Move properties context buttons back to a panel
  • D8854 Property Search: Add "Search match" theme color
  • D8856 Property Search: Single tab
  • D8857 Property Search: Quick start and clear operators
  • D8858 Property Search: Add highlight arguments to tab buttons
  • D8859 Property Search: All tabs
  • D8832 Fix T78503: Disabled layout portion passes mouse through
  • D8836 Fix T73922: Setting rect to 0 size causes curvemapping widget to disappear
  • D8839 Fix T78823: Slash in custom property name does not work
  • D8840 Fix T79251: Progress bar disappears during reports
  • D8842 Fix T80127: UI: Use consistent "Brightness" term,


Review

  • [Accepted] D8805 Fix T80464: Crash deleting bone constraints when the armature layer is not active
  • [Commented] D8816 Boolean Modifier: Operand types
  • [Commented] D8875 UI: Add icons for new face-set tools
  • [Commented] D8699 UI: Add grid-related theme options


Tracker

  • Investigated: 32

Known Issue: 6

Design: 2

  • Duplicate: 1
  • Invalid: 7

Next Week

Landing property search is the big item for next week, but I'm sure some smaller things will pop up too.

Also, hopefully I can convince reviewers to look at these patches: D7997 (FModifier UI updates), D7737 (Graph editor active keyframe), D8402 (Custom profile bevel for curves), D8537 (Auto keyframing popover),

August 31 - September 6

I spent the week working on lots of various smaller projects, the temperature patch, some cleanup, curve bevel features, and some code review and feedback. I landed a nice cleanup to the code for the list panel system for modifiers, etc. and also updated some patches that would have had merge conflicts from that change.

I've finally finished D7997, "UI: FModifier layout updates, drag and drop", which is now waiting for review.

I also updated the "Indicate the Active Keyframe in Graph Editor" patch again, D7737. That patch has been waiting for a sign off for two months now, yikes.

On Saturday I looked into implementing a request I thought was particularly interesting on right click select. I've found the curve code messy and not very well documented, but I'm slowly figuring it out.

Looking into implementing caps for curves with round bevels, depends on "Curves: Add Custom Profile Bevel Support" (D8402)

Commits

  • UI: Use instanced panel custom data instead of list index ba4a2a4c8b
  • New Boolean: Always expose solver propery, add warning fc8533a3c9
  • UI: Use property split layout for add torus operator a8cf9d2f80
  • Curve Profile: Miscellaneous cleanup 417695e4a8
  • UI: Remove unecessary panel_free_block function ba188e7218
  • UI: Fix use after free for instanced panel expansion 953a031f15
  • Docs: Fix typo: 'than' -> 'then' rBM7045
  • Cleanup: Comment formatting in unit.c 3e7feaff44
  • Cleanup: Reduce indentation level and variable scope f6ab6dd91a


New In Review

  • D4401 UI: Add temperature units
  • D8783 UI: Keep track of button's relationship with label buttons
  • D8787 Fix T80356: Icon alpha theme property affects previews
  • D8790 Decimate Modifier: Restore vertex group factor property in UI

Review

  • [Commented] D8754 UI: Add grid-related theme options
  • [Commented] D8754 Wavefront obj: Add exporter specific code.

Tracker

  • Investigated: 6
  • Invalid: 1

Next Week

Time is running short for Bcon1, so I'll really have to push reviewers to look at my patches, especially for property search. The sooner the better, as maintaining a bunch of dependent patches for a feature branch takes a lot of extra time.

August 24 - 30

This week I got property search to the point where I'm ready to evaluate the difference between the two method's I've been pursuing. There's a video of both of them below. There are still bugs, but I'd like to make a decision before I finish it all up. I actually currently prefer the highlight version, I think it's much more effective at conveying the context the panels come with-- the "hiding panels" version just removes too much information. I also believe the highlight is simpler code-wise and easier to maintain in the future.

Property search methods: Hiding panels on the left, using a highlight on the right

Other than that, I spent a day working on using DNA defaults for modifiers so you can use Right Click -> Reset to Default Value with them, which didn't work at all before. I spent another day cleaning out and reviewing old UI module patches, hopefully the number is more manageable now. I also updated an old patch for temperature units (D4401). Hopefully next week Blender will have proper Kelvin, Celsius, and Fahrenheit units. And there's always the odd proposed visual change too:

Proposed change exposes options in file browser for faster interaction

Commits

  • Fix T68317: Panel "A" key doesn't collapse subpanels properly a8766de5d5
  • Boolean Modifier: Reorder properties 141a3e6d47
  • Cleanup: Declare variables where they are initialized 396d39c6b9
  • Cleanup: Move panel category drawing to proper section 9d6789115a
  • UI: Cleanup / refactor region panel event handling f1565e7f73
  • UI: Avoid redundant loops in region panel handler 770cc66f75
  • Clang Tidy: Fix warning 714dbf273c
  • Clang Tidy: Fix no lint marker placement 5c5d43fd66
  • Clang Tidy: Fix readability-delete-null-pointer warnings 596b30a080, f34653e498

New In Review

  • D8747 Use DNA defaults system for modifiers
  • D8719 UI: Expose important settings from file browser popovers
  • D8748 UI: Use property split layout for add torus operator

Review

  • [Requested changes] D8754 Wavefront obj: Add exporter specific code.
  • [Updated] D4401 Create new Temperature unit
  • [Requested changes and committed] D8717 UI: Add file browser alternating row theme color
  • [Accepted and committed] D8721 UI: Update bundled themes with alternating row color
  • [Requested changes] D8699 UI: Add grid-related theme options
  • [Accepted and committed] D8745 UI: Improve curve grid drawing code
  • [Requested changes] D8286 Popover search menu when Drag&Release a NodeLink in node editors
  • [Commented] D8706 UI - Topbar Menu Changes
  • [Requested changes and accepted] D8648 Outliner: Create new collection with selected objects
  • [Accepted and committed] D8678 Cleanup interface_handlers.c
  • [Accepted] D8394 UI: Make labels to be more correct
  • [Accepted] D8717 Fix for T75369: Text Editor Line Color
  • [Requested changes] D5187 UI: Various Widget State Changes
  • [Requested changes] D2397 Use prev/next naming for media keys

Tracker

Investigated: 4

Next Week

I'd like to get a bunch of "stale" patches that have been sitting around for a while committed, so I'll have to bug people to review them. Posting more property search patches would be great too.

August 17 - 23

Another shorter week than usual as I had another job that required some time. But I still made a fair amount of progress for property search. Apart from some bugs, the first version is now basically finished. This version highlights and expands panels with results and grays out buttons within them that don't match the search. I will make a version that doesn't display panels without results instead of highlighting those that do and share videos of the two methods when I'm finished with both.

I'm taking to heart the idea that complexity should be removed where it is added, so I've been doing some cleanup in the interface code, trying to improve its quality.

I also worked on my project of improving the UI layouts for F-Curve modifier panels too. That's almost done, here: D7997

Dimensions in property editor.png

Lastly, I worked on getting object dimensions in the properties editor. There was a patch for that a year ago, but it needed more work on its implementation.

Commits

  • Update Modifier Panel Images in Manual rBM6973
  • UI Code Quality: Use LISTBASE_FOREACH in interface directory 349eebd7d1
  • BLI Listbase: Add iterator macro that increments an index ffa8e75799
  • UI: Remove panel X axis closing code eb9055a572
  • Cleanup: Remove unused variable 50b435cbaa
  • Cleanup: Remove unused variables for horizontal panels 940b239ad4
  • Cleanup: Use LISTBASE_FOREACH in editors/screen directory 75aeb4b881
  • UI: Fix collapsed panels not drawing header buttons f364d181e3
  • UI: Cleanup in interface_panel.c 4ed8bd88d9
  • UI: Fix panel collapse all behavior inverted 6755464527
  • Fix T80013: Crash when toggling maximized area 1885bf77b6
  • Clang tidy: Fix else after return c6a99e021a
  • Cleanup: Clang Tidy: Resolve readability-delete-null-pointer error 2e6d5e6c6b

New In Review

  • D8681 UI: Add dimensions to object properties tab
  • D8651 Cleanup: Remove unused View2D variables and function

Review

  • [Requested changes, accepted, and Committed] D8584 Fix aligned popovers not always turning inactive
  • [Requested changes] D8648 Outliner: Create new collection with selected objects
  • [Proposed alternative solution] D8625 Fix T79872: VSE - splitting strip shows the channel number when unused
  • [Requested changes] D8678 Cleanup interface_handlers.c

Tracker

  • Investigated: 11
  • Duplicate: 3
  • Invalid: 1

Next Week

I'll finish the two property search methods and get people to decide which one I finally complete. I'd like to look into some UI improvements to the node editor too.

August 11 - 16

Code quality day (which I missed last week) sort of turned into code quality week for me. I spent a fair amount of time working on property search, but finishing up my cleanup in bevel combined with lots of new cleanup (mostly on my own time) made for a satisfying amount of improvements.

One nice visual change is my proposal for an auto keyframing popover:

Hopefully this could make these settings more accessible

And of course there are the updates to property search I've been working on after out discussions (the commits for which are not listed below): [Video added soon]


Commits

New In Review

  • D8537 UI: Add auto keyframing popover
  • D8559 UI: Use instanced panel custom data instead of list index
  • UI Code Quality: Use LISTBASE_FOREACH in interface directory D8586
  • D8570 UI Code Quality: Remove uiButCurveProfile's use of but->poin

Review

  • [Accepted and committed] D8497 UI: Fix curve widget fill artifacts
  • [Commented] D8567 Sculpt: Option to limit the forces axis in the Cloth Filter
  • [Accepted] D8470 Ocean modifier : allow spray maps to be baked
  • [Commented] D8584 Fix aligned popovers not always turning inactive

Tracker

  • Reported T79754: Heap Buffer Overflow Using Boundary Brush
  • Investigated: 9
  • Invalid: 2

Next Week

Hopefully I'll finish implementing property search, I would really like to move on from that to some other projects.

August 3 - 6

Shorter week this time as I'll be away from Friday through Monday.

I spent a while investigating a bevel bug, T79485, and worked on some cleanup while looking through the code. I found the solution but it involves disabling some code with unknown purpose, so lots of testing will be necessary. I might work on adding more cases to the bevel tests at the same time.

I also worked on an icon for the last new tool for 2.90 with a missing icon.

Commits

  • Fix (unreported): Bevel tool custom profile uses wrong segments number (fbc3c1b24d)
  • Ocean Modifier: Fix render resolution only used for baking (452b896f2d)
  • Cleanup: Avoid double operator name lookup (b5c737469d)
  • Cleanup: Bevel: Split two case for loop into separate function (f2ac432467)
  • Cleanup: Reduce indentation in function (862d79fffc)

New In Review

  • D8467 UI: Add sculpt cloth filter tool icon
  • D8478 UI: Set X Move Cursor for Slider Button
  • D8490 Fix T79600: Boolean doesn't update when operand is in Edit Mode

Review

  • [Accepted and Committed] D8336 Adding display resolution to ocean modifier
  • [Accepted and Committed] D7614 UI: Change Header Position Label 'Default' to 'Keep Existing'
  • [Accepted] D8441 UI: Change Header Position Label 'Default' to 'Keep Existing'
  • [Committed] Fix T78698: Move cursor stuck after removing modifier (c5b6b3d82f)

Tracker

  • Investigated: 7
  • Invalid: 2

Next Week

I would like to complete the first phase of property search and submit more of the code for review. I also have some more code cleanup / style work pending completion for bevel.

July 27 - August 2

Earlier in the week I focussed on making progress for property search. I was pretty happy with how it was going and had plans for how to finish up implementing the design. But there were downsides to the approach from the original design, and after meeting about it, the consensus was to change the approach we use for property search to do something simpler from the perspective of the code.

The meeting notes and the discussion took place here: https://devtalk.blender.org/t/2020-07-28-property-search-status/14594

I started a new branch, property-search-ui-v2, to make these changes. There are still some design questions to finalize, but other than that the implementation should be quick.

All that took up a fair amount of time this week, so I didn't get to that much else. I worked a bit on the curve bevel profile patch I mentioned last week too.

Commits

New In Review

  • D8434 UI: Changes to timeline header popovers

Review

  • [Commented] D7517 Add rotation value to array modifier

Tracker

  • Investigated: 2
  • Invalid: 3

Next Week

I'll focus on 2.90 bug fixing and wrapping up the new design for property search.

July 20 - July 26

This week I spent time doing a final pass on some UI before 2.90 branched. I committed the improvements to the layouts for exporters / importers and operator (especially Alembic, Collada, and Bevel). These should be much more consistent now. Pictures at D8326.

I also spent time working on property search. Tabs without results are now properly grayed out, although it still counts tabs with layouts tagged to turn off searching. (Like the "Add constraint" button in the constraints tab). Although I need to discuss some implementation defailts, much of it is getting quite close to ready for master.

Property Search Gray Tabs.png

In some free time (my own time) on Friday and Saturday I got custom profile bevels working for curves, which is something I've been wanting to do for a while. You can already use a curve for the full bevel shape, but this lets you edit a quarter "profile" of the bevel just like the modifier / tool.

Custom profile bevel on curves and text

I also worked a bit on the manual for the bevel operator and modifier, improving some descriptions and reordering tool settings.

Commits

  • UI: Use consistent layout for custom operator UI (17ebbdf1c1)
  • UI: Adjust Multiresolution Modifier Layout (6c7e62ef9b)
  • UI: Use property split for custom property edit popover (3d536f69f6)
  • Bevel: Refactor "Vertex Only" to an enum (4aa2a5481c)
  • UI: Small changes to bevel active tool layout (46b126a2c8)
  • Fix T78994: Clear selected pose doesn't work without animation (d42530824e)
  • UI: Add an outer boundary for edge panning, use in outliner (c2b0c64843)
  • UI: Use property split for simulation modifier (1fb9b6b1a1)
  • Fix T79160: Bevel modifier set to vertices by default (0e280b96ca)
  • UI: Move properties tab list creation from RNA to editor (6f3c37a3ff)

New In Review

  • D8376 UI: Use an operator to set the property editor's pinned data-block

Review

  • [Requested changes, accepted revision] D8336 Adding display resolution to ocean modifier
  • [Commented] D8194 Sculpt: Multires switch sculpt level operator
  • [Requested changes] D8025 UI: Fix inconsistency with gizmo highlight colors

Tracker

  • Reported: T79119 Hook modifier deformation not shown in edit mode
  • Investigated: 4
  • Invalid: 3

Next Week

I'll continue splitting patches out from the property search branch for review. I'd like to make more progress with search functionality (T77824) and work on some bugs for 2.90 as well.

July 13 - July 19

This was mainly just a bugfixing week, so not too much to report. If you're looking for anything visual, D8326 has some updates to custom operator UI that I did in my spare time. A nice improvement in my opinion.

One interesting bug was T79014, about how subpanels don't update their position when their parent panel is closed. Then when it opens they flicker in the wrong spot for a single frame. Waiting for feedback before continuing there.

Also, the active-fcurve-keyframe patch (D7737) is up as an experimental build here: https://builder.blender.org/download/branches/ If we can get this tested it can go in 2.90, but that's looking less likely as time goes by.

Commits

  • Fix T78902: Only check main modifier panel for expansion property (b818f6b55f)
  • UI: Add shortcuts for constraint panels (608d9b5aa1)
  • Fix T78959: Show current frame indicator when interface is locked (69d14c0ddb)
  • UI: Use property split for custom property edit popover (3d536f69f6)
  • Correct Blender version after last commit (b8601b64c7)
  • UI: Add missing row in curve profile template (0b24930541)
  • Cleanup: Replace 0 with False for boolean argument (b3c34011c0)

New In Review

  • D8326 UI: Use consistent layout for custom operator UI
  • D8304 Fix T78426: Use consistent header alignment when switching space types
  • D8319 Fix T78994: Clear pose transforms resets all poses even with only_selected
  • D8291 Cleanup: interface_panel.c: Renaming, comment formatting, some cleanup
  • D8308 Fix T78966: Add a redraw notification for 3D cursor reset

Review

  • [Updated, Implemented UI] D4960 New Voxel Mesher Modifier
  • [Requested Changes] D8265 UI: fix buttons ranges not properly updated when tabbing to next/previous button
  • [Updated] D1456 UI Animation System
  • [Requested Changes] D7946 [Scr-ops] Drag resize operator
  • [Requested Changes] D8336 Adding display resolution to ocean modifier
  • [Accepted] D7557 UI: Status Bar Changes
  • [Commented] D8168 Minor UI: Fix for File Open - Filter Dropdown - Filter label not correctly showing its inactive/active state
  • [Commented] D8321 Documentation: Bevel Vertices (ToDo)

Tracker

  • Investigated: 19
  • Invalid: 7
  • Resolved: 1
  • Duplicate: 0

Next Week

Bug sprint weeks always mean the other projects lose momentum, especially when strictly following the "only bug fix" guidelines. So I'll take a look at property search, see where that is and try to fix searching other tabs. I would also like to get the updates to operator custom UIs in 2.90.

June 6 - July 12

I spent most of the week working on property search (T77824). The search layout construction process is basically done, with only smaller tasks left.

Property Search Expanded Enum.png

On Friday I started working on getting property search to highlight other tabs that have a match. The larger parts are actually finished, the basics weren't nearly as difficult as I expected. Getting the tabs to display property might be tricky though, the expanded enum template can't currently gray out just a few of the icons.

Commits

  • UI: Improve transform constraint layout (4e8fc15586)
  • Fix T77730: ShaderFx Missing Update Notifier (a856de700b)
  • UI: Add shortcuts for shader effect panels (053e0c0af3)

New In Review

  • D8238 UI: Add constraint panel shortcuts

Review

  • [Commented] D8264 GPencil: New Length modifier
  • [Requested Changes] D7557 UI: Status Bar Changes

Tracker

  • Investigated: 4
  • Invalid: 3
  • Duplicate: 1

Next Week

I believe next week is a bug fixing week, so I'll do that. If I have some extra time I'll look at getting property search to highlight other tabs properly.

June 29 - July 5

I'm at a time in the property search project where I have to make some changes to the UI layout code, so I'm moving slowly there and being careful. I'm making progress on keeping the decorators and labels for more kinds of buttons. Here you can see the labels are kept for checkboxes, number buttons, and enums, but not expanded enums:

Property Search Labels Progress.png

Other than that, I mostly spent this week on smaller projects. I did a final pass on the modifier UI which ended up including a few more changes than I expected. But overall I'm quite happy with the results. One change I like particularly is using the expanded "mode" toggle below the modifier header more consistently.

Boolean Modifier UI 2.90.png

Whenever the property's label is redundant or implied and the item's text isn't too wide to fit within a reasonable width, we can expand the enum to make interaction a bit faster.

Commits

  • UI: Add shortcuts for modifier panels (1fa40c9f8a)
  • UI: Small Tweaks to Modifier Layouts for Consistency (06de1bddae)
  • UI: Tweak Cache File Template Layout (421ac266d0)
  • UI: Add shortcuts for grease pencil modifier panels (5d2005cbb5)
  • UI: Use sliders and [0, 1] ranges in ocean modifier (53d41e1a6f)
  • UI: Use consistent order in ocean modifier (7099459245)
  • Fix T78444: Duplicate "From Radius" in Cast Modifier UI (4f8a881715)
  • UI: Fix alignment in kinematic constraint layout (6a302e6845)
  • Fix T78513: Modifier apply shortcut not displayed (f58f09c9a9)
  • Clang-Tidy: Enable readability-redundant-control-flow (19ff145e66)
  • Cleanup: Deduplicate code for finding context object (a21cb22f8b)

New In Review

  • D8187 UI: Adjust Multiresolution Modifier Layout
  • D8159 Fix T77730: ShaderFx Missing Update Notifier
  • D8193 UI: Add an outer boundary for edge panning, use in outliner

Review

  • [Committed] UI: Use single column for cycles ray visibility checkboxes (f28e59bd74)
  • [Committed] UI: Alphabetize grease pencil modifier list (1d29822fa9)
  • [Commented] D7557 UI: Status Bar Changes
  • [Requested Changes, Committed] D7182 Ocean modifier : expose eigenvectors for use as maps
  • [Commented] D8173 Apply Modifier: support applying as shape key and keeping the modifier
  • [Requested Changes] D8025 UI: Fix Transform Gizmo 2D and Transform Gizmo 3D low highlight contrast and inconsistency throughout all gizmos

Tracker

  • Investigated: 3

Next Week

I'd like to finish the cleanup of the list panel code I started on Friday and make more progress on property search. Hopefully I'll finish up the "search layout" part of the task.

June 22 - 28

On Monday I finished up the modifier shortcuts patch (D8031). It works by giving panels a "custom data" RNA pointer, which could be useful elsewhere, and also as a way to generalize and clean up the list panel system from the modifier UI changes.

Modifier shortcuts enabled by default, customization is possible

On Tuesday, mostly on my own time, I looked at my constant radius bevel patch from last fall which works out a way to make the bevel profile a portion of a circle with a given radius. I was hoping it could be ready for 2.90, but it's not quite there. The main issue to resolve is that the angle between the two faces on either side of a profile is often different than the angle between the edges the profile is built from, but sometimes one looks better than the other.

On Wednesday I finished up another old bevel patch that just finished review. It's really more of a UI patch though, it adds free handles to the "Curve Profile" widget.

Free, aligned, vector, and automatic handle types

On Thursday and Friday I spent some time helping Julian organize the UI module's workboard, fixing a couple quick bugs I noticed from old tasks. I also finished up property search's interaction with panels, although I'm waiting for some feedback before I start finishing up the search layout building.

Commits

  • UI: Add Free Handle Types to CurveProfile Widget (baff05ad1c)
  • Bevel: Refactor profile type input to use an enum (6703c7f7f1)
  • UI: Update community themes (8618d72ca50a)
  • Fix T78269: Mirror modifier lost UV offset only (26d0fb3aef)
  • Fix T78049: Wrong icon for add cone tool (5f4a66c0e8)

New In Review

  • D8113 UI: Tweak Cache File Template Layout (fix for property separate layouts)
  • D8115 UI: Small Tweaks to Modifier Layouts for Consistency

Review

  • [Requested Changes] D8084 UI: Area Joining and Closing
  • [Requested Changes] D7182 Ocean modifier : expose eigenvectors for use as maps
  • [Accepted and Committed] D7990 Fix: Displace Modifier UV Layer UI not a pointer

Tracker

  • Investigated: 4
  • Invalid: 1

Next Week

Hopefully I'll finish up the search layout building pass, and make significant progress on the rest of the property search implementation.

June 15 - 21

This week the rest of the drag and drop patches made it in to master. There is only one left to finish up for F-Curve modifiers, and then that sort of work is mainly done for 2.90! After talking with the UI team about the feedback for the modifier UI changes we agreed on a few changes to the modifier headers and menus as well.

One change I didn't quite finish up this week is shortcuts for the modifier (and other) panels, which I'm excited to use myself. It uses the "lazy focus" of the mouse to choose which modifier to edit, and the shortcuts will be configurable in the keymap. By default there will be shortcuts for delete, apply, and duplicate.



I also made a fair amount of progress on property search. There are ctrl-F and alt-F shortcuts now, the interaction with panels is much better, and the search layouts are a bit more consistent. It looks like the hardest part of this will be finding a general but consistent way to make sure everything ends up in a single column layout while also maintaining button rows where they make sense.


Commits

  • UI: Drag and Drop Constraints, Layout Updates (eaa44afe70)
  • UI: Grease Pencil Modifier Drag and Drop, Layout Changes (ec963d9d7d)
  • UI: ShaderFx Drag and Drop, Layout Updates (bb4cef71ee)
  • UI: Improve Modifier Panel Header Menu (bcb2b8ab57)
  • UI: Modifier Panel Header Improvements (4cfdd10c2b)
  • UI: Ctrl-click on panel header expands & collapses subpanels ((c1c02f45f7)
  • Fix T77116: Current frame indicator text color hardcoded (046afacbc6)
  • Fix T77541: Unregistering DATA_PT_modifiers doesn't remove modifier panels ((ec25084f5a)
  • Cleanup: Use LISTBASE_FOREACH in interface_panel.c (a76542cbbf)
  • Fix T77596: UI: Correct "offset even" location in solidify modifier (73f8dd0f4c)
  • UI: Only show constaint head/tail property with subtarget (f2b5f731d5)

New In Review

  • D8031 [WIP] UI: Add shortcuts for modifier panels

Review

  • [Requested Changes] D7182 Ocean modifier : expose eigenvectors for use as maps

Tracker

  • Investigated: 5
  • Invalid: 2
  • Resolved: 1

Next Week

Hopefully I'll finish with the first milestone of property search.

June 8 - 14

With the modifier UI change being so large and touching many parts of Blender, there were bound to be some bugs. I mostly took Monday off, but on Tuesday and later on in the week I fixed all the bugs that have come up. There's still some work to do improving the menu situation in the panel headers though.

Earlier in the week I created patches for the grease pencil modifier and effects UI changes. I also found some time to work on the FCurve modifier UI, where I did a pass on the UI layouts and added drag and drop. Previously you can't reorder them at all, and some of property labels are completely invisible at the default width!

I created a task for the properties search work I'm doing: https://developer.blender.org/T77824 I'm happy with how it's going, I made some good progress on Friday. Although writing everything recursively for the layouts can get sort of old. (and buggy!)

New In Review

  • D7978 UI: Grease Pencil Modifier Drag and Drop, Layout Changes
  • D7985 UI: ShaderFx Drag and Drop, Layout Updates
  • D7997 [WIP] UI: Drag and Drop FModifiers, Layout Updates
  • D7938 Code Quality: Remove Obsolete Code in interface_panel.c
  • D7977 Fix T77541: Unregistering DATA_PT_modifiers doesn't remove modifier panels
  • D7967 Fix T77596: UI: Move use_even_offset to main solidify modifier panel

Commits

  • Fix T77694: Start panel animation when expansion data changes (a9dfad831b)
  • UI: Only set first bit of modifier expansion flag with Python (b0ac7a89b0)
  • UI: Set modifier panel expansion on every redraw (819ebc9901)
  • UI: Only set panel data expand flag for active panels (bfa5eceb89)

Review

  • [Accepted and Committed] D7998 UI: Particles Display Icons Layout in line with current Modifier UI layout.
  • [Accepted and Committed] D8001 UI: Physics Display Icons Layout in line with current Modifier UI layout.


Tracker

  • Reported: T77730 ShaderFx Missing Update Notifier
  • Investigated: 7
  • Invalid: 2

Next Week

Next week I'll start spending some more serious time on property search. I'm hoping I can make fast progress by dedicating most of my time to it. I'd also like to finish up some other patches and get drag panning to work in the node editor, which would be a fun break.

June 1 - 7

This was a good week! I got to commit a fair amount of the changes I've been working on for a while. First, The modifier UI changes made it in. Although there are still some things to resolve, and a few bugs it introduced that I need to finish working on, I haven't seen any talk of it causing a crash, and the general response seems to be good. I spent a while responding to feedback on devtalk.

The 2D region "drag panning" also made it to master. I'm quite happy with the solution for smooth scrolling that ended up in the commit. It ramps up the scrolling speed with a "smootherstep" curve for a second, and changes it with the mouse distance from the edge.

I also continued some work on property search, although I'm currently trying to solve a problem where there is too much extra empty space, so there isn't much visible progress there. I did make some debugging code to print out the contents of a uiLayout for a start.

New In Review

  • D7897 Fix T77116: UI: Draw Current Frame Indicator Text with Theme Color
  • D7922 Fix T77300: Some Scientific Notation Evalutation Has Incorrect Results
  • D7938 Cleanup: Remove panel overlap checking and flag

Commits

  • UI: Drag and Drop Modifiers, Layout Updates (9b099c8612)
  • UI: Pan 2D Region When Dragging to Boundary (859505a3da)
  • Fix T74552: Distribute negatives in number input (45dbc38a8b)
  • UI: Fix T77173: Report Background Colors for 2.83 Release (7fc0053c27)
    • UI: Update Bundled Themes for Recent Fix to Report Backgrounds (Ad9dd9e0bb)
  • UI: Rename "View Camera Center" Op to "Frame Camera Bounds" (3cce8afe2c)
  • Fix T77139: UI: Add "View Camera Center" to View Menu (b0038b8d73)
  • Fix T77289: Crash when typing negative numbers (a5e9f024f2)
  • Cleanup: Remove Obsolete Current Frame Indicator Drawing Code (4f3e686cad)
  • Cleanup: Use const context for some UI templates (071cc71fb0)

Review

  • D7946 sArea Resize operator.
  • D7783 Keyframe: Copy To Selected

Tracker

  • Investigated: 7

Next Week

I'd like to fix all the bugs the modifier change introduced and hopefully land the constraint and grease pencil changes too. Some stretch goals are progressing on property search and maybe trying to use the 2D region panning when dragging in the node editor.

May 25 - 31

This week I spent most of my time continuing work on property search. At this point it removes the panels that have all their properties filtered out. One detail that I missed at the beginning was that even if a panel had no buttons after the search filter, it should still be drawn if its subpanel has buttons left. Anyway, this is a nice milestone to cross because it starts to make the connection from the layout system property search to the panel system.

The list panel patch for the updated modifier UI made it through review this week too. I've kept the other patches up to date and they should be very close to getting into master.

I also looked into a change to the snapping elements enum where multi-select would be used without holding shift. I proposed a more general change to give these improvements everywhere in D7576.


New In Review

  • D7813 Fix T74552: Distribute negatives in number input
  • D7865 Fix T77139: UI: Add "View Camera Center" to View Menu
  • D7866 UI: Rename "View Camera Center" Op to "Frame Camera Bounds
  • D7883 UI: Change Behavior for Multi-Select Enums

Commits

Tracker

  • Investigated: 7
  • Invalid: 5
  • Needs Information: 1


Next Week

Next week should be the week that the modifier, constraint, etc UI patches start landing, which is quite exciting! I'd like to get property search closer to the polishing phase as well.

May 18 - 24

Another week of mainly looking into bug reports. I'm finding that it takes quite a while to start looking into a report for a new area and the rate of dead ends is fairly high, but the second time I look into any area of the code is productive much more quickly.

One particularly interesting task was T74552, where writing -1m50cm or -1'6" in a text box would resolve to -05m and -6" respectively. The negative only applies to the first of the two numbers, and there's an implied + between the two values, which is quite confusing.

Fixes for:

  • Incorrect bevel behavior with small edge weights (c554f4e14f)
  • Inaccessible / inconsistent 3D mouse UI (7e4654e4ce)
  • Negatives don't distribute in number input (D7813)
  • Investigated bug reports, with some more time spent looking into T76861, T76803, T75784
  • Kept my various patches up to date with latest master as they wait for final review.


Next Week

I'd like to finish up the number input fix and the stack UI patches finally. I'd also like to continue working on property search-- hopefully the basics of that are pretty close to done.


May 11 - 17

On Monday I did some final work on textfield undo / redo support before Campbell committed it with some more modifications. The list panel patches are getting quite close as well, thanks to Julian's review.

Investigated Reports

In Review

  • D7737 Fix T76595 Graph Editor: No indication of active keyframe
  • D7738 UI: Small Changes to Graph Editor Active Vertex Panel

Commits

Other

  • Tested the Wayland support, submitted a report about it: T76720
  • Various UI discussions (Button changes at hard limits, node socket side-panel UI)
  • Other bug triaging

Next Week

More bug fixing! Maybe the modifier UI patch will make it into master too.

May 4 - May 10

This week I focused on wrapping up code review for the list panel patches and the text-field undo-redo support patch. I also started to work on search for the properties window. After a discussion with Julian Eisel I worked out the right way forward, and the basics are working, but there will be a lot of complications to solve before it's finished, one obvious problem is keeping groups of buttons aligned in the search view.

  • I also did some quick UI updates for the curve draw tool: D7652
  • And some basic interface code review for some grease pencil patches: D7648 D7608
  • Before deciding on the next project I updated an old patch, still waiting for final review though: D6470

Next Week

It's not clear if we'll finish code review for the list-panel patches this week because of the bug fixing sprint. But it would be very nice as it's getting old keeping the branch up to date with master.

April 27 - May 3

Earlier in the work I worked with Matias Mendiola from the Grease Pencil team to work out updated UI layouts for grease pencil modifiers and effects. I also moved the layout code for each to callbacks for the types, keeping it consistent with the changes for mesh modifiers. This means the only remaining "stack" UI to apply the list panel system to for drag-drop is sequencer strip modifiers, which I haven't looked into yet.

I also worked on updating the first two patches for the stack UI changes which got a first round of review. And also reworked the text field undo-redo patch based on review.

I looked into / triaged 5 reports Committed fix 7212dbd7be

Next Week

With the main development for the stack UI project finished, it's time to pick the next project, which will involve discussion with other UI team members. I'd like to have an organized and prioritized list of projects to tackle early in the week.

April 20 - 26

I focussed on cleaning up the modifier-panels-ui branch to remove unrelated changes and clean up the code in preparation for review. Three patches are posted for review now:

  • D7490 The underlying system to use panels to represent lists.
  • D7498 Drag and drop modifiers and layout updates
  • D7499 The same system implemented for constraints.

One of the constraint layout updates. Maybe "Owner Space" should still be "Convert" though

I also worked on a project Campbell suggested to familiarize myself further with UI code, undo support in button text fields. My patch for that is ready for review here: D7518

And finally I reworked two panel dragging quality of life improvement patches. Together it should all be a great improvement.

  • D7465 adds the ability to pan regions when dragging to their edges.
  • D7462 Fixes some incorrect scrolling when dragging the last two panels in the list.

Tracker

Next Week

I've mainly finished the projects I've started out with, so it's time to start planning the next project. I don't want to start anything too large while my current patches are in review though, so I'd like to work on some smaller things, hopefully the "medium" and "small" projects from my Ideas page.


April 15 - 19

The first (half) week of work for my 3 month grant. I mainly worked on finalizing the modifer-ui-panels branch this week. The main code for using panels to represent lists is almost ready for review, there is just some final generalization to do.

  • Draw list panels with the theme of the box widget, solving AA and transparency issues. (ac943796d4)
  • Fix a small issue when dragging the final panel in a region (54ac90625f)
  • Initial code for scrolling regions when panels are dragged to the top or bottom (e8a6759c1d)
  • Draw subpanels above panels when dragging, which allowed us to get rid of the transparency when dragging panels (3b0d86d8b1)

I also had some extra time this weekend and implemented the same system for constraint panels, which was pretty quick because of the generality of the list panel system.

  • Use panels for constraints (d9f542bbb0)
  • Rework the layouts for transform constraints. Huge visual and legibility improvements here (f787b7f1cf)
  • Dragging and dropping, panel expansion saving for constraints (f12a66817d

Also closed 2 reports as duplicates.

Next Week

I'd like to submit the list panel system and the modifier panel UI for code review as two separate patches this week. Constraints won't take much longer to finish up too, so that should be possible. I'd also like to start looking into undo support for text input fields.