godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Implement UI Design Tool plugin features to core #1542

Open golddotasksquestions opened 3 years ago

golddotasksquestions commented 3 years ago

Describe the project you are working on: This applies to any Project with Text

Describe the problem or limitation you are having in your project: The UX of graphically adjusting text in Godot 3.2.3 or below is extremely unconventional, counter intuitive, tedious, slow, not fun ...

Describe the feature / enhancement and how it helps to overcome the problem or limitation: The UI Design Tool plugin behavior is akin to pretty much any Editor that has graphical text editing and design capabilities. It has familiar UI and flow. It's tons faster and intuitive to adjust multiple Label nodes at once.

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams: ui_design_tool https://github.com/imjp94/UIDesignTool https://godotengine.org/asset-library/asset/717 https://github.com/imjp94/UIDesignTool/blob/master/CHANGELOG.md

If this enhancement will not be used often, can it be worked around with a few lines of script?: I don't think so. It's a usability feature first and foremost. Working around it defeats the purpose of usability.

Is there a reason why this should be core and not an add-on in the asset library?: I need this in 99.9% of all cases start a new project in Godot. Going to the asset Library every time I start a new project to install the plugin directly counters the drastic improvement of usability it provides, especially in fast prototyping and minimal test projects.

There also seems to be considerable high demand in having this as a default UI feature: https://www.reddit.com/r/godot/comments/iwaosq/ui_design_tool_v020_godot_32_plugin/

Calinou commented 3 years ago

I think it would be better to open multiple proposals for the individual features in this plugin, since it seems like this plugin does a lot of different (and sometimes unrelated) things.

For instance, this should probably be in its own proposal:

Double click on Control node with text property(Label, Button, RichTextLabel, etc...) will show overlay text editor at mouse position.


I need this in 99.9% of all cases start a new project in Godot. Going to the asset Library every time I start a new project to install the plugin directly counters the drastic improvement of usability it provides, especially in fast prototyping and minimal test projects.

That's an argument for supporting global plugins, not for adding something to core :slightly_smiling_face:

PS: I added UI Design Tool to Awesome Godot.

golddotasksquestions commented 3 years ago

That's an argument for supporting global plugins, not for adding something to core

I highly disagree. If it is about something as fundamental as this, especially when it comes to such usability improvements, it should come with the first download a person does who never tired or heard of Godot.

Good user experience and flow should not be DLC.

golddotasksquestions commented 3 years ago

I think it would be better to open multiple proposals for the individual features in this plugin

I imagined people could submit separate PRs for individual features if they want, no?

KoBeWi commented 3 years ago

I imagined people could submit separate PRs for individual features if they want, no?

But keeping it in one issue makes tracking what is done and discussing each feature more difficult.

keegano commented 3 years ago

All of these options are available through the properties editor of the label, this merely adds useful buttons and shortcuts. I think a general way to implement what is asked for here is to make the toolbar have more context-sensitive options, among which can be font and alignment buttons.

I also agree with Calinou that the difficulty with adding an editor plugin for every new project is best addressed by allowing global plugins rather than implementing plugin functionality in core. But there is something to be said for ease of use in adjusting UI options.

aaronfranke commented 3 years ago

For changing the font size, this would ideally be core: https://github.com/godotengine/godot/issues/5557

For the rest of the features, they would be great as a global addon.