-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Reworked and more capable ConnectDialog #27988
Conversation
Looks great ! :) |
Great and useful 😁👍 |
I thought @reduz was working on this right now. |
It would be great if the source node's text in the "Existing Method" view was made to match with its appearance in the "New Method" view: colored blue with "(Connecting From)" appended. I think reduz forgot to change it. |
This is too complex imo, and beats the purpose of the work I did. I was thinking something much simpler, like this (horrible mock-up). Just a single button that shows a pop-up with the available script functions in that node that match the function signature of what you are trying to connect at, and that's it. The rationale is that this dialog needs to be as simple ans straightforward as possible, and that selecting functions from a list is not the standard behavior but an advanced one. It should be supported, but not encouraged. It also doesn't really matter if the method exists or not also, the editor will create it in case it doesn't, so having an option for this is pointless. |
@reduz This new UI is designed to be as simple as possible by default, it is in fact very similar to your mockup when you first open the dialog.
New users will find connecting a signal to a script as easy as in your concept because, not without reason, the "Existing Method" mode is sorta like your "Advanced..." checkbox. The mode setting is there for advanced use AND to guide users by hand if they need to, it favors discoverability and it auto-explains what is going to happen. This dialog just gives more possibilities and efficiency to those who need it, still being simple to those who see it for the first time and only have to connect a signal to their script. As for the selectable method list, I received feedback stating that a real time consultation is much more handy and efficient, but showing it all the time only clutters the UI, so I put it in his own mode, there to appear only if needed. Then this also works well with Editor Features profiles, if your profile has "Script Editor" disabled you are only able to connect the signal to existing methods, this dialog guides you to do just that in this case. |
Wonderful |
New method and existing method modes, selectable methods, methods search and descriptions, more arguments types, several UI adjustments.
c3d9e5a
to
766caaa
Compare
766caaa
to
47175df
Compare
I'll create a more unified and simple version of this dialog in the next days, still trying to integrate all the tools needed for an advanced use in a meaningful way. |
Again, I think this is too complex and does not focus on real life use cases. |
@reduz As I wrote above, I'll remake this dialog making it simple but still trying to provide advanced functionality in a way that makes sense and doesn't overwhelm the user. |
So is there any interest in possibly adding a Maybe I just have a weird workflow, but I find I'm frequently connecting signals in the editor, and that typing in the method name is slow (and sometimes requires going back to read the script to remember the name). A I'm also unclear on why the new dialog requires an extra click to activate "Advanced" mode so I can access functionality that was easily accessible in 3.1. It seems that, compared to the proposal here, the 3.2 dialog is very mouse-heavy and cumbersome. @reduz based on this comment, it sounds like you would be ok with a dialog as long as it filtered the selection down (though given that signals can't be typed, it limits how much we can filter)?
(Hope this doesn't sound too critical. ❤️ 3.2, but the new signal dialog is a sticking point in my workflow, and this PR seemed like really good work). |
@aaronfranke I'm still interested and happy to finish the work if @samdze does not. However, it seems like the sticking point less about getting the work done and more about agreeing on a UI. |
I'd be available to finish this PR sooner or later and I was quite happy with the current implementation. (so, distinct modes with the initial view covering 95% of use cases) So yes, if this type (maybe not exactly this) of UI is accepted, I'll make the effort. If there's still no consensus I'm open to other solutions but I'd like to make this dialog a full fledged tool for signal connections. |
For me, this last version looks very good. The UX looks a lot better |
I like the new design !! Is this still being worked on ? :) |
New design is so good. It looks not too complex. Left dropdown very useful and needed, but right dropdown maybe hide to the args window or add advance button for right functionality. I think we don't use it much, especially for beginners. Thanks for your work! |
Is it preferred to keep the separate modes ("Existing Method" and "New Method") to better guide the user or is a unique and unified mode (with a button + popup for existing methods selection) the favourite solution? |
Good idea with 2 buttons and a pop-up window for "Existing Method", but in use, more pop-up windows make inconvenience. Maybe create just a checkbox if the need for the existing method. For default create a new method. |
I like this new design very much!!! Is this still being worked on ? |
This pull request needs to be rebased before it can be considered for merging. That said, the current implementation of this PR didn't gather reduz's approval, and that's required for this PR to be merged too. |
Would need a rereview to compare with the current implementation in 4.0 and see what would still be relevant to change. CC @godotengine/docks |
I have a similar PR, but it only moves things around: #60478 |
I looked at the checklist in the OP:
This would be maybe ok if it was done with CheckButton, but the approach with
This is great and still wanted.
The flags are fine as now after #60478
This is nice. Could also display argument types (and also warn about mismatch?)
This is interesting 🤔 But probably not necessary with the above.
This was already implemented in another PR.
That could be nice to have too.
Still relevant. Overall I'd avoid making too many UX changes. The current advanced mode is fine (aside from the fact that it awkwardly resizes the dialog), because it's easily accessible. The method picker can be left for #38218, so this leaves only a few minor changes that are relevant in this PR. It would be easier to review if it was smaller and didn't change too much. |
I'm sorry that this got stuck in a limbo. I think that general direction for UX improvements that this PR proposes is interesting (also see KoBeWi's comment above). But at this point this PR basically needs to be redone due to the amount of code changes since it has been last touched. I think that parts of it could be considered as good self-sufficient PRs for 4.3, whether by samdze or by other contributors. I'm going to close it, but the salvageable label should remain as a hint that this is still desirable in some form. |
Note that #66313 was merged in the meantime, so the method picker already exists now. |
This ConnectDialog gives a comprehensive set of tools to connect signals and to manage their arguments, all in a very discoverable way and still being simple in its initial appearance.
Currently implemented:
(Outdated gif)
(Newer gif)