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.



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 ,
 * Fix T84029: Point Distribution node crash on mesh with no faces
 * Fix T84024: Empty image opacity labeled transparency
 * Cleanup: Fix typo in tests error message

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

New in Review
 * : Cleanup: Remove remaining unused code for DispList "bevel_split"
 * : 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.



Commits
 * UI: Grammar: "Clean Up" vs "Cleanup" in operator name
 * Cleanup: Reduce indentation ,
 * Cleanup: Reduce variable scope in object.c
 * Cleanup: Use true and false for booleans
 * Cleanup: Clang format
 * Cleanup: Declare variables where initialized

Review
 * `Requested changes` : Bevel on curves does not create distorted geometry anymore
 * `Commented` : Fix T80979: Fixed the bevel distortion issue at bends
 * `Accepted` : Cleanup: Fixes for labels and descriptions in various places
 * `Accepted, committed` : Cleanup: Spelling compound words
 * `Accepted, committed` : Cleanup: Fix capitalization in various places
 * `Accepted` : Cleanup: "Warning" in tooltips/description, use unified format
 * `Accepted` : Cleanup: use of the term "Metaballs"
 * `Requested changes, accepted` : Cleanup: Remove redundant WPaint, Procedural prefixes in labels

New in Review
 * : Geometry Nodes: Attribute Vector Math Node
 * : Update addons for D9697 "_RNA_UI" removal
 * : 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
 * Geometry Nodes: Make random attribute node stable
 * Geometry Nodes: Input data type utility function
 * Geometry Nodes: Boolean attribute type ,
 * Outliner: Set active modifier on click
 * UI: Rename "Float Color" attribute data type to "Color"
 * UI: Slightly improve alignment in selection tool icons
 * Fix T83868: Button animation states no longer visible without emboss
 * Fix T83861: Snapping panel from shortcut dissapears after click
 * Fix incorrect RNA type warning
 * Blenloader: Add utility function to write double array
 * Cleanup: Use abstraction for attribute math node input
 * Cleanup: Use LISTBASE_FOREACH macro, reduce variable scope
 * Cleanup: Use typedef for UI emboss type enum
 * Cleanup: Declare variables where initialized
 * Cleanup: Remove unused variables from the bNode struct ,
 * Cleanup: Various clang tidy warnings
 * Cleanup: Reduce variable scope
 * Cleanup: Clang tidy else after return
 * Cleanup: Use nullptr instead of NULL in C++ code
 * Cleanup: Use bool instead of int
 * Cleanup: Use true and false for booleans
 * Cleanup: Correct comment

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

New in Review
 * : 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
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.

Commits to master
 * Geometry Nodes: Attribute Fill Node
 * Geometry Nodes: Add helper function to check if attribute exists
 * UI: Use words instead of symbols for float comparison items
 * UI: Add more property editor operators to IC keymap
 * Fix T83050: Crash dragging shared collection to master collection
 * Fix T83673: Custom node trees selectable in nodes modifier
 * Cleanup: Use LISTBASE_FOREACH in node transform code
 * Cleanup: Reduce variable scope in view_2d_ops.c

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

New in Review
 * : Geometry Nodes: Make random attribute node stable
 * : Geometry Nodes: Boolean Attribute Type

Tracker
 * Reported : 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, 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
 * Cleanup: Use LISTBASE_FOREACH macro in windowmanager intern
 * Cleanup: Reduce variable scope in node drawing code
 * Cleanup: Use LISTBASE_FOREACH for node tree sockets RNA code
 * Cleanup: Declare variables where initialized
 * Cleanup: Clang tidy void argument
 * Cleanup: Use typedef for button string info type

Review
 * `Requested Changes` : VSE: Change Paste Position
 * `Accepted` : UI: Keymap Preferences, remove decorators
 * `Commented` : UI: Viewport Navigate Gizmo Refactor
 * `Requested Changes` : VSE: Add Overlay popover to toggle Texts, F-curves, Offsets, Waveforms on/off.

New in Review
 * : UI: Improve node group input / output list interface
 * : WIP: Refactor IDProperty UI data storage
 * : 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
 * UI: Fix incorrect offset for panel label when zooming in
 * Cleanup: Use LISTBASE_FOREACH macro in screen.c
 * Cleanup: Use "region" for ARegion variable names

