Page MenuHome

Asher (ThatAsherGuy)
Bot

Projects

User does not belong to any projects.

User Details

User Since
Aug 15 2019, 11:40 PM (27 w, 5 d)

Platform: Windows 10
Hardware: Ryzen 5 2600X | RTX 2060
Naming Scheme: PascalSnake_Case
Punctuation: Oxford

Areas of Interest:

  • UI/UX
  • Gizmos
  • The Transform Operator Dungeon

Stalk me:

Recent Activity

Mon, Feb 24

Jonathan Lampel (jonathanl) awarded D6912: Transform: Add Live Orientation Mode a Like token.
Mon, Feb 24, 6:03 PM
Asher (ThatAsherGuy) added a comment to T74157: Operator Search.

How would this work for add-ons? Would add-on developers have to create arbitrary menus in order to make their operators accessible via search? Would there be a way to filter which menus would be included in the search scope?

Mon, Feb 24, 4:13 PM · User Interface, BF Blender
Carl Knight (knightknight) awarded D6912: Transform: Add Live Orientation Mode a Like token.
Mon, Feb 24, 9:55 AM
Asher (ThatAsherGuy) added a comment to D6912: Transform: Add Live Orientation Mode.

Are you thinking of a setup where there'd be a bone/object pointer in the TransformOrientationSlot struct, and the create_orientation operator would set flags for live vs static? I think I can see how the innards would work, but I don't have a clear picture of what that'd do to the front end.

Mon, Feb 24, 5:34 AM
Asher (ThatAsherGuy) added a comment to D5644: Add 'Transform Cursor' property to relevant Transform Operators.

You haven't described why the advantages aren't clear, or why you're looking for advantages (over what?) in the first place. I'd love to help you out, but it's hard to improve the patch description if I don't know what the source of your confusion is.

Mon, Feb 24, 3:10 AM · Modeling
Asher (ThatAsherGuy) updated Asher (ThatAsherGuy).
Mon, Feb 24, 1:40 AM

Sun, Feb 23

Asher (ThatAsherGuy) added a comment to D6912: Transform: Add Live Orientation Mode.

I'd love to do something like this:

Sun, Feb 23, 10:21 PM
Hans Goudey (HooglyBoogly) awarded D6912: Transform: Add Live Orientation Mode a Love token.
Sun, Feb 23, 7:35 PM
Asher (ThatAsherGuy) added a comment to D6912: Transform: Add Live Orientation Mode.

@ronan ducluzeau (zeauro) It only works with object orientations. You could (theoretically) use a similar approach to create live geometry orientations from vertex groups, but you'd run into some ugly issues with modifiers.

Sun, Feb 23, 7:25 PM
Asher (ThatAsherGuy) updated the diff for D6912: Transform: Add Live Orientation Mode.

Renamed the orientation property, adjusted the popover. Tweaked the object deletion operators to reset the orientation property when an object that's being used as an orientation source is deleted. It's a bit hacky, to be honest.

Sun, Feb 23, 7:12 PM
Wilsimar (wilBr) awarded D6912: Transform: Add Live Orientation Mode a Love token.
Sun, Feb 23, 4:38 PM
William Reynish (billreynish) awarded D6912: Transform: Add Live Orientation Mode a Like token.
Sun, Feb 23, 2:07 PM
Fran Marz (franMarz) awarded D6912: Transform: Add Live Orientation Mode a Like token.
Sun, Feb 23, 1:07 PM
Asher (ThatAsherGuy) added a comment to D5644: Add 'Transform Cursor' property to relevant Transform Operators.

How would limiting the feature to TRANSFORM_OT_transform improve it, or improve feature parity between tools and modal operators? It wouldn't make the code any easier to maintain, it wouldn't make the feature more discoverable, it wouldn't limit undesirable behavior, it wouldn't make it any easier to use it with a gizmo; what am I missing?

Sun, Feb 23, 4:26 AM · Modeling
Asher (ThatAsherGuy) added a comment to D5644: Add 'Transform Cursor' property to relevant Transform Operators.

The property defaults to false, and TRANSFORM_OT_translate already has it. Limiting this to just TRANSFORM_OT_translate means we can't rotate, scale, or shear the cursor from a gizmo, which runs contrary to the notion of feature parity between the tool system and modal operators.

Sun, Feb 23, 3:13 AM · Modeling
noki paike (amonpaike) awarded D6912: Transform: Add Live Orientation Mode a Like token.
Sun, Feb 23, 12:21 AM

Sat, Feb 22

