Ideas for improving popup menus across the engine #7629
Replies: 6 comments 2 replies
-
A very apparent problem to me with this solution is assuming that only one Resource would be visible. With even more than one, I do feel like it would be overwhelming. It's a lot of buttons all equally as likely to be clicked on. I suppose that having the buttons appear only when hovering over them could be a solution. How nicely would all of this work when moving with a keyboard, though? This is a pretty generous mock-up, too. It actually would look nice. However, the dock can be oftentimes shrunk and tucked to the side. Even when decently expanded, it does currently struggle to display some noteworthy information like the names of nested Resources. An additional button may make that issue worse. |
Beta Was this translation helpful? Give feedback.
-
For reference, here is how the Resource field works (WIP): Accessing the Field How NVM ignore this post |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I tried implementing the resource popup idea so that we can test it in practise: godotengine/godot#91540 |
Beta Was this translation helpful? Give feedback.
-
Related, but only to field input: I have proposed a new annotation where the drop menu would list the resource files in a directory given as an arguement: #9937 |
Beta Was this translation helpful? Give feedback.
-
Maybe add a way to customize the editor, with @export_resource or something like that? I use custom resources a lot, and being able to access the quick_load menu in 1 click could be handy in some cases, and I wouldn't mind having to create the resources via the resource creation interface. Resources that would act a bit like @export enums, but whose list would be based on files like quick_load could be really good for workflow in some contexts. |
Beta Was this translation helpful? Give feedback.
-
disclaimer: idk what I'm doing
A recurent problem with the Resource fields in the inspector is how hard it can be to access common operations such as make unique and load/quick load.
the popup contains:
A common proposal is to reorder them: put common options on top and the variable list of new resource options on the bottom.
However this would harm the experience in the number of cases where you often want to create a new resource in place (collision shape, curve, gradients, etc.).
To sum it up: the popup is bloated. And it's not the only one:
Here are ideas to rethink the popups in the engine:
idea 1: more sophisticated popup layouts
something common in other software is popups that are not just a vertical list of string options.
Videos of other software
edit: for some reason those stopped playing on my end 🤔 if it's the case, you can right-click them and open them in a new tab...
bitwig.popups.webm
lightworks.popups.webm
simplescreenrecorder-2023-09-08_20.05.02.webm
in godot, one could imagine having non-trivial layouts for example, taking inspiration from the above:
Godot mockups
stream
field (notice how the load and quick load options don't really harm the experience if you're trying to create a new resource in place)The benefits of this design idea are that related options are "more" grouped together than if they were so vertically, it saves vertical space and therefore time to find what you're looking for since categories are more clearly separated (maybe debatable but I think so).
The two main menus that would benefit from this is the resource popup in the inspector and the node popup in the scene tree. maybe also the file popup in the FileSystem.
idea 2 (specific to resource field in inspector): add a
+
buttonthis is what we're talking about right now:
These buttons all spawn a popup containing things to: create a new resource, copy and paste it, load a new one, clear it.
problem: putting all of this in the same popup is hard, and heavy even with the improvements imaginated in idea 1.
Solution: split the choice before the popup:
SphereShape3D
resource, with no previewbehavior:
+
button opens the list of resources to create a new oneload
button opens the load dialogquick load
button opens the quick load dialog+
button opens the list of resources to create a new one (it's smaller, but you'll need it less often. Another quick way to put a new resource in there is clearing the resource and using the big + button from the <empty> state)v
button opens the load/quick load/clear/copy/paste/show in filesystem/etc. menu, stripped of the resource list!Beta Was this translation helpful? Give feedback.
All reactions