Commits to Geometry Nodes
 * Geometry Nodes: Node editor header interaction with active modifier
 * Geometry Nodes: Initial implementation for attribute math node
 * UI: Improvements to interaction with active modifier
 * Geometry Nodes: Use context for active modifier operators
 * Geometry Nodes: Use ID template node group selector in the modifier
 * Geometry Nodes: Add boilerplate code for attribute math node
 * Geometry Nodes: Fix missing node editor redraw for active modifier
 * Geometry Nodes: Always use the active modifier for shortcuts
 * Geometry Nodes: Make next modifier active when deleting
 * Geometry Nodes: Improve wording of modifier error messages
 * Cleanup: Correct node name in definition function

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

New in Review
 * : 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.



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
 * UI: Remove X axis panel dragging
 * Fix T82439: Crash moving collections between scenes
 * Fix T82341: Warning in terminal during property search
 * UI Code Quality: Refactor panel drawing function
 * UI: Fix panel drag icon added to redo panel
 * Fix: Sub-panel backdrop sometimes draws when closed
 * Cleanup: Grammar: "Allow to" vs gerund
 * Cleanup: Remove unnecessary NULL check
 * Cleanup: Clang tidy ,
 * Cleanup: Use LISTBASE_FOREACH macro ,
 * Cleanup: Improve readability of curve displist building
 * Cleanup: Use const arguments in curve bevel
 * Cleanup: Reduce indentation
 * Cleanup: Declare variables where initialized
 * Cleanup: Move function to proper section

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

New in Review
 * : 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
 * Fix T82596: Fly/walk navigation crash
 * Cleanup: Simplify panel activate state function
 * Cleanup: Remove unecessary logic in panel code
 * Cleanup: Move PanelType flag from DNA to BKE header
 * Cleanup: Make panel type flag names more clear

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

New in Review
 * : UI: Remove panel dragging in the X axis
 * : 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
 * Fix T82120: Arc miter bevel creates miters on straight edges
 * Property Search: Fix missing update switching tabs after search
 * Fix T81691: Use-after-free with property search and hovered button
 * Fix T82417: Panels draw below others while animating after drag
 * Move "Camera Parent Lock" from preferences to Object Relations
 * Fix incorrect colors in grease pencil strength tool icon
 * Fix assert on mouseover of blocks not using the layout system
 * Remove incorrect assert in button group code
 * UI: Simplify some tool icon geometry ,
 * Cleanup: Improve property search related comments panel code
 * Cleanup: Remove unused parameter in panel code
 * Cleanup: Mark arguments as const ,
 * Cleanup: Remove dead code in bevel operator
 * Cleanup: Use typedef for bevel angle kind enum
 * Cleanup: Declare variables where initialized
 * Cleanup: Clang tidy
 * Fix for previous cleanup commit
 * Cleanup: Remove incorrect comment
 * Cleanup: Use LISTBASE_FOREACH macro ,
 * Cleanup: Move function to proper file
 * Cleanup: Make panel function static
 * Cleanup: Remove unused drag scaling code for panels
 * Cleanup: Remove unused Panel.snap from DNA and handler code
 * Cleanup: Simplify panel collapse handler logic
 * Cleanup: Use descriptive variable names
 * Cleanup: Remove unused variable

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

New in Review
 * : Property Search: Fix warning

Tracker
 * Reported : Property Search: Warning in terminal
 * Reported : 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.





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
 * Fix use after free in interface handler
 * Fix T82205: Curve Hooks not working
 * Cleanup: Remove unused IDProperty function
 * Cleanup: Use an enum to set instanced panel expansion
 * Cleanup: Use const for PointCloud variable
 * Cleanup: Update comment
 * Cleanup: Use doxygen sections
 * Cleanup: Fix typo in comment

Review
 * `Proposed alternate solution, accepted` : Fix for text marks of the "Color Grid" generated image
 * `Accepted` : UI: Fix for checkbox width calculation
 * `Accepted` : 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.



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 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
 * Fix use of uninitialized variable
 * Fix panel type use after free when reloading scripts
 * Fix T81818: Outliner mode column crashes with shared object data
 * Fix T81909: Translation missing for some labels in modifier panels
 * Fix T81967: Crash when using extrude on a text object
 * UI: Fix typo in sculpt trim tool description
 * Manual: Update curve shape panel image rBM7278
 * Cleanup: Use LISTBASE_FOREACH macro in curve code ,
 * Cleanup: Simplify outliner mode column drawing function
 * Cleanup: UI Code Quality: Cleanup ui_but_update_from_old_block
 * Cleanup: Return early in some curve functions
 * Cleanup: Use DNA deprecated guards around old flags
 * Cleanup: Improve function and variable name

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