Asher (ThatAsherGuy) updated the diff for D6912: Transform: Add Live Orientation Mode.

Cleanup.

Sat, Feb 22, 10:18 PM
Asher (ThatAsherGuy) planned changes to D6912: Transform: Add Live Orientation Mode.

This isn't quite ready for code review, but it should be ready soon-ish.

Sat, Feb 22, 10:15 PM
Asher (ThatAsherGuy) created D6912: Transform: Add Live Orientation Mode.
Sat, Feb 22, 10:13 PM

Tue, Feb 18

Asher (ThatAsherGuy) added a comment to T73976: 2.82 Changing Locked Axis When Transforming Now Must Be In Correct Sequence.

Do you have 'Default to Advanced Numeric Input' enabled in your input preferences?

Tue, Feb 18, 6:11 PM · BF Blender

Sat, Feb 15

Asher (ThatAsherGuy) updated the diff for D5644: Add 'Transform Cursor' property to relevant Transform Operators.

Fixed issues with the Active Element pivot in edit mode. Added the property to more transform operators.

Sat, Feb 15, 8:42 PM · Modeling

Tue, Feb 11

Asher (ThatAsherGuy) added a comment to P1254 Layout Hack.

This is a quick and dirty layout hack for accessing a few layout engine properties. With this patch, you can tweak things like the space between items within a layout block through Blender's python console via C.preferences.ui_styles[0]. Here are the default values for these properties, from interface_style.c:

Tue, Feb 11, 9:25 PM
Asher (ThatAsherGuy) created P1254 Layout Hack.
Tue, Feb 11, 9:18 PM
Asher (ThatAsherGuy) added a comment to D6793: UI Papercut: Alignment of transformation locks in 3D View Sidebar.

Using a label breaks convention and messes with the column alignment. I could try to hack something together, but this is a situation where adding an icon would be easier than wrestling with the layout engine.

Tue, Feb 11, 8:09 PM · User Interface
Asher (ThatAsherGuy) added a comment to D6793: UI Papercut: Alignment of transformation locks in 3D View Sidebar.

We could create a '4L' icon, to match the label we currently use. The icon I'm using in this revision is way too generic:

Tue, Feb 11, 5:09 PM · User Interface

Mon, Feb 10

Asher (ThatAsherGuy) added a comment to T69323: Remove/Update "Emulate Middle Mouse" preference.

That'd depend on how you use it, wouldn't it? If we activated pan/orbit/zoom on drag, we could use long press as a fall-through. You'll notice a hitch if you use a larger drag threshold, but that can be fixed with a two-line tweak to wm_handlers_do.

Mon, Feb 10, 12:13 AM · User Interface

Sun, Feb 9

Hans Goudey (HooglyBoogly) awarded D6793: UI Papercut: Alignment of transformation locks in 3D View Sidebar a Love token.
Sun, Feb 9, 10:14 PM · User Interface
Asher (ThatAsherGuy) planned changes to D6793: UI Papercut: Alignment of transformation locks in 3D View Sidebar.
Sun, Feb 9, 6:14 PM · User Interface
Asher (ThatAsherGuy) created D6793: UI Papercut: Alignment of transformation locks in 3D View Sidebar.
Sun, Feb 9, 6:14 PM · User Interface

Tue, Feb 4

Asher (ThatAsherGuy) added a comment to T73479: 3D View Selection Occlusion (Select Through) .

What if we came at this from the perspective of creating a sort of selection API? Right now, we use editor state flags (x-ray mode, etc) to drive selection behavior, where we could be using operator properties that, on invoke, are set to match those flags. If we went that route, we'd be able to add an 'override global settings' property, letting users swap between their preferred behavior and the default behavior by toggling a single option. X-ray mode wouldn't change, we wouldn't have to worry about tracking a new editor state, and we'd have a framework for future selection features.

Tue, Feb 4, 7:07 PM · Modeling, BF Blender
Evan Wilson (EAW) awarded T73275: Wiki: Migrating and Integrating Design Documentation a Love token.
Tue, Feb 4, 3:22 PM · Documentation

Sat, Feb 1

Asher (ThatAsherGuy) added a comment to T73495: Missing undo push when switching active shape keys.

I can confirm this one to a degree. It seems to depend on what's in the undo history and how far back you go. In certain situations it'll change the shape key, and then change it back, as you undo.

Sat, Feb 1, 4:10 PM · Modeling, BF Blender
Asher (ThatAsherGuy) planned changes to D6221: Viewport: Add rotation tracking option to Lock to Cursor .

