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.
- 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
- [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
Reported T80782 GPU: Curve editing widget point size broken after recent commit
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.
- 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,
- [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
Known Issue: 6
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.
- 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
- [Commented] D8754 UI: Add grid-related theme options
- [Commented] D8754 Wavefront obj: Add exporter specific code.
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 (D4401). Hopefully next week Blender will have proper Kelvin, Celsius, and Fahrenheit units. And there's always the odd proposed visual change too:
- 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
- [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
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.
- 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
- [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
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]
- Cleanup: Reduce scope of variable declarations in bmesh_bevel.c (7e9f47c06c)
- UI: Add sculpt cloth filter tool icon (f66fc94da6)
- UI: Simplify / clean up geometry icons (53683dec7d, rBL62475, rBL62476, 0664194497, aabbb515d6, rBL62477)
- UI: Remove cutoff text in popovers for 2.90 release (9ab3b8f7f4)
- UI: Category support for instanced panels (1da053956a)
- Cleanup: Reduce indentation level (3eebdf8a2d, 2c7394acce)
- UI Code Quality: Use derived struct for some button types (570044e9f4, 0ab21bf06a, cd179b5048)
- UI: Correct grammar in property name and description (d0c0a2e392)
- UI: Fix type in multires modifier subpanel (c300fc56c3)
- UI: Fix typo and simplify cloth filter type description (8010cbe620, 5c78c16b14)
- Cleanup: Resolve clang tidy warning / error (b0485d47ef)
- Cleanup: Use sizeof first in allocations (18b1d1af95)
- Cleanup: Remove unecessary variables (90b8df8a99)
- Cleanup: Use const for context (337b6d0758)
- Cleanup: Quiet GCC maybe uninitialized warning (93304b483a)
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
- [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
Reported T79754: Heap Buffer Overflow Using Boundary Brush
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.
- 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
- [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)
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.
- Community Themes: Update Deep Grey (rBA497f422df0a3)
- Cleanup: Doxygen sections, comment formatting (7dfc2f5137)
- Cleanup: Split curve bevel into separate file (5893a1562f)
- Cleanup: Use bool instead of int (c3f6227f30)
New In Review
- D8434 UI: Changes to timeline header popovers
- [Commented] D7517 Add rotation value to array modifier
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.
- 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
- [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
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.
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.
- 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
- [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)
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.
- 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
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.
- 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
- [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
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.
- 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
- [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
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
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.
- 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
- [Requested Changes] D7182 Ocean modifier : expose eigenvectors for use as maps
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
- 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)
- [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.
Reported: T77730 ShaderFx Missing Update Notifier
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
- 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)
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.
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
- UI: List Panel System (5171d86806)
- Cleanup: Quiet unused variable warning in non-debug builds (eb5422828a)
- I also committed a group of smaller UI patches for the VSE from Peter Fog / tintwotin.
Needs Information: 1
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
-1'6" in a text box would resolve to
-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.
- 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.
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.
- D7737 Fix T76595 Graph Editor: No indication of active keyframe
- D7738 UI: Small Changes to Graph Editor Active Vertex Panel
- 5e96c43854 Fix T76556 Object join doesn't respect parenting
- eaf7d36d66 UI: Graph Editor: Draw Handles Lines With Smoothing
- 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
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
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
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.
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.
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.