New In Review
 * UI: Remove incorrect RNA percentage property definitions

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

Tracker
 * Reported 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
 * UI: Tweak decimate modifier layout
 * UI: Add highlight arguments to tab buttons
 * UI: Add reset to default value to keymap
 * UI: Align related properties
 * UI: Update deep grey addon theme
 * Fix T81697: Property search crash with python handlers
 * Fix T81686: Confusing add menu in pose mode
 * Fix T81800: Datablock pin not working for bones in pose mode
 * Fix compile error in lite build after recent commit
 * Fix Asan warning in property editor texture tab
 * Fix warning for duplicate field in DNA defaults
 * Cleanup: Use DNA defaults for fluid modifier
 * Cleanup: Use DNA defaults for grease pencil modifiers
 * Cleanup: Miscellaneous code quality changes in wm director ,
 * Cleanup: Reduce variable scope in screen directory
 * Cleanup: Reduce variable scope in area.c
 * Cleanup: Declare variables where initialized in context.c
 * Cleanup: Use doxygen sections in space_buttons.c
 * Cleanup: Comment formatting, grammar
 * Cleanup: Use enum for return type

New In Review
 * Move "Camera Parent Lock" from preferences to 3D view
 * [WIP] UI: Improve property editor header layout

Review
 * `Committed` : UI: Show more information in open file tooltip
 * `Accepted` : Fix for T81400: Block Width Corrections

Tracker
 * Reported : heap-use-after-free when button is active and property search starts.
 * Reported : 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.





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
 * Fix T81545: Moving nested collections changes view layer flags
 * UI: Add auto keyframing popover
 * UI: Update community themes rBAe6cd87286b
 * UI: Fix incorrect inactive status for curve properties
 * UI: Fix alignment in object type visibility popover
 * Fix T81488: Deleting an Object Constraint crashes Blender
 * Fix T81470: Buttons in closed panel visible during search
 * Cleanup: Use short for properties editor tab list
 * Cleanup: Use LISTBASE_FOREACH macro
 * Cleanup: Declare variables where initialized ,

New In Review
 * UI Code Quality: Cleanup ui_but_update_from_old_block
 * Property Search: Use fuzzy string matching

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

Tracker
 * Reported : 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
 * Property Search: Set panel expansion when tab changes
 * Property Search: Set expansion properly for child panels
 * Property Search: Differentiate search filtered and inactive buttons
 * Property Search: Don't use search color for subpanel titles
 * UI: Improve UV sticky select mode description
 * UI: Remove second person in warning message
 * UI: Move button groups from layout to block level
 * UI: Create button group if none exists
 * Fix use after free deleting object with modifier panels visible
 * Fix implicit conversion from pointer to bool
 * Fix T78503: Disabled layout portion passes mouse through
 * Fix stack use after scope error after recent cleanup
 * Cleanup: Declare variables where initialized ,
 * Cleanup: Use DNA defaults for cloth modifier
 * Cleanup: Use LISTBASE_FOREACH macro in outliner code
 * Cleanup: Make function private
 * Cleanup: Reduce indentation
 * Cleanup: Remove unused View2D variables and function
 * Cleanup: Remove unused variable
 * Cleanup: Clang tidy fixes

New In Review
 * Fix: Possible to add multiple presets with the same name