I'll be taking another crack at this one. Current plan is to scaffold a way to test different rotation methods without having to recompile, and to do a bit of cleanup to make the technical side of it more human-friendly. The goal here is to separate the user-facing feature (tracking the viewport rotation to the 3D cursor) from the developer-facing feature (a framework for tracking to/from various views using rotation methods that help users stay oriented in 3D space), and then work backwards from there to create a design task with demo files. This should make the feedback process easier for both sides.

Sat, Feb 1, 3:53 PM · EEVEE & Viewport

Wed, Jan 29

Asher (ThatAsherGuy) added a comment to T72069: Smooth Vertices called from the F3 operator search will put you in a modal without knowing [doesnt execute immediately].

The issue is that, when 'wait for input' is true (as it is by default), the modal starts without updating the header or the status bar. The user doesn't know a modal has started, why viewport navigation is blocked, or what input the operator is waiting for. When they do figure it out, the modal starts with an arbitrary smooth value that's rarely useful.

Wed, Jan 29, 3:49 PM · User Interface, BF Blender

Jan 27 2020

Asher (ThatAsherGuy) updated Asher (ThatAsherGuy).
Jan 27 2020, 3:16 AM
Asher (ThatAsherGuy) added a comment to T73419: Font Symbol Cleanup.

D6055 was accepted back in November, right? I'd been wondering what happened to it.

Jan 27 2020, 1:31 AM · User Interface, BF Blender
Asher (ThatAsherGuy) added a comment to T63743: Show gizmo while transforming.

The gizmos can currently not access the transform operator data,

Jan 27 2020, 1:09 AM · User Interface

Jan 24 2020

Asher (ThatAsherGuy) awarded D6670: UI: Makes the Preferences window wider a Like token.
Jan 24 2020, 4:08 PM · User Interface

Jan 23 2020

Asher (ThatAsherGuy) added a comment to T63743: Show gizmo while transforming.

P1227 is a quick and dirty hack that keeps the transform gizmo visible during modal events. All I've really does is comment out the bits of code that explicitly disable the transform gizmo during modals, and add the WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL flag to its gizmo group to keep it from disabling the viewport navigation gizmo.

Jan 23 2020, 9:50 PM · User Interface
Asher (ThatAsherGuy) created P1227 Modal Transform Gizmo Hack.
Jan 23 2020, 9:34 PM
Asher (ThatAsherGuy) added a comment to T68970: Slower response of Blender due to click event in "left click" keymap..

@Paul Kotelevets (1D_Inc) Press and release events are turned into click events in wm_event_system.c, long after the platform-specific stuff is taken care of. All we'd have to do is trim a few lines here to make it work. It'd give us more information to work with in modals, since we wouldn't be overwriting the release location with press data that's already accessible through the event system, and it'd match how the vast majority of operating systems handle click events (in the 3D viewport; the UI handlers have their own logic).

Jan 23 2020, 5:58 PM · BF Blender
Asher (ThatAsherGuy) added a comment to T67870: Transform has hard-coded keys to the modal keymap.

It looks like D6454 tackles some of this. Should it be expanded, or should the rest be covered in a second patch?

Jan 23 2020, 4:09 PM · User Interface
Asher (ThatAsherGuy) added a comment to T60824: List of Properties that should use the Units system.

Re: Shearing. The value that we use for shearing is the shear factor, which doesn't need a unit on its own. It maps nicely to modal mouse input, it's great for quick/arbitrary shears, and advanced numeric input lets us input the factor as 1/tan(radians(90-θ)) when we need a precise shear angle. We could add a property to the shear operator that switches the input mode from factor to angle, saving users a dive through the manual, but that's out of scope for this task.

Jan 23 2020, 3:47 PM · BF Blender
Asher (ThatAsherGuy) awarded D6658: Bevel: Simplify Profile Calculation Step a Love token.
Jan 23 2020, 5:08 AM · Modifiers, Modeling

Jan 22 2020

Asher (ThatAsherGuy) added a comment to D6437: Rename 'View Frame' -> 'Go to Playhead'.

Calling it 'Zoom to Frame' or 'Zoom to Current Frame' would match the settings in the user preferences. Consistency on that front, whatever you end up calling the operator, shouldn't be overlooked.

Jan 22 2020, 11:32 PM
Asher (ThatAsherGuy) added a comment to T72069: Smooth Vertices called from the F3 operator search will put you in a modal without knowing [doesnt execute immediately].

The core issue still exists; call the operator via operator search. If you want a superficial fix, do this:

Jan 22 2020, 10:37 PM · User Interface, BF Blender
Asher (ThatAsherGuy) added a comment to T68970: Slower response of Blender due to click event in "left click" keymap..

@Julian Eisel (Severin) Right now there isn't a fallback for un-handled click-drag events; they slide away into the ether when we could be treating them as click events. I'd rather see something like P1221 (tweaked to send the key release coordinates instead of the key press coordinates; if we need the press coordinates for a click event we can use prevclickx and prevclicky) than a band-aid solution that relies on overloaded tool keymaps.

Jan 22 2020, 10:15 PM · BF Blender

Jan 21 2020

Asher (ThatAsherGuy) added a comment to D3579: Color coded strips in the VSE.

Just chiming in here after seeing this task mentioned in the UI channel on blender chat:

Jan 21 2020, 6:21 PM · Video Sequencer
Asher (ThatAsherGuy) added a comment to T73275: Wiki: Migrating and Integrating Design Documentation.

@Aaron Carlisle (Blendify) Yep, I'll do the work. It'd be rude of me to punt this late in the game.

Jan 21 2020, 1:18 AM · Documentation

Jan 20 2020

Asher (ThatAsherGuy) added a comment to P1221 Click Drag Fallback.

A potential middle-ground would be to modify WM_event_drag_threshold() to cover this fallback scenario. It'd let us set a sanity threshold, so fallback clicks aren't sent when the mouse is moved to the far side of the screen.

Jan 20 2020, 9:57 PM
Asher (ThatAsherGuy) added a comment to T69323: Remove/Update "Emulate Middle Mouse" preference.

Could we use a long press event here? I mentioned them on DevTalk the other day, in the context of how we could build on top of D5153, and I think this could be an interesting test-case for the idea.

Jan 20 2020, 9:26 PM · User Interface
Hans Goudey (HooglyBoogly) awarded T73275: Wiki: Migrating and Integrating Design Documentation a Love token.
Jan 20 2020, 9:09 PM · Documentation
Asher (ThatAsherGuy) changed the status of T73275: Wiki: Migrating and Integrating Design Documentation from Needs Triage to Confirmed.
Jan 20 2020, 8:15 PM · Documentation
Asher (ThatAsherGuy) added a comment to T71719: clicks are persistent across buttons, with hover.

I believe there's a degree of intentionality behind this behavior, at least for horizontally arranged drop-down menus. I know we have used_mouse, autoopentimer, and hold_action_timer in uiHandleButtonData, but I'm not 100% up to speed on how those properties are used.

Jan 20 2020, 6:10 PM · User Interface, BF Blender

Jan 17 2020

Asher (ThatAsherGuy) added a comment to T73196: Support for binding additional keys.

For Windows, we're mostly looking at how Blender handles the VK_OEM_1-VK_OEM_8 range when we're talking about layout support, right?

Jan 17 2020, 10:27 PM · User Interface, BF Blender
Asher (ThatAsherGuy) added a comment to T59102: Blender 2.8 - Pie menus are inaccurate.

There isn't a clean way to use radial selection alone for elements that aren't scaled or displaced to fit their arc quadrants. You could fall back to pointing when an element is under the cursor, using the wedge highlighting suggested in T56949 to distinguish the selection methods, but that's out of scope for a bug.

Jan 17 2020, 8:27 PM · User Interface, BF Blender
Asher (ThatAsherGuy) updated the language for P1221 Click Drag Fallback from c to diff.
Jan 17 2020, 4:23 PM

Jan 16 2020

Asher (ThatAsherGuy) created P1221 Click Drag Fallback.
Jan 16 2020, 8:31 PM

Jan 14 2020

Hans Goudey (HooglyBoogly) awarded D6582: Input: Add F20-F24 Support a Love token.
Jan 14 2020, 10:34 PM
Asher (ThatAsherGuy) created D6582: Input: Add F20-F24 Support.
Jan 14 2020, 9:05 PM

Jan 7 2020

Asher (ThatAsherGuy) added a comment to T72955: Changing the Hotkey for Set 3D Cursor(view3d.cursor3d) causes the cursor to lose functionality.

Set 3D Cursor doesn't have a drag functionality. The move operator mapped to right click (tweak) handles that.

Jan 7 2020, 9:30 PM · BF Blender
Asher (ThatAsherGuy) added a comment to T72943: PBVH task scheduler performance issues.