Review 9059
 * `Requested changes, accepted` UI: Fix drawing of the sidebar tabs
 * `Accepted` Recent files menu: dynamic tooltip showing filepath
 * `Commented` UI - Topbar Menu Changes
 * `Commented` UI: Changes to 'Generator' f-modifier layout
 * `Accepted` Fix warnings in cloth brush int casts

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
 * UI: Clarify curve geometry factor and mapping tooltips
 * UI: Improve curve geometry property tooltips
 * Property Search: Fix matches in headers not used for expansion
 * Fix T78823: Slash in custom property name does not work
 * Fix T81161: Bad properties context panel placement loading old files
 * Fix T81073: PDT fillet tool not working
 * Fix warning building without potrace
 * Fix incorrect comparison for panel sorting
 * Cleanup: Remove unecessary storage of search filter in uiBlock
 * Cleanup: Miscellaneous code improvements
 * Cleanup: Declare variables where initialized, lower scope ,
 * Cleanup: Reduce indentation by returning early ,
 * Cleanup: Quiet unused variables warning
 * Cleanup: Remove unused function
 * Cleanup: Use canonical variable name
 * Cleanup: Use shorthand variables
 * Cleanup: Move function to proper section

New In Review
 * Property Search: Differentiate search filtered inactive buttons
 * Property Search: Don't use search color for subpanel titles
 * Property Search: Reset panel expansion when exiting search
 * Property Search: Set panel expansion when tab changes

Review
 * `Requested changes, accepted` GPencil: New Trace images using Potrace
 * `Requested changes` Boolean Modifier: operand display operators and render/visibility settings
 * `Accepted` UI: Add icons for new sculpt trim tools
 * `Commented` Add Bisect Modifier
 * `Requested changes` Fix T79275: Missing update for Pinned Active Tool panels displaying in another sidebar
 * `Commented` 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.



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
 * Curves: Add custom profile bevel support
 * UI: Refactor panel alignment function
 * Curves: Allow caps for all geometry types
 * Property Search: Build button groups for Search
 * Property Search: Move properties context buttons back to a panel
 * Property Search: Quick start and clear operators
 * Property Search: Add "search match" theme color
 * Property Search: Properly set expansion for instanced panels
 * Property Search: Don't set expansion for panels in inactive tabs
 * UI: Gray out fade inactive geometry overlay slider when off
 * UI: Use property split in UV editor panels
 * UI: Remove colons in property names
 * UI: Always set curve fill mode inactive for object bevel type
 * Fix: Property search crashes searching enums with separators
 * Fix: Text object custom profile bevel not written to file
 * Fix 80909: Switching to profile bevel can explode Curve geometry
 * Fix T80993: Crash duplicating inactive workspace
 * Cleanup: Comment formatting in interface_panel.c
 * Cleanup: Split off parts of large panel layout function
 * Cleanup: Split properties editor layout function
 * Cleanup: Use enum instead of defines for panel runtime flag
 * Cleanup: Use "r_" prefix for return arguments
 * Cleanup: Extract "draw_fcurve" as a separate function
 * Cleanup: Doxygen sections
 * Cleanup: Correct comments
 * Cleanup: Rename variables in panel alignment code
 * UI: Refactor some list panel expansion code
 * Bump file subversion after recent theme-related changes
 * Cleanup: Use shorthand variables
 * Cleanup: Fix clang tidy inconsistent parameter warning

New In Review
 * UI: Add curve geometry start and end panel
 * UI: Add stack add search menu to properties editor
 * Cleanup: Rename functions in interface_panel.c
 * Bevel Modifier: Use angle limit method by default

Review
 * `Accepted, committed` UI: Add grid-related theme options
 * `Accepted` UI: Add icons for new face-set tools
 * `Accepted` UI: Improve labels in "Convert to" menu
 * `Accepted` Dont show temporary IK constraints in the constraint stack
 * `Accepted` Cleanup: UI: Fix capitalization
 * `Requested Changes` 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.

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
 * UI: Changes to timeline playback popover
 * Decimate Modifier: Restore vertex group factor property in UI
 * UI: Use operator to set property editor's pinned data-block
 * Cleanup: Rename public "bUnit" functions
 * Cleanup: Use bool instead of int
 * Cleanup: Remove unused variables and function

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