Exposing the leaf limit through the API might let you create a testing script to find the sweet-spots for different scenarios. If there isn't a workable middle ground between the ideal leaf limit for looping over all of the vertices in a high poly mesh and the ideal leaf limit for small brush strokes, you might be able to finesse it with a scaling factor. It'll depend on where the overhead comes from and how linearly that overhead changes, though, and we all know how that goes.

Jan 7 2020, 2:18 AM · BF Blender, Performance, Sculpt, Paint, Texture

Dec 18 2019

Asher (ThatAsherGuy) added a comment to T66304: Tools, Selection & Gizmo design.

@Campbell Barton (campbellbarton) I probably have some tunnel vision here, as I'm focusing on click-drag selection instead of the tool system as a whole. The main benefit that I see from an operator-based approach (for selection) is that it would mirror the way Blender handles transformation modes. Using a group of editor-wide settings on the right side of the tool header to change the behavior of five keymap entries in 3D View (Global) feels more approachable and explainable than a system that dynamically changes the active tool keymap in order to access twelve keymap entries spread across four tools.

Dec 18 2019, 5:50 PM · BF Blender (2.82)

Dec 15 2019

Asher (ThatAsherGuy) added a comment to T66304: Tools, Selection & Gizmo design.

@Campbell Barton (campbellbarton) Yep, same bug. Operator properties changed via the tool header are only applied when the operator is called with workspace_tool_type set to DEFAULT. Haven't traced it further, yet, as I'm still trying to wrap my head around what all's happening in WM_event_get_keymap_from_toolsystem.

Dec 15 2019, 2:51 AM · BF Blender (2.82)

Dec 13 2019

Asher (ThatAsherGuy) added a comment to T72416: Bevel tool settings fail to apply to next operation, when using the Bevel gizmo.

Do you have fallback tools enabled? If you do, test it with the fallback set to the active tool versus one of the selection tools.

Dec 13 2019, 4:47 PM · BF Blender
Asher (ThatAsherGuy) added a comment to T72419: 3D cursor Z orientation switches .

I can confirm this one. I'm seeing both 90° roll and 1-3° roll, compared to the normal orientation of the same face.

Dec 13 2019, 3:31 PM · Modeling, BF Blender

Dec 12 2019

Asher (ThatAsherGuy) added an inline comment to M1: Bevel Tool Toolbar Layout - Multiple Overflow Popovers.
Dec 12 2019, 10:02 PM · User Interface, Modeling
Asher (ThatAsherGuy) updated images of M1: Bevel Tool Toolbar Layout - Multiple Overflow Popovers.
Dec 12 2019, 9:42 PM · User Interface, Modeling
Asher (ThatAsherGuy) updated subscribers of D6386: [WIP] Bevel: Constant Radius Mode.

Yeah, I haven't done enough with the C side of the UI code to have a good sense of how much work that'd take. @Harley Acheson (harley) might be able to give us some insights, though.

Dec 12 2019, 9:12 PM · Modifiers, Modeling
Asher (ThatAsherGuy) added a comment to D6386: [WIP] Bevel: Constant Radius Mode.

@Hans Goudey (HooglyBoogly) Here's what I did in space_toolsystem_toolbar:

1 @ToolDef.from_fn
2 def bevel():
3 def draw_settings(context, layout, tool, *, extra='0'):
4 props = tool.operator_properties("mesh.bevel")
5 region_type = context.region.type
6 row = layout.row(align=True)
7 row.ui_units_x = 6
8
9 if extra == '0':
10 if props.offset_type == 'PERCENT':
11 row.prop(props, "offset_pct")
12 else:
13 offset_text = "Width"
14 if props.offset_type == 'DEPTH':
15 offset_text = "Depth"
16 elif props.offset_type == 'OFFSET':
17 offset_text = "Offset"
18 row.prop(props, "offset", text=offset_text)
19 if region_type == 'TOOL_HEADER':
20 row.popover("TOPBAR_PT_tool_settings_extra_1", text="")
21 else:
22 layout.prop(props, "offset_type")
23
24 row = layout.row(align=True)
25 row.ui_units_x = 5
26 row.prop(props, "segments")
27
28 row = layout.row(align=True)
29 row.ui_units_x = 6
30 row.prop(props, "profile", slider=True)
31 if region_type == 'TOOL_HEADER':
32 row.popover("TOPBAR_PT_tool_settings_extra_2", text="")
33
34 if region_type == 'TOOL_HEADER':
35 layout.popover("TOPBAR_PT_tool_settings_extra_3", text="", icon='TOOL_SETTINGS')
36 else:
37 extra = '3'
38
39 if extra == '1':
40 if not region_type == 'TOOL_HEADER':
41 extra = '2'
42 col = layout.column(align=True)
43
44 sub = col.row(align=True)
45 sub.prop(props, "offset_type", expand=True)
46
47 col.prop(props, "vertex_only")
48 col.prop(props, "clamp_overlap")
49 col.prop(props, "loop_slide")
50
51 if extra == '2':
52 if not region_type == 'TOOL_HEADER':
53 extra = '3'
54 row = layout.row(align=True)
55 layout.prop(props, "use_custom_profile")
56 if props.use_custom_profile:
57 tool_settings = context.tool_settings
58 layout.template_curveprofile(tool_settings, "custom_bevel_profile_preset")
59
60 if (extra == '3') or (region_type != 'TOOL_HEADER'):
61 if not region_type == 'TOOL_HEADER':
62 layout.prop(props, "vertex_only")
63 layout.prop(props, "clamp_overlap")
64 layout.prop(props, "loop_slide")
65
66 layout.prop(props, "mark_seam")
67 layout.prop(props, "mark_sharp")
68 layout.prop(props, "harden_normals")
69
70 layout.prop(props, "material")
71
72 col = layout.column(align=False)
73 col.alignment = 'EXPAND'
74 col.use_property_split = True
75 col.use_property_decorate = False
76 col.prop(props, "miter_outer", text="Outer Miter")
77 col.prop(props, "miter_inner", text="Inner Miter")
78 if props.miter_inner == 'ARC':
79 layout.prop(props, "spread")
80
81 if not region_type == 'TOOL_HEADER':
82 layout.prop(props, "use_custom_profile")
83 if props.use_custom_profile:
84 tool_settings = context.tool_settings
85 layout.template_curveprofile(tool_settings, "custom_bevel_profile_preset")
86
87 return dict(
88 idname="builtin.bevel",
89 label="Bevel",
90 icon="ops.mesh.bevel",
91 widget="VIEW3D_GGT_tool_generic_handle_normal",
92 keymap=(),
93 draw_settings=draw_settings,
94 )
and complimentary tweaks to space_topbar.py:
1class TOPBAR_PT_tool_settings_extra_1(Panel):
2 """
3 Popover panel for adding extra options that don't fit in the tool settings header
4 """
5 bl_idname = "TOPBAR_PT_tool_settings_extra_1"
6 bl_region_type = 'HEADER'
7 bl_space_type = 'TOPBAR'
8 bl_label = "Extra Options"
9
10 def draw(self, context):
11 from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
12 layout = self.layout
13
14 # Get the active tool
15 space_type, mode = ToolSelectPanelHelper._tool_key_from_context(context)
16 cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
17 item, tool, _ = cls._tool_get_active(context, space_type, mode, with_icon=True)
18 if item is None:
19 return
20
21 # Draw the extra settings
22 item.draw_settings(context, layout, tool, extra='1')
23
24
25class TOPBAR_PT_tool_settings_extra_2(Panel):
26 """
27 Popover panel for adding extra options that don't fit in the tool settings header
28 """
29 bl_idname = "TOPBAR_PT_tool_settings_extra_2"
30 bl_region_type = 'HEADER'
31 bl_space_type = 'TOPBAR'
32 bl_label = "Extra Options"
33
34 def draw(self, context):
35 from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
36 layout = self.layout
37
38 # Get the active tool
39 space_type, mode = ToolSelectPanelHelper._tool_key_from_context(context)
40 cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
41 item, tool, _ = cls._tool_get_active(context, space_type, mode, with_icon=True)
42 if item is None:
43 return
44
45 # Draw the extra settings
46 item.draw_settings(context, layout, tool, extra='2')
47
48class TOPBAR_PT_tool_settings_extra_3(Panel):
49 """
50 Popover panel for adding extra options that don't fit in the tool settings header
51 """
52 bl_idname = "TOPBAR_PT_tool_settings_extra_3"
53 bl_region_type = 'HEADER'
54 bl_space_type = 'TOPBAR'
55 bl_label = "Extra Options"
56
57 def draw(self, context):
58 from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
59 layout = self.layout
60
61 # Get the active tool
62 space_type, mode = ToolSelectPanelHelper._tool_key_from_context(context)
63 cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
64 item, tool, _ = cls._tool_get_active(context, space_type, mode, with_icon=True)
65 if item is None:
66 return
67
68 # Draw the extra settings
69 item.draw_settings(context, layout, tool, extra='3')