Review
 * `Accepted` Fix T80464: Crash deleting bone constraints when the armature layer is not active
 * `Commented` Boolean Modifier: Operand types
 * `Commented` UI: Add icons for new face-set tools
 * `Commented` 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: (FModifier UI updates), (Graph editor active keyframe), (Custom profile bevel for curves), (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, "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,. 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.

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

New In Review
 * UI: Add temperature units
 * UI: Keep track of button's relationship with label buttons
 * Fix T80356: Icon alpha theme property affects previews
 * Decimate Modifier: Restore vertex group factor property in UI

Review
 * `Commented` UI: Add grid-related theme options
 * `Commented` 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.

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. Hopefully next week Blender will have proper Kelvin, Celsius, and Fahrenheit units. And there's always the odd proposed visual change too:



Commits
 * Fix T68317: Panel "A" key doesn't collapse subpanels properly
 * Boolean Modifier: Reorder properties
 * Cleanup: Declare variables where they are initialized
 * Cleanup: Move panel category drawing to proper section
 * UI: Cleanup / refactor region panel event handling
 * UI: Avoid redundant loops in region panel handler
 * Clang Tidy: Fix warning
 * Clang Tidy: Fix no lint marker placement
 * Clang Tidy: Fix readability-delete-null-pointer warnings ,

New In Review
 * Use DNA defaults system for modifiers
 * UI: Expose important settings from file browser popovers
 * UI: Use property split layout for add torus operator

Review
 * `Requested changes` Wavefront obj: Add exporter specific code.
 * [Updated] Create new Temperature unit
 * [Requested changes and committed] UI: Add file browser alternating row theme color
 * `Accepted, committed` UI: Update bundled themes with alternating row color
 * `Requested changes` UI: Add grid-related theme options
 * `Accepted, committed` UI: Improve curve grid drawing code
 * `Requested changes` Popover search menu when Drag&Release a NodeLink in node editors
 * `Commented` UI - Topbar Menu Changes
 * [Requested changes and accepted] Outliner: Create new collection with selected objects
 * `Accepted, committed` Cleanup interface_handlers.c
 * `Accepted` UI: Make labels to be more correct
 * `Accepted` Fix for T75369: Text Editor Line Color
 * `Requested changes` UI: Various Widget State Changes
 * `Requested changes` 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



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
 * BLI Listbase: Add iterator macro that increments an index
 * UI: Remove panel X axis closing code
 * Cleanup: Remove unused variable
 * Cleanup: Remove unused variables for horizontal panels
 * Cleanup: Use LISTBASE_FOREACH in editors/screen directory
 * UI: Fix collapsed panels not drawing header buttons
 * UI: Cleanup in interface_panel.c
 * UI: Fix panel collapse all behavior inverted
 * Fix T80013: Crash when toggling maximized area
 * Clang tidy: Fix else after return
 * Cleanup: Clang Tidy: Resolve readability-delete-null-pointer error

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:

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
 * Cleanup: Reduce scope of variable declarations in bmesh_bevel.c
 * UI: Add sculpt cloth filter tool icon
 * UI: Simplify / clean up geometry icons (, rBL62475, rBL62476,, , rBL62477)
 * UI: Remove cutoff text in popovers for 2.90 release
 * UI: Category support for instanced panels
 * Cleanup: Reduce indentation level
 * UI Code Quality: Use derived struct for some button types
 * UI: Correct grammar in property name and description
 * UI: Fix type in multires modifier subpanel
 * UI: Fix typo and simplify cloth filter type description
 * Cleanup: Resolve clang tidy warning / error
 * Cleanup: Use sizeof first in allocations
 * Cleanup: Remove unecessary variables
 * Cleanup: Use const for context
 * Cleanup: Quiet GCC maybe uninitialized warning

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, 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
 * Ocean Modifier: Fix render resolution only used for baking
 * Cleanup: Avoid double operator name lookup
 * Cleanup: Bevel: Split two case for loop into separate function
 * Cleanup: Reduce indentation in function

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 Tracker
 * `Accepted, committed` D8336 Adding display resolution to ocean modifier
 * `Accepted, 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
 * 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
 * Community Themes: Update Deep Grey (rBA497f422df0a3)
 * Cleanup: Doxygen sections, comment formatting
 * Cleanup: Split curve bevel into separate file
 * Cleanup: Use bool instead of int

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.

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.

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
 * UI: Adjust Multiresolution Modifier Layout
 * UI: Use property split for custom property edit popover
 * Bevel: Refactor "Vertex Only" to an enum
 * UI: Small changes to bevel active tool layout
 * Fix T78994: Clear selected pose doesn't work without animation
 * UI: Add an outer boundary for edge panning, use in outliner
 * UI: Use property split for simulation modifier
 * Fix T79160: Bevel modifier set to vertices by default
 * UI: Move properties tab list creation from RNA to editor

New In Review
 * D8376 UI: Use an operator to set the property editor's pinned data-block

Review Tracker
 * [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
 * 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
 * UI: Add shortcuts for constraint panels
 * Fix T78959: Show current frame indicator when interface is locked
 * UI: Use property split for custom property edit popover
 * Correct Blender version after last commit
 * UI: Add missing row in curve profile template
 * Cleanup: Replace 0 with False for boolean argument

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.



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
 * Fix T77730: ShaderFx Missing Update Notifier
 * UI: Add shortcuts for shader effect panels

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:



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.



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
 * UI: Small Tweaks to Modifier Layouts for Consistency
 * UI: Tweak Cache File Template Layout
 * UI: Add shortcuts for grease pencil modifier panels
 * UI: Use sliders and [0, 1] ranges in ocean modifier
 * UI: Use consistent order in ocean modifier
 * Fix T78444: Duplicate "From Radius" in Cast Modifier UI
 * UI: Fix alignment in kinematic constraint layout
 * Fix T78513: Modifier apply shortcut not displayed
 * Clang-Tidy: Enable readability-redundant-control-flow
 * Cleanup: Deduplicate code for finding context object

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
 * `Committed` UI: Alphabetize grease pencil modifier list
 * `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.



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.



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
 * Bevel: Refactor profile type input to use an enum
 * UI: Update community themes (8618d72ca50a)
 * Fix T78269: Mirror modifier lost UV offset only
 * Fix T78049: Wrong icon for add cone tool

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, 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
 * UI: Grease Pencil Modifier Drag and Drop, Layout Changes
 * UI: ShaderFx Drag and Drop, Layout Updates
 * UI: Improve Modifier Panel Header Menu
 * UI: Modifier Panel Header Improvements
 * UI: Ctrl-click on panel header expands & collapses subpanels (
 * Fix T77116: Current frame indicator text color hardcoded
 * Fix T77541: Unregistering DATA_PT_modifiers doesn't remove modifier panels (
 * Cleanup: Use LISTBASE_FOREACH in interface_panel.c
 * Fix T77596: UI: Correct "offset even" location in solidify modifier
 * UI: Only show constaint head/tail property with subtarget

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
 * UI: Only set first bit of modifier expansion flag with Python
 * UI: Set modifier panel expansion on every redraw
 * UI: Only set panel data expand flag for active panels

Review
 * `Accepted, committed` D7998 UI: Particles Display Icons Layout in line with current Modifier UI layout.
 * `Accepted, 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
 * UI: Pan 2D Region When Dragging to Boundary
 * Fix T74552: Distribute negatives in number input
 * UI: Fix T77173: Report Background Colors for 2.83 Release
 * UI: Update Bundled Themes for Recent Fix to Report Backgrounds
 * UI: Rename "View Camera Center" Op to "Frame Camera Bounds"
 * Fix T77139: UI: Add "View Camera Center" to View Menu
 * Fix T77289: Crash when typing negative numbers
 * Cleanup: Remove Obsolete Current Frame Indicator Drawing Code
 * Cleanup: Use const context for some UI templates

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
 * UI: List Panel System
 * Cleanup: Quiet unused variable warning in non-debug builds
 * I also committed a group of smaller UI patches for the VSE from Peter Fog / tintwotin.

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, 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
 * Inaccessible / inconsistent 3D mouse UI
 * Negatives don't distribute in number input (D7813)


 * Investigated bug reports, with some more time spent looking into, ,
 * 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 Graph Editor: No indication of active keyframe
 * D7738 UI: Small Changes to Graph Editor Active Vertex Panel

Commits
 * Fix Object join doesn't respect parenting
 * UI: Graph Editor: Draw Handles Lines With Smoothing

Other
 * Tested the Wayland support, submitted a report about it:
 * 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

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.



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
 * Closed as invalid:, , ,
 * Needs information: ,
 * Fix in review:

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.
 * Fix a small issue when dragging the final panel in a region
 * Initial code for scrolling regions when panels are dragged to the top or bottom
 * Draw subpanels above panels when dragging, which allowed us to get rid of the transparency when dragging panels

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
 * Rework the layouts for transform constraints. Huge visual and legibility improvements here
 * Dragging and dropping, panel expansion saving for constraints (

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.