Dec 12 2019, 8:51 PM · Modifiers, Modeling
Asher (ThatAsherGuy) created P1185 Bevel Tool Toolbar — multi-popover snipped, pt. 2.
Dec 12 2019, 8:46 PM
Asher (ThatAsherGuy) created P1184 Bevel Tool Toolbar — multi-popover snipped.
Dec 12 2019, 8:44 PM · Modeling
Asher (ThatAsherGuy) added an inline comment to M1: Bevel Tool Toolbar Layout - Multiple Overflow Popovers.
Dec 12 2019, 8:41 PM · User Interface, Modeling
Asher (ThatAsherGuy) added a comment to D6386: [WIP] Bevel: Constant Radius Mode.

Will we need an even-more-generalized version of the overflow popover from D5832: UI: Add the rest of bevel's options to the active tool to handle the UI end of this? Something like

  • with some tweaks to layout.popover() might work.

    Dec 12 2019, 8:24 PM · Modifiers, Modeling
    Asher (ThatAsherGuy) created M1: Bevel Tool Toolbar Layout - Multiple Overflow Popovers.
    Dec 12 2019, 8:22 PM · User Interface, Modeling

    Dec 9 2019

    Asher (ThatAsherGuy) abandoned D5950: UI: Tab-Like Side Panel Close Widgets.

    Cleanup.

    Dec 9 2019, 10:10 PM · User Interface

    Dec 7 2019

    Asher (ThatAsherGuy) added a comment to T66304: Tools, Selection & Gizmo design.

    Stupid question: What's the thought process behind using fallback tools instead of fallback operators? There are some issues in rB6ffcddc10afa with how tool settings are updated when a fallback tool is active (play around with the bevel tool and toggling 'Vertex Only'), but I'm not sure how to weigh the current implementation against a one that relies on theoretical a wrapper operator for box/brush/lasso select that sits outside the tool keymaps.

    Dec 7 2019, 4:10 PM · BF Blender (2.82)

    Nov 23 2019

    Asher (ThatAsherGuy) added a comment to T71813: UI: .box() overwrites align=True.

    You're right about box() not inheriting the align property, but I'm not sure if that's a bug or a design limitation. In the short-term, at least, you can solve the alignment issue by throwing a column into the box and using that as the root for the sub-layout.

    Nov 23 2019, 3:36 PM · User Interface, BF Blender

    Nov 19 2019

    Asher (ThatAsherGuy) added a comment to T71690: Blender Crashes after calling a pie menu with a specific item..

    So it looks like there's some weirdness going on with what's actually returned by transform_orientation_slots[1].type — it returns both the type enum and the use bool in some (but not all) sub-layouts. This is probably what's causing your crash, but I'm not a 100% on whether this is a bug or a design limitation.

    Nov 19 2019, 9:55 PM · BF Blender
    Asher (ThatAsherGuy) added a comment to T71690: Blender Crashes after calling a pie menu with a specific item..

    I can't reproduce the crash using just transform_orientation_slots[1], and as far as I know there isn't a [2] or [3] to call in the first place.

    Nov 19 2019, 9:12 PM · BF Blender

    Nov 14 2019

    Asher (ThatAsherGuy) added a comment to D6221: Viewport: Add rotation tracking option to Lock to Cursor .

    It's mostly for scenarios where the 3D cursor is being used as a work plane and the user wants to manipulate the viewport relative to that plane. This lets users set the viewport to precise angles using the transform modal (using incremental snapping, axis constraints, advanced numeric input, etc), the sidebar (tweaking the cursor rotation directly), and the Set Cursor operator (using geometry alignment, etc). Instead of hard-locking the view rotation, I've set it up to feel elastic - users can rotate the view temporarily using the normal methods, and the view smoothly rotates back to the tracked angle after the rotation modal ends.

    Nov 14 2019, 5:52 PM · EEVEE & Viewport

    Nov 12 2019

    Asher (ThatAsherGuy) updated the diff for D6221: Viewport: Add rotation tracking option to Lock to Cursor .

    Changed enable/disable behavior, wrapping the setting in an operator in order to take advantage of view smoothing. The view doesn't snap back to the prior view when tracking is disabled now, and users can temporarily rotate away from the cursor while tracking is enabled. I slowed down the transition speed significantly for this clip:

    Nov 12 2019, 8:14 PM · EEVEE & Viewport

    Nov 11 2019

    Hans Goudey (HooglyBoogly) awarded D6221: Viewport: Add rotation tracking option to Lock to Cursor a Love token.
    Nov 11 2019, 8:08 PM · EEVEE & Viewport
    Asher (ThatAsherGuy) updated the diff for D6221: Viewport: Add rotation tracking option to Lock to Cursor .

    Improved quad-view handling when track to cursor is enabled.

    Nov 11 2019, 7:36 PM · EEVEE & Viewport

    Nov 10 2019

    Asher (ThatAsherGuy) created D6221: Viewport: Add rotation tracking option to Lock to Cursor .
    Nov 10 2019, 10:06 PM · EEVEE & Viewport

    Oct 11 2019

    Asher (ThatAsherGuy) added a comment to T70725: No crash reports on windows machines.

    Launch Blender from the system console to keep the console open after it crashes. Use something like Cmder if you want to manage multiple consoles simultaneously.

    Oct 11 2019, 8:35 PM · BF Blender
    Asher (ThatAsherGuy) added a comment to T70725: No crash reports on windows machines.

    This might be redundant, but have you checked your event viewer logs?

    Oct 11 2019, 5:25 PM · BF Blender

    Oct 7 2019

    Asher (ThatAsherGuy) added a comment to T70591: Event_/Letter icons empty.

    This started somewhere between 24be998b986c and one of the October 3rd commits, I think.

    Oct 7 2019, 5:12 PM · User Interface, BF Blender (2.81)
    Asher (ThatAsherGuy) added a comment to D6003: Transform 3D cursor gizmo.

    Something to note is that setting the pivot to active uses the active object's origin instead of the active vert/edge/face when transforming the 3D Cursor. This has been an issue since last summer, as far as I can recall.

    Oct 7 2019, 8:51 AM

    Oct 2 2019

    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    That was poor wording on my part; 'a solution you're amenable to' is a better way to phrase it. My intention was to follow up on your comment about finding a very different way to solve the issues in the default implementation and clarify the scope of the conversation.

    Oct 2 2019, 5:49 PM · User Interface
    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    Different in terms of behavior, appearance, or functionality? I can look into incorporating behaviors like the reactive thickness based on cursor proximity, and I'd be happy to build those behaviors on top of the default appearance and position instead of what I've proposed here, but I can't tell from your feedback if that's the kind of solution you're looking for.

    Oct 2 2019, 4:22 PM · User Interface
    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    It isn't a critical design task, so I'm not too worried about what the final result looks like. Mostly a way for me to use Cunningham's Law to figure out how the UI team does its thing.

    Oct 2 2019, 5:25 AM · User Interface
    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    Would a combination of center-aligned horizontal elements and top-aligned vertical elements (or vice-versa) be better?

    Oct 2 2019, 2:27 AM · User Interface

    Oct 1 2019

    Asher (ThatAsherGuy) updated the summary of D5950: UI: Tab-Like Side Panel Close Widgets.
    Oct 1 2019, 8:47 PM · User Interface
    Asher (ThatAsherGuy) updated the diff for D5950: UI: Tab-Like Side Panel Close Widgets.

    Removed tab outline, reduced tab thickness, simplified arrow geometry, adjusted colors, adjusted dimensions.

    Oct 1 2019, 8:43 PM · User Interface
    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    I can push the design a bit, overlapping the shapes in order to break the scrollbar feel. Here it is with const short narrow = (U.pixelsize) + (int)(2 * U.dpi_fac);, which is about as thin as it'll go.

    Oct 1 2019, 4:52 AM · User Interface
    Asher (ThatAsherGuy) added a comment to D5950: UI: Tab-Like Side Panel Close Widgets.

    You're right about them visually crowding the scrollbar in the outliner and the expansion arrows in the property editor, but I haven't had much issue with actual interaction. How frequently do users flip and hide headers and navigation bars? I could work in some region-specific and orientation-specific accommodations.

    Oct 1 2019, 3:38 AM · User Interface
    Harley Acheson (harley) awarded D5950: UI: Tab-Like Side Panel Close Widgets a Love token.
    Oct 1 2019, 1:03 AM · User Interface
    Asher (ThatAsherGuy) created D5950: UI: Tab-Like Side Panel Close Widgets.
    Oct 1 2019, 12:52 AM · User Interface

    Sep 30 2019

    Asher (ThatAsherGuy) added a comment to D5871: Fix topbar padding to fit the tool icons.

    Blender's UI elements are definitely larger than what you'll see in 2D creative suites, but the same isn't true for 3D suites. With Autodesk using ribbons and Modo using a three-bar header, Blender isn't a significant outlier in terms of header height. UI element width and the lack of a vertical rule separator element are larger issues for the tool header right now.

    Sep 30 2019, 8:20 PM · User